如何防止用户使用 ListView 控件调整 GridViewColumns 的大小?
joachimk
问问题
32232 次
5 回答
34
对于那些寻求更快更简单答案的人。
在 ColumnHeaderContainerStyle 中将 IsEnabled 设置为 False。这将阻止用户调整大小。
像这样:
<GridView.ColumnHeaderContainerStyle>
<Style TargetType="{x:Type GridViewColumnHeader}">
<Setter Property="IsEnabled" Value="False"/>
</Style>
</GridView.ColumnHeaderContainerStyle>
如果要修复禁用的灰显颜色,请在 IsEnabled 属性上添加一个触发器并修复您需要的内容。
<GridView.ColumnHeaderContainerStyle>
<Style TargetType="{x:Type GridViewColumnHeader}">
<Setter Property="IsEnabled" Value="False"/>
<Style.Triggers>
<Trigger Property="IsEnabled" Value="False">
<Setter Property="TextElement.Foreground" Value="Black"/>
</Trigger>
</Style.Triggers>
</Style>
</GridView.ColumnHeaderContainerStyle>
这个答案可能不像其他帖子那样优雅;但就我而言,我所需要的只是一种快速的方法。
希望这可以帮助某人。
于 2013-06-18T05:22:32.723 回答
28
Darkonekt 的回答很好,但是最好设置IsHitTestVisible
为 false 而不是IsEnabled
. 这样做的好处是不会使标题变灰。
<GridView.ColumnHeaderContainerStyle>
<Style BasedOn="{StaticResource {x:Type GridViewColumnHeader}}" TargetType="{x:Type GridViewColumnHeader}">
<Setter Property="IsHitTestVisible" Value="False"/>
</Style>
</GridView.ColumnHeaderContainerStyle>
于 2013-11-11T16:08:49.143 回答
1
一个顺利的解决方案:
<GridViewColumn ...>
<GridViewColumn.HeaderContainerStyle>
<Style TargetType="{x:Type FrameworkElement}">
<Setter Property="IsHitTestVisible" Value="False"/>
</Style>
</GridViewColumn.HeaderContainerStyle>
</GridViewColumn>
于 2020-09-24T10:57:36.873 回答
-2
我可以按照这篇文章中的说明做类似的事情
http://blogs.msdn.com/b/atc_avalon_team/archive/2006/04/11/573037.aspx
我无法使用完整的 XAML 解决方案,因为由于它的动态性,我在代码中构建了所有内容。第一次尝试效果很好。
于 2010-08-10T12:55:38.607 回答