0

これが問題です。ボタンのある基本的なWebサイトがあります。これらのボタンはjavascriptを介して実行され、コードはC#で実行され、Silverlightガントコントロールを使用してさまざまな処理を実行します。

たとえば、ガントコントロールをズームインしたい場合は、次のようにします。

<button id="zoomIn" onclick="SlZoomIn()">Zoom In</button>

次にjavascriptで:

function SlZoomIn() {
    var control = document.getElementById("SilverlightPlugIn");
    control.Content.SilverPlan.JsZoomIn();
}

次にC#で:

[ScriptableMember]
        public void JsZoomIn()
        {

            try
            {
                gantt.ZoomBySteps(1);
            }
            catch (Exception e)
            {
                MessageBox.Show("Zoom In does not work.");
            }
        }

これはすべて正常に機能しますが、イベントを必要とするガントを使用して何かを実行したい場合、これは問題になります。たとえば、ガントコントロールを印刷または全画面表示したい場合です。これどうやってするの?

C#では、このためのコードは次のとおりです。

private void fullScreen(object sender, RoutedEventArgs e)
        {
            Application.Current.Host.Content.IsFullScreen = !Application.Current.Host.Content.IsFullScreen;
        }

しかし、このメソッドをトリガーするには、JavaScriptで何をする必要がありますか?ユーザーがボタンを全画面でクリックしたとき?

4

1 に答える 1

0

Silverlightプラグインがフルスクリーンモード、印刷、ファイルダイアログなど、いくつかの点でセキュリティ制限を課していることを除いて、JavaScriptからこのコードを呼び出すことに前の例との違いはありません。これらは、ユーザーが何かをクリックまたは入力することによってこれらのアクションを開始する必要があることを意味します。ここMSDNで説明されています。

したがって、ユーザーがSilverlightプラグインの外部のボタンを押した場合でも、JavaScriptからこれを行うことはできません。たとえば、C#コードで処理するイベントを発生させるボタンなど、Silverlightプラグイン内の何かをクリックする必要があります。直接アクションを実行します。

フルスクリーンの場合、HTML / JavaScriptコンテンツをSilverlightと混合している場合、Silverlightフルスクリーンが希望どおりに機能しない可能性が非常に高いことがわかります。Silverlightコンテンツはフルスクリーンになり、HTMLコンテンツはフルスクリーンになります。表示されません。また、(ほとんどの場合)キーボード入力を使用することはできません。HTMLページ内のSilverlightオブジェクトのサイズを変更することをお勧めします(ブラウザーウィンドウを最大化することと組み合わせることができます)。

于 2012-04-23T11:36:46.800 に答える