我有两个变量
label
及其价值" LABEL_NAME=
"和
value
及其价值" A_B
"
我使用替换功能删除" _"来自label
并将其替换为
Dim label as String = "LABEL_NAME="
Dim value as String = "A_B"
label=label.Replace("_"," ")
并将其值分配给LABEL控件
dynamillabel.content=label & value
我希望结果为"LABEL NAME=A_B"
但是我得到了
"LABEL NAME=AB"
我正在替换_标签变量_它删除" _"价值变量也是如此。
修改:
我想连接两个变量并将其分配给Label.content。但在连接之前,我想用空格替换第一个变量 "_"
。当我这样做它删除第二个变量" _"以上是我用过的片段。
答案 0 :(得分:2)
WPF中的下划线用作键盘快捷键的指示符。它取代了&来自winforms的签名,如XAML&是无效的,为键盘快捷键
编写&
会有点烦人
如果您希望在内容中使用下划线,则应使用另一个下划线转义下划线。
将代码更改为此应该可以显示下划线:
Dim label as String = "LABEL_NAME="
Dim value as String = "A__B"
label=label.Replace("_"," ")
dynamillabel.content=label & value
现在您将看到下划线
此处也提出了类似的问题,您可以使用自定义模板禁用此功能
Disable WPF label accelerator key (text underscore is missing)
答案 1 :(得分:2)
下划线在Label中是特殊的。你需要一个额外的Replace():
Dim text = label & value
text = text.Replace("_", "__")
dynamillabel.content=text
为什么它很特别在MSDN的Label文章中得到了很好的解释,我只是引用它:
此类为访问键(也称为助记符)提供功能和可视支持。它经常用于启用对TextBox等控件的快速键盘访问。要将Label分配给Control,请将Target属性设置为当用户按下访问键时应获得焦点的控件。设置目标还会导致Microsoft UI Automation使用标签文本作为目标控件的名称。有关更多信息,请参阅辅助功能
要设置访问密钥,请在应该是访问密钥的字符前添加下划线。如果您的内容有多个下划线字符,则只将第一个字符转换为访问密钥;其他下划线显示为普通文本。
将TextBlock视为替代方案。