难题。 winform中的WPF主机 - 包含“_”的字符串的bug

时间:2013-09-10 18:11:11

标签: c# wpf winforms

在winform中托管WPF将在此处解释Walkthrough: Hosting a WPF Composite Control in Windows Forms。我以最简单的方式解释问题:只需创建一个winform项目。然后我创建另一个项目WPF用户控件库。在用户控件库上,我添加一个按钮并将其命名为button1。然后在xaml.cs文件中创建一个公共函数,如下所示:

public partial class UserControl1 : UserControl
{
    public UserControl1()
    {
        InitializeComponent();
    }

    public void SetText(string text)
    {
        button1.Content = text;
    }
}

我将该项目添加为winform中的引用,以便我可以将控件添加到我的winform中。在winform中,我添加一个按钮并创建按钮onClick事件。代码如下所示:

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        wpfButton.SetText("asd 12_2_a_s");
    }
}

现在派对开始了。我编译项目,最终看起来像这样: enter image description here

因此,如果我单击左键,则在右键上会显示如下字符串:“asd 12_2_a_s”。但是,发生的事情总是首先“_”缺失。我得到了这个: enter image description here

原始解决方案,问题只是写双打“__”wpfButton.SetText(“asd 12__2__a__s”); 这很有效。但我的问题是:这是真正的错误还是我错过了什么?

1 个答案:

答案 0 :(得分:4)

控件的文本/内容中的下划线是用于指示访问密钥的字符。您可以使用双下划线__

来转义它

"t__est"

尚未对此进行测试,但您也可以使用@符号。 @"t_est"将输出t_est

编辑:@不适用于设置文本/内容属性。