【问题标题】:Is there a way to add a Binding to the NavigateUri property on a HyperLink in WPF?有没有办法将绑定添加到 WPF 中超链接上的 NavigateUri 属性?
【发布时间】:2010-12-29 19:23:00
【问题描述】:

我正在使用 TextBox 中的超链接添加指向我的 WPF 应用程序的链接:

<TextBlock Margin="480,92,460,713" Height="24">
 <Hyperlink NavigateUri="{Binding MyLink}" RequestNavigate="Hyperlink_RequestNavigate">My Link</Hyperlink>
</TextBlock>

绑定“MyLink”不起作用。我需要使用的链接有一个带有变量的查询字符串,我需要在代码中动态更改。如果我尝试将链接硬编码到 XAML 中,我会收到一个错误,因为查询字符串有一个带有 & 符号的变量。

当我将链接指向像谷歌这样的网站时,我的链接正在工作。但我需要在 c# 代码中设置它并且能够在查询字符串中设置我的变量。有没有办法做到这一点?谢谢!

【问题讨论】:

  • 我不知道如何接受?我想我的都已经回答了

标签: wpf navigateuri


【解决方案1】:

你正在做的应该工作......

要对此进行测试,请创建一个默认 WPF 应用程序并将以下代码放在 Window1.xaml 的 Grid 中...

        <TextBlock>
             <Hyperlink NavigateUri="{Binding}" RequestNavigate="Hyperlink_RequestNavigate">My Link</Hyperlink>
        </TextBlock>

...在 Window1.xaml.cs 中添加这个...

    public Window1()
    {
        InitializeComponent();

        this.DataContext = "whatever the heck i want";
    }

    private void Hyperlink_RequestNavigate(object sender, RequestNavigateEventArgs e)
    {
        //e.Uri will display "whatever the heck i want" 
        //which would allow you to do whatever you want 
        //with the URL at that point

        Process.Start(new ProcessStartInfo("url_you_want_to_use"));
        e.Handled = true;
    }

【讨论】:

  • 由于某种原因仍然无法为我工作。当我将 datacontext 字符串更改为链接时,例如到 google,我单击该链接并没有任何反应。
  • 上面的代码不会对链接做任何事情;您需要自己处理...修改示例...用 e.Uri.AbsoluteUri 替换“url_you_want_to_use”,以查看它立即与 google.com 一起工作
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-04
  • 2014-11-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多