我需要在运行时动态地向程序的表单添加几个超链接(并处理用户对它们的点击)。
怎么做?
我尝试过类似的东西: var hlink = new Hyperlink(); myStackPanel.Children.Add(HLINK);
但超链接不是UIElement ...
谢谢!
答案 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>
您可以将它用于许多事情,就像使用按钮的点击事件一样。