我遇到了一个问题,我有一个DataGridColumnHeader以下划线作为内容接收文本,第一个下划线是隐藏的,除非按下alt(“data_grid_thing”显示为'datagrid_thing“ )我搜索了一下,发现了一些解决这个问题的标签,因为如果你把RecognizesAccessKey设置为false,那么这个文本就不会被认为是'AccessText'(但是这对DataGridColumnHeader不起作用,因为它删除了所有其他的样式,所以,而不是其中的文本标题,我只是用文本的空白,我尝试使用BasedOn属性以及没有效果DataGridColumnHeader中的第一个下划线被删除
我打开解决方案要么通过C#方面(以某种方式修改RecognizesAccessKey属性findi可能是ContentPresenter),或者通过修改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>
谢谢!
啊,我忘了这个链接:http://stackoverflow.com/questions/40733/disable-wpf-label-accelerator-key-text-underscore-is-missing这是最接近的解决方案我可以找到,解决原来的问题,但造成我上面提到的造型问题。 – Stuart 2012-02-22 22:17:21
不能真正重现这一点,似乎没有在未修改的DataGrid中对我进行文字转换... – 2012-02-22 22:18:25
[WPF listbox。在字符串中跳过下划线符号](http://stackoverflow.com/questions/4601801/wpf-listbox-skip-underscore-symbols-in-strings) – phoog 2012-02-22 22:19:48