ユーザーがさまざまなフォーム要素を選択してドラッグできるフォームがあります。ユーザーはフォームのレイアウトをカスタマイズできるため、キャンバスを使用しており、すべての要素はその子です。
2 つの要素が同じ領域にある場合、キャンバスの子として最後に追加された方が上に描画されます。ドラッグされているアクティブな要素を、最上位の要素に設定できるようにしたいと考えています。
SetZOrder メソッドをいじって 0 に設定しましたが、何もしません。GetZOrder を呼び出すすべての要素を調べると、それぞれに 0 が返されるため、0 に設定しても違いはありません。
私が見つけた唯一の解決策は、要素を削除してキャンバスに追加することです。
_mainCanvas.Children.Remove(_selectedElement);
_mainCanvas.Children.Add(_selectedElement);
これは機能しますが、これを行うためのより適切で適切な方法があるに違いないと感じています。