gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 15:07:49 26 4
gpt4 key购买 nike

继类似问题的回答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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com