在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");
}
}
现在派对开始了。我编译项目,最终看起来像这样:
因此,如果我单击左键,则在右键上会显示如下字符串:“asd 12_2_a_s”。但是,发生的事情总是首先“_”缺失。我得到了这个:
原始解决方案,问题只是写双打“__”wpfButton.SetText(“asd 12__2__a__s”); 这很有效。但我的问题是:这是真正的错误还是我错过了什么?
答案 0 :(得分:4)
控件的文本/内容中的下划线是用于指示访问密钥的字符。您可以使用双下划线__
来转义它 "t__est"
尚未对此进行测试,但您也可以使用@符号。 @"t_est"
将输出t_est
编辑:@不适用于设置文本/内容属性。