gpt4 book ai didi

c# - DataGridColumnHeader 中的第一个下划线被删除

转载 作者:可可西里 更新时间:2023-11-01 07:54:51 24 4
gpt4 key购买 nike

我遇到了一个问题,我有一个 DataGridColumnHeader,它正在接收带有下划线的文本作为内容,并且第一个下划线是隐藏的,除非你按 alt(“data_grid_thing”显示为“datagrid_thing”)。我四处寻找位,并为标签找到了解决此问题的一些方法,因为如果您将 RecognizesAccessKey 设置为 false,则文本将不会被视为“AccessText”(。但这对 DataGridColumnHeader 不起作用,因为它删除了所有其他样式,因此,我得到的不是带有文本的 header ,而是带有文本的空格。我也尝试使用 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>

谢谢!

最佳答案

这是因为 AccessKey 处理。只需编写这样的事件处理程序即可暂时转义数据网格 header 中的下划线。

private void DataGrid_AutoGeneratingColumn(object sender, DataGridAutoGeneratingColumnEventArgs e)
{
string header = e.Column.Header.ToString();

// Replace all underscores with two underscores, to prevent AccessKey handling
e.Column.Header = header.Replace("_", "__");
}

关于c# - DataGridColumnHeader 中的第一个下划线被删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9403782/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com