5

Silverlight 3 を使用すると、ブラウザーからアプリケーションを実行できます。これにより、デスクトップ/スタート メニューにリンクがインストールされます。

問題は、現在使用していることです

System.Windows.Browser.HtmlPage.
  Window.Navigate(new Uri("http://<server>/<resource>"), "_blank")

URL を新しいブラウザー ウィンドウにロードする (ユーザーが印刷できる「印刷しやすい」ページを提供するため)。これは、通常の SL ブラウザ内バージョンでは機能しますが、ブラウザ外では「DOM/スクリプト ブリッジが無効になっています」というメッセージが表示されます。呼び出しの発行時にスローされる例外。

ブラウザの外で動作する代替手段はありますか?

Open page in silverlight out of browserを見たことがありますが、これを完全にコードで行う必要があるため、(非表示の) ハイパーリンク ボタンを追加してからプログラムで「クリック」したくありません (絶対に必要でない限り.. .)。

4

2 に答える 2

5

HyperlinkBut​​ton から継承し、パブリック Click() メソッドを公開してみることができます (xaml で宣言する代わりに、インスタンス化してコードから呼び出すことができます)。詳細はこちら: http://mokosh.co.uk/post/2009/10/08/silverlight-oob-open-new-browser-window/

于 2009-10-09T10:39:42.597 に答える
2

HyperlinkBut​​ton から継承するという考えに基づいて、Extension メソッドを作成しました。

public static class UriExtensions {

class Clicker : HyperlinkButton {
  public void DoClick() {
    base.OnClick();
  }
}

static readonly Clicker clicker = new Clicker();

public static void Navigate(this Uri uri) {
  Navigate(uri, "_self");
}

public static void Navigate(this Uri uri, string targetName) {
  clicker.NavigateUri = uri;
  clicker.TargetName = targetName;
  clicker.DoClick();
}
}

次に、次のように簡単に使用できます

new Uri(" http://www.google.com ").Navigate("_blank");

于 2013-02-05T17:27:15.107 に答える