2016-05-19 17 views

答えて

3

Win2Dは(ウィキペディアより)即時モードのグラフィックスライブラリである

即時モードのレンダリングは、グラフィックスのレンダリングは、ディスプレイにオブジェクト原因クライアントが直接呼び出すには、グラフィックスライブラリのアプリケーション・プログラミング・インターフェースのスタイル、です。ダブルバッファリングの使用を排除するものではありません。保持モードとは対照的に、レンダリングされるオブジェクトのリストはAPIライブラリによって保存されません。その代わりに、実際の変更に関係なく、新しいフレームが必要になるたびにシーン全体を記述するために必要なすべての描画コマンドを再発行する必要があります。この方法は、アプリケーションプログラムに最大限の制御と柔軟性を提供します。

変更するオブジェクトの参照は、一度描画すると失われてしまいますので、そのままにしておいてください。


CanvasBitmapをグローバルリソースとして定義するか、何らかのタイプのResourceLocatorを作成してください。次に、カスタムオブジェクトのようなx、y、幅、高さを格納する独自のクラスを作成します。

public class GenericItem 
{ 
    public CanvasBitmap b; 
    public int x; 
    public int y; 
    public int w; 
    public int h; 
} 
Win2Dから

変形例:

CanvasBitmap cat, mouse; 
GenericItem gi_cat; 

であなたのビットマップをロードします。

async Task CreateResourcesAsync(CanvasControl sender) 
{ 
    cat = await CanvasBitmap.LoadAsync(sender, "ShawnsCat.jpg"); 
    mouse = await CanvasBitmap.LoadAsync(sender, "Mouse.png"); 

    // create your GenericItem here 
    gi_cat = new GenericItem(); 
    // fill in your x,y,width,height,bitmap 
} 

今描く

void myWidget_Draw(CanvasControl sender, CanvasDrawEventArgs args) 
{ 
    args.DrawingSession.DrawImage(gi_cat.b, gi_cat.x, gi_cat.y); 
} 

gi_cat.x gi_cat.yと追加したプロパティを変更できます。

gi_cat.x = 500; 
gi_cat.y = 250; 

キャンバスコントロールで無効化メソッドを呼び出して再描画することができます。

name_of_your_canvas.Invalidate(); 

これにより、キャンバスコントロールは新しい位置で再描画されます。


基本的には、すべて自分で処理する必要があります。 DOMのようなアプローチをお探しの場合は、XAMLで標準のCanvasコントロールを使用してください。


私はここに深さWin2Dチュートリアルではかなりを持っている:

Win2D Getting Started: Windows Universal Application

関連する問題