私はユーザーがさまざまなフォーム要素を選択してドラッグできるフォームを持っています。ユーザーはフォームのレイアウトをカスタマイズできるので、私はキャンバスを使用しています。すべての要素は、その子です。WPFでコントロールを一番上に作る
2つの要素がキャンバスの子として最後に追加されたものと同じ領域にある場合は、上に描画されます。私は、アクティブな要素、つまりドラッグされている要素が、一番上の要素に設定されるようにしたいと考えています。
私はSetZOrderメソッドを使って0に設定しましたが、何もしません。検査の際、GetZOrderを呼び出すすべての要素を調べると、それぞれの値が0になります。そのため、0に設定しても違いはありません。
私が見つけた唯一の解決策は、キャンバスに要素を削除して追加することです。
_mainCanvas.Children.Remove(_selectedElement);
_mainCanvas.Children.Add(_selectedElement);
これは機能しますが、これを行うにはより好ましい方法が必要です。
あなたはJosh Smithによってこの記事を見てきました:http://www.codeproject.com/KB/WPF/DraggingElementsInCanvas.aspx –