wpf:如何在运行时添加超链接?

时间:2010-09-22 14:22:12

标签: wpf wpf-controls

我需要在运行时动态地向程序的表单添加几个超链接(并处理用户对它们的点击)。

怎么做?

我尝试过类似的东西: var hlink = new Hyperlink(); myStackPanel.Children.Add(HLINK);

但超链接不是UIElement ...

谢谢!

2 个答案:

答案 0 :(得分:3)

这有点笨拙,但你需要这样做:

Label linkLabel = new Label();
Run linkText = new Run("Google");
Hyperlink link = new Hyperlink(linkText);

link.NavigateUri = new Uri("http://www.google.com");

link.RequestNavigate += new RequestNavigateEventHandler(delegate(object sender, RequestNavigateEventArgs e) {
    Process.Start(new ProcessStartInfo(e.Uri.AbsoluteUri));
    e.Handled = true; 
});

linkLabel.Content = link;

myStackPanel.Children.Add(linkLabel);

这将生成一个带有“Google”文本的新标签,即Uri“http://www.google.com”,点击它后会在用户的默认浏览器中打开Uri。

答案 1 :(得分:2)

超链接不是UI元素,但您可以将其作为内容添加到标签中。

在Xaml中它看起来像这样:

<Label>
<Hyperlink Click="btnRemoveAll_Click">Remove all</Hyperlink>
</Label>

您可以将它用于许多事情,就像使用按钮的点击事件一样。