我今天遇到了这个问题,这就是我在 SilverLight 5 中解决它的方法:使用以下代码创建一个新类:
/// <summary>
/// Opens a new browser window to the specified URL with the specified target
/// For use while running both in or out-of-browser
/// </summary>
public class WebBrowserBridge
{
private class HyperlinkButtonWrapper : HyperlinkButton
{
public void OpenURL(String navigateUri, String target = "_blank")
{
OpenURL(new Uri(navigateUri, UriKind.Absolute), target);
}
public void OpenURL(Uri navigateUri, String target = "_blank")
{
base.NavigateUri = navigateUri;
TargetName = target;
base.OnClick();
}
}
public static void OpenURL(String navigateUri, String target = "_blank")
{
HyperlinkButtonWrapper hlbw = new HyperlinkButtonWrapper();
hlbw.OpenURL(navigateUri, target);
}
public static void OpenURL(Uri navigateUri, String target = "_blank")
{
HyperlinkButtonWrapper hlbw = new HyperlinkButtonWrapper();
hlbw.OpenURL(navigateUri, target);
}
}
以下是如何实现和使用它:
private void hlViewMarketplace_Click(object sender, RoutedEventArgs e)
{
Uri destination = new Uri("http:///www.google.com/" + ((HyperlinkButton)sender).CommandParameter);
WebBrowserBridge.OpenURL(destination, "_blank");
}