我有一个问题,我有一个DataGridColumnHeader接收文本,下划线作为内容,第一个下划线是隐藏的,除非你按alt(“data_grid_thing”显示为“datagrid_thing”),我搜索了一下,为标签找到了一些解决此问题的解决方案,因为如果您将RecognizesAccessKey转为false,则该文本将不被视为“AccessText”(但是它不适用于DataGridColumnHeader,因为它会删除所有其他样式,一个带有文本标题的标题,我只是用文本来获取空格,我尝试使用BasedOn属性也没有任何效果.
我可以通过C#方式(通过某种方式找到ContentPresenter来修改RecognisedAccessKey属性)或通过修改XAML(找出保留默认样式的方式)来解决问题.
我的XAML看起来像这样:
- <Style x:Key="DataGridColumnHeaderStyle" BasedOn="{StaticResource {x:Type DataGridColumnHeader}}" TargetType="{x:Type DataGridColumnHeader}">
- <Setter Property="Template">
- <Setter.Value>
- <ControlTemplate TargetType="DataGridColumnHeader">
- <Border>
- <ContentPresenter
- HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
- VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
- RecognizesAccessKey="False" />
- </Border>
- </ControlTemplate>
- </Setter.Value>
- </Setter>
- </Style>
谢谢!
解决方法
这个
blog post说,你可以通过加倍来减少下划线:“data__grid_thing”.
另一种方法可以在this question的公认答案中找到