wpf - 如何在控件模板中为 WPF 中的 ListView 列应用 MinWidth?

标签 wpf xaml listview controltemplate gridviewcolumn

继类似问题的回答here ,我能够在 XAML 页面上设置 MinWidth。

我想要做的是在所有 ListView 中所有 GridViewColumn 的控件模板中完成此操作。

这可能吗?

更新:

我在下面尝试了一些简单的示例代码,但它不起作用:

<Window x:Class="WpfApplication4.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">

    <Window.Resources>
        <Style TargetType="{x:Type GridViewColumnHeader}" >
            <Setter Property="MinWidth" Value="200" />
        </Style>
    </Window.Resources>

    <Grid Width="500">
        <Border BorderBrush="Black" BorderThickness="2" Margin="20">
            <ListView SelectionMode="Single">
                <ListView.View>
                    <GridView>
                        <GridViewColumn Header="Header 1" Width="Auto">
                            <GridViewColumn.CellTemplate>
                                <DataTemplate>
                                    <TextBlock Text="Hello There"/>
                                </DataTemplate>
                            </GridViewColumn.CellTemplate>
                        </GridViewColumn>
                        <GridViewColumn Header="Header 2" Width="Auto" />
                    </GridView>
                </ListView.View>
            </ListView>
        </Border>
    </Grid>
</Window>

最佳答案

如果您使用 GridViewColumnHeader 您可以处理大小更改:

  <GridView>
     <GridViewColumn>
        <GridViewColumnHeader Content="HeaderContent" SizeChanged="HandleColumnHeaderSizeChanged"/> 
   ...

在代码中:
    private void HandleColumnHeaderSizeChanged(object sender, SizeChangedEventArgs sizeChangedEventArgs)
    {
        if (sizeChangedEventArgs.NewSize.Width <= 60) {
            sizeChangedEventArgs.Handled = true;
            ((GridViewColumnHeader) sender).Column.Width = 60;
        }
    }

关于wpf - 如何在控件模板中为 WPF 中的 ListView 列应用 MinWidth?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10097574/

相关文章:

c# - 在 WPF 文档查看器中禁用 CTRL+P

java - Listview order.runOnUiThread?

android - ListView 中的 TextView 在滚动时发生变化

javascript - C# WPF 应用程序 webbrowser 无法运行 angularjs

WPF 位图图像序列化/反序列化

c# - TextBlock 作为复选框内容不显示

android - 更改 android ListView 中最近单击的列表项中存在的 imageview

c# - ViewModel 中的可绑定(bind)字段

c# - 根据 ViewModel 类型为 ItemsControl 选择 DataTemplate

c# - 根据编辑状态在 XAML DataGrid 中设置行背景颜色