替换vb.net中的函数

时间:2015-08-30 07:35:47

标签: wpf vb.net vb.net-2010

我有两个变量 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。但在连接之前,我想用空格替换第一个变量 "_" 。当我这样做它删除第二个变量" _"以上是我用过的片段。

2 个答案:

答案 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视为替代方案。