如何防止用户使用 ListView 控件调整 GridViewColumns 的大小?
对于那些寻求更快、更简单答案的人。
在 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>
这个答案可能不像其他答案那么优雅;但就我而言,我所需要的只是一种快速的方法。
希望这对某人有帮助。
Darkonekt 的答案很好,但是最好将
IsHitTestVisible
设置为 false 而不是 IsEnabled
。这样做的好处是不会使标题变灰。
<GridView.ColumnHeaderContainerStyle>
<Style BasedOn="{StaticResource {x:Type GridViewColumnHeader}}" TargetType="{x:Type GridViewColumnHeader}">
<Setter Property="IsHitTestVisible" Value="False"/>
</Style>
</GridView.ColumnHeaderContainerStyle>
顺利解决:
<GridViewColumn ...>
<GridViewColumn.HeaderContainerStyle>
<Style TargetType="{x:Type FrameworkElement}">
<Setter Property="IsHitTestVisible" Value="False"/>
</Style>
</GridViewColumn.HeaderContainerStyle>
</GridViewColumn>