如何使用silverlight mvvm中的HyperlinkBut​​ton导航到外部URL

时间:2012-11-05 11:20:53

标签: c# silverlight mvvm

我正在使用带有mvvm模式的Silverlight 5。 在xaml页面中,我有一个超链接按钮和图像。如果单击名为“预览”的按钮,则表示必须在新标签浏览器中打开图像或任何文件。

XAML代码:

<Image Source="{Binding Image}"/>
    <HyperlinkButton Content="Preview" Width="60" Height="26"   
        HorizontalAlignment="Center"
        VerticalAlignment="Center"
        TargetName="_blank"
        Name="HyperlinkButton"
        Background="Transparent"
        Click="HyperlinkButton_Click">
    </HyperlinkButton>

VIEWMODEL代码:

void ChooseHyperExecute(object param)
{
    WebBrowser br = new WebBrowser();
    SampleViewModel dt = param as SampleViewModel;

    string ma = dt.String_Value;
    br.Navigate(new Uri(Application.Current.Host.Source, string.Format("./Images/{0}", ma)));

}

但它不起作用。

1 个答案:

答案 0 :(得分:1)

您需要使用HtmlWindow.Navigate方法:

void ChooseHyperExecute(object param)
{
    SampleViewModel dt = param as SampleViewModel;
    string ma = dt.String_Value;            
    var externalUri = new Uri(Application.Current.Host.Source, 
        string.Format("./Images/{0}", ma));
    var absoluteUri = new Uri(externalUri, UriKind.Absolute);
    System.Windows.Browser.HtmlPage.Window.Navigate(absoluteUri, "_blank");
}