[ValueConversion(typeof(string), typeof(string))]
public class ShowUnderscoreConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture) =>
value is string text ? text.Replace("_", "__") : null;
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) =>
value is string text ? text.Replace("__", "_") : null;
}
6条答案
按热度按时间hgb9j2n61#
标签支持助记符(也就是说,你可以使用ctrl+(键)来给它们提供焦点)。你可以使用下划线来定义助记键。
http://www.charlespetzold.com/blog/2006/01/061004.html
如果要显示下划线,请将单下划线替换为双下划线。
ia2d9nvy2#
这是因为
Label
支持基于助记符的内容定义助记符,这是通过在助记符前面加上下划线来实现的(与Windows窗体中&
的情况相同)。如果要显示文字下划线,请使用双下划线:
li9yvcax3#
我知道我迟到了,但我相信,如果你没有标签关联到一个文本框比你应该使用文本块代替。
将控件更改为TextBlock可解决此问题,因为只有Label具有助记符支持
wfveoks04#
此样式解决了您的问题:
vs3odd8k5#
我绑定到了一个不想更改的数据源,所以我使用了一个自定义转换器来创建缺少的下划线:
avkwfej46#
谢谢,这真的很好!我只是补充:代码之前的
<Window.Resources>
和代码之后的</Style></Window.Resources>
。