免责声明:我是WPF的新手,所以我为这个愚蠢的问题道歉。
我有一个WPF表单,其中包含一个超链接标记,如果URL被硬编码到XAML中,它可以正常工作,如下所示:
<TextBlock Margin="171,148,129,70">
<Hyperlink NavigateUri="http://www.somesite.com" RequestNavigate="Hyperlink_RequestNavigate">
<TextBlock Text="Open site in browser" />
</Hyperlink>
</TextBlock>
后面的代码如下:
protected void Hyperlink_RequestNavigate(object sender, RequestNavigateEventArgs e)
{
Process.Start(new ProcessStartInfo(e.Uri.AbsoluteUri));
e.Handled = true;
}
我想要做的是使此超链接的目标网址动态化。我添加了一个新窗口(作为对话框调用)以获取新链接,然后在其“true”返回时将其分配给主窗口类的私有成员。如何调整XAML标记/代码隐藏以始终使用类成员(我将在构造函数中设置为默认值)而不是将其硬编码到标记中?
提前致谢,对于noob问题感到抱歉。我必须使用错误的搜索字词。
答案 0 :(得分:2)
您可以使用样式化的按钮看起来像超链接,并将CommandParameter
绑定到您的网址。然后,您可以将Command
设置为运行如下:
public void OpenWebsite(string url)
{
Process.Start(url);
}
答案 1 :(得分:0)
只需更改超链接_requestNavigate方法即可使用该私有变量:
protected void Hyperlink_RequestNavigate(object sender, RequestNavigateEventArgs e)
{
Process.Start(new ProcessStartInfo(privateVariableName));
e.Handled = true;
}