如何防止用户在ListView控件中删除GridViewColumns?
hrirmatl1#
对于那些寻求更快,更简单的答案。在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>
这个答案可能不像其他帖子那样优雅;但对我来说,我需要的只是一种快速的方法。希望这对某人有帮助。
pu3pd22g2#
Darkonekt的答案是好的,但是最好将IsHitTestVisible设置为false而不是IsEnabled。这样做的好处是不会使标题变灰。
IsHitTestVisible
IsEnabled
<GridView.ColumnHeaderContainerStyle> <Style BasedOn="{StaticResource {x:Type GridViewColumnHeader}}" TargetType="{x:Type GridViewColumnHeader}"> <Setter Property="IsHitTestVisible" Value="False"/> </Style> </GridView.ColumnHeaderContainerStyle>
pxyaymoc3#
我找到了一个解决办法,也许有一天它会帮助别人;)你必须覆盖GridViewColumnHeader的ControlTemplate(默认模板是here),并从模板中删除PART_HeaderGripper,以防止列的重复。还有另一个解决方案,它提出了一个子类GridViewColumn描述here。出于表示的目的,我更喜欢XAML的解决方案,
thtygnil4#
一个平滑的解决方案:
<GridViewColumn ...> <GridViewColumn.HeaderContainerStyle> <Style TargetType="{x:Type FrameworkElement}"> <Setter Property="IsHitTestVisible" Value="False"/> </Style> </GridViewColumn.HeaderContainerStyle> </GridViewColumn>
sauutmhj5#
我能够做一些类似的指示在这篇文章Link我无法使用完整的XAML解决方案,因为我在代码中构建了所有内容,因为它是动态的。在第一次尝试时工作得很好。
5条答案
按热度按时间hrirmatl1#
对于那些寻求更快,更简单的答案。
在ColumnHeaderContainerStyle中将IsEnabled设置为False。这将阻止用户使用。
就像这样:
如果您想修复禁用的灰色,请在IsEnabled属性上添加一个触发器并修复所需的内容。
这个答案可能不像其他帖子那样优雅;但对我来说,我需要的只是一种快速的方法。
希望这对某人有帮助。
pu3pd22g2#
Darkonekt的答案是好的,但是最好将
IsHitTestVisible
设置为false而不是IsEnabled
。这样做的好处是不会使标题变灰。pxyaymoc3#
我找到了一个解决办法,也许有一天它会帮助别人;)
你必须覆盖GridViewColumnHeader的ControlTemplate(默认模板是here),并从模板中删除PART_HeaderGripper,以防止列的重复。
还有另一个解决方案,它提出了一个子类GridViewColumn描述here。出于表示的目的,我更喜欢XAML的解决方案,
thtygnil4#
一个平滑的解决方案:
sauutmhj5#
我能够做一些类似的指示在这篇文章
Link
我无法使用完整的XAML解决方案,因为我在代码中构建了所有内容,因为它是动态的。在第一次尝试时工作得很好。