如何以编程方式将动态创建的超链接添加到堆栈面板WPF

时间:2018-11-19 07:15:11

标签: c# .net wpf

我正在创建超链接,并希望将其添加到堆栈面板中。

for (int i = 1; i <= links.Length; i++)
{
    Hyperlink hyperlink = new Hyperlink()
    {
        NavigateUri = new Uri(links[i - 1])
    };
}
hyperlink.RequestNavigate += new System.Windows.Navigation.RequestNavigateEventHandler(this.Hyperlink_RequestNavigate);
mainControl.Children.Add(hyperlink);

它给我错误-

  

无法转换为system.windows.documents.hyperlink到system.windows.uielement。

我了解名称空间错误,但没有找到解决方法,因为在uielement中我找到超链接。

1 个答案:

答案 0 :(得分:0)

使用LinkLabel代替HyperLink

样品:

using System;
using System.Drawing;
using System.Windows.Forms;

public class LinkLabelAddLink : Form {
    LinkLabel lnkLA = new LinkLabel();

  public LinkLabelAddLink(){
    Size = new Size(300,250);

    lnkLA.Parent = this;
    lnkLA.Text = "StackOverflow.com";
    lnkLA.Location = new Point(0,25);
    lnkLA.AutoSize = true;
    lnkLA.BorderStyle = BorderStyle.None;
    lnkLA.Links.Add(0,7,"www.stackoverflow.com");
    lnkLA.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(lnkLA_LinkClicked);
  }

  static void Main() 
  {
    Application.Run(new LinkLabelAddLink());
  }
  private void lnkLA_LinkClicked(object sender,LinkLabelLinkClickedEventArgs e)
  {
      lnkLA.LinkVisited = true;
       System.Diagnostics.Process.Start(e.Link.LinkData.ToString());
  }
}

PS:您至少需要.NET 4.5