2011-05-06 59 views
1

声明:我真的是WPF的新手,所以我对这个愚蠢的问题表示歉意。使用带有动态URL的WPF超链接控件

我有一个包含一个超链接标签,如果网址是硬编码到XAML,像这样的作品罚款WPF形式:

<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; 
    } 

我想要做的是使这个超链接的目标网址动态。我添加了一个新窗口(作为对话框调用)以获取新的链接,然后将其分配给主窗口类的私有成员,使其返回“真”。我如何调整XAML标记/代码隐藏以便随时使用类成员(我将在构造函数中设置为默认值),而不是将其硬编码到标记中?

在此先感谢,并为noob问题感到抱歉。我必须使用错误的搜索条件。

回答

2

您可以使用按钮样式看起来像超链接并将CommandParameter绑定到您的URL。然后你会设置Command运行是这样的:

public void OpenWebsite(string url) 
{ 
    Process.Start(url); 
} 
0

只要改变你的超级链接_requestNavigate方法使用私有变量:

protected void Hyperlink_RequestNavigate(object sender, RequestNavigateEventArgs e) 
{ 
    Process.Start(new ProcessStartInfo(privateVariableName)); 
    e.Handled = true; 
}