0

WPFアプリケーションは、任意のサイズの均一なグリッドで構成されます。グリッドの各セルにはキャンバスが含まれています。各キャンバスは、ドラッグアンドドロップ操作のターゲットです。

別のキャンバスをドラッグしてグリッド内のキャンバスにドロップするときは、ドラッグしたキャンバス(ソース)とターゲットキャンバスの左上隅を揃えて、基本的にソースをターゲットの上に配置します。私が探している動作は、グリッドにスナップする効果です。

現在element.GetValue(Canvas.LeftProperty)、結果をNaNで使用する場合。問題は、グリッド内のキャンバスのコーナーの位置を決定することですが、ウィンドウ全体を基準にしています。ウィンドウのサイズが変更されると自動的にサイズが変更されるため、グリッドを使用することをお勧めします。

グリッドサイズが変更された場合でも、グリッド内のキャンバスの実際の位置を取得したり、グリッド内の別のキャンバスに位置合わせするキャンバスを指定したりすることはできますか?

4

1 に答える 1

0

この問題は、キャンバスの上部と左側のプロパティを指定して各キャンバスを別のキャンバスに描画することで解決されました。グリッドをスクラッチする必要がありました。を使用してすべてのキャンバスの位置を指定しました

Canvas.SetLeft(Me, position.X)
Canvas.SetTop(Me, position.Y) 

ここMeで、はキャンバスのインスタンスです。

すべてのキャンバスの上部と左側のプロパティを簡単に取得できるようになりました。現在の唯一の問題は、すべてのキャンバスのサイズ変更を手動で実装する必要があることです。

于 2012-12-13T13:40:30.950 に答える