1

JSON 文字列に格納されたデータから多層球 (同心円と考えてください) の断面イメージを基本的に構築する Silverlight アプリケーションを作成しました。JSON 文字列は、直径と色の値の配列であり、次のようになります。

[{"diam":100,"color:"#ffffff"},{"diam":150,color:"#ff0000"}]

Silverlight 内ですべてが動作しています。上記の JSON を使用してブラウザーでアプリを読み込むと、2 つの同心円のレンダリングが正常に取得されます。内側の円は直径 100 ピクセルの白 (#ffffff) で、外側の円は赤 (#ff0000) です。直径 150 ピクセル。偉大な。

ここで、これを HTML ページ内に統合し、その JSON データを JavaScript から Silverlight に渡す必要があります。SIlverlight が提供する HTMLBridge 機能を使用していますが、Javascript から Viz を構築する Silverlight メソッドを呼び出すのに問題があります。

Silverlight でのメソッド名は BuildViz() で、Silverlight キャンバスからすべての既存の要素を削除し、JSONData という名前のパブリック プロパティから視覚化を再構築します。JSONData は、値の設定時に BuildViz() メソッドを呼び出します。

[ScriptableMember()]
public string JSONData { 
    get { return _JSONData; } 
    set { _JSONData = value; BuildViz(); } 
}

HTMLBridge を使用して JSONData を javascript に公開し、javascript を介してその値を設定しようとしましたが、BuildViz() メソッドが呼び出されていないようです (または、呼び出されてもキャンバスには影響しません)。ここからどこへ行くべきかわからない。私がオンラインで見た HTMLBridge の例は非常に基本的なもので、文字列を大文字に変換し、その値を呼び出し元の JavaScript に返すなどの単純な方法しか扱っていません。Silverlight 内で実際にメソッドを実行する必要があります。

どんな助けでも大歓迎です。

ティア

4

1 に答える 1

0

これ、またはそれに似たものを試してください

var silverlightObject = document.getElementById('_the_id_of_your_silverlight_obj_');
var jsonData = { value: 'hello world' }

// invoke setter
silverlightObject.Content._the_object_containing_your_method_.set_JSONData(jsonData);

// invoke getter
jsonData = silverlightObject.Content._the_object_containing_your_method_.get_JSONData();
于 2011-07-01T16:59:22.837 に答える