【发布时间】:2021-02-07 18:36:17
【问题描述】:
我遇到了一个问题,我有一个 DataGridColumnHeader,它接收带有下划线的文本作为内容,并且第一个下划线被隐藏,除非您按 alt(“data_grid_thing”显示为“datagrid_thing”)。我四处搜索位,并为标签找到了解决此问题的一些方法,因为如果将 RecognizesAccessKey 设置为 false,则文本将不会被视为“AccessText”(。但这不适用于 DataGridColumnHeader,因为它会删除所有其他样式,因此,我没有在其中包含文本的标题,而是得到带有文本的空格。我尝试使用 BasedOn 属性也没有效果。
我对通过 C# 端(可能通过某种方式找到 ContentPresenter 来修改 RecognizesAccessKey 属性)或通过修改 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>
谢谢!
【问题讨论】:
-
啊,我忘了链接这个:stackoverflow.com/questions/40733/… 这是我能找到的最接近解决方案的方法,解决了原始问题,但导致了我上面提到的样式问题。
-
无法真正重现这一点,对我来说似乎无法在未修改的 DataGrid 中访问文本转换...
-
@H.B.您使用的是哪个版本的 .NET?
标签: c# wpf xaml user-interface