在我的整个应用程序中,我有一些未显示的下划线(_).
这是由于访问者.但是如何禁用它呢?适用范围广?我没有标签,文本框,......
谢谢
我有一个问题,我有一个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>
Run Code Online (Sandbox Code Playgroud)
谢谢!
我正在尝试制作一个热键(即Ctrl + Y),将焦点更改为文本框.
我是德尔福的移植手术,这让我很困惑.在Delphi 5中,这非常简单.(在标签的标题上,您可以在要制作热键的字母之前添加&.在将标签指向TextBox后,热键将起作用.)
对于WPF,我看到WPF中的可怕示例涉及调用Win32调用或为每个热键(以及其他如此繁重的实现)发出命令.
我发现很难相信1999年推出的IDE和Languange版本(Delphi 5)有一个比Hotkey更简单的系统(比WPF更好).
当然我错过了一些东西.如果你知道,请告诉我它是什么.
可能重复:
禁用WPF标签加速键(缺少文本下划线)
我目前正在开发一个C#WPF项目.我需要读入配置文件并显示在标签内检索的选项.选项有时在选项名称的中间用下划线(_)标记,例如,它可能是类似的my_option.
当我尝试my_option在标签内显示时,下划线被隐藏,而是在Alt按下该键时用作键盘快捷键.
如何禁用此功能,而是在标签中显示下划线?
我试过这样做my__option(也就是说,将两个下划线加在一起而不是一个),但这似乎没有做任何事情.
我正在尝试填充我ConextMenu的代码.我在其中添加了一些MenuItems内容.A MenuItem包含字符串和事件.所以我面临的问题是,如果字符串包含下划线(_),则菜单将其视为alt键.因此,在上下文菜单中,我看到下划线后面的字符.
e.g. MenuItem.Header = "Some Command_With"
Output = "Some CommandWith" (Where W of With is underlined)
Run Code Online (Sandbox Code Playgroud)
这是代码.
var menuName = Some String Generated on run time;
var contextMenu = GetContextMenu();
var menuItem = new MenuItem { Header = menuName };
contextMenu.Items.Add(menuItem);
Run Code Online (Sandbox Code Playgroud)
有人告诉我,我可以设置MenuItem模板.但我不确定如何做到这一点.