HyperlinkBut​​ton NavigateUri在Safari中不起作用

时间:2018-04-18 10:09:33

标签: xaml silverlight safari

我使用HyperLinkBut​​ton并在c#代码中添加方法以点击他。

代码方法:

void btnViewURL_Click(object sender, RoutedEventArgs e)
{
         if (string.IsNullOrWhiteSpace(viewURL) == false
         && this.decisionViewModel.IsURLValid(viewURL))
         {
             System.Windows.Browser.HtmlPage.Window.Navigate(new Uri(viewURL, UriKind.Absolute), "_blank");
         }
}

此代码适用于但不适用于Safari。

尝试在xaml中使用NavigateUrl属性后。我添加了绑定,但这种方法在Safari中也不起作用。如果我设置纯文本网址(例如 - " https://google.com"没有绑定,那么Safari就会打开链接。

<HyperlinkButton Margin="8,0,0,0" x:Name="linkStaticURL" 
    NavigateUri="{Binding viewURL}"
    TargetName="_blank">
                <TextBlock Text="Reader"</TextBlock>
</HyperlinkButton>

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

您可以使用Process.Start在默认浏览器中打开网址:

void btnViewURL_Click(object sender, RoutedEventArgs e)
{
    if (string.IsNullOrWhiteSpace(viewURL) == false)
      && this.decisionViewModel.IsURLValid(viewURL))
    {
        System.Diagnostics.Process.Start(viewURL);
    }
}

如果您要启动特定的网络浏览器,可以将其位置传递给与此处建议的方法相同的方法:

Launch Web URL in NON-default browser

除了设置NavigateUri之外,您还应该处理RequestNavigate事件:

Example using Hyperlink in WPF