カスタムコントロールを含むスタックパネルがあります。標準のMouseDragElementBehaviorを各アイテムに添付します。
右にドラッグすると、アイテムが他のアイテムの下に移動します。
より良いユーザーエクスペリエンスを作成するための実行可能なソリューションは何でしょうか-より良い視覚的な手がかりを表示するために-アイテムがどのように移動し、どこにドロップされるのか。
カスタムコントロールを含むスタックパネルがあります。標準のMouseDragElementBehaviorを各アイテムに添付します。
右にドラッグすると、アイテムが他のアイテムの下に移動します。
より良いユーザーエクスペリエンスを作成するための実行可能なソリューションは何でしょうか-より良い視覚的な手がかりを表示するために-アイテムがどのように移動し、どこにドロップされるのか。
少しいじくり回した後、スタックパネル内で他の要素に覆われていない状態で右にドラッグできるものは何もないことに気付きました。右のアイテムをドラッグしない限り。
それを解決するために私がしたこと:
もう一度強調するには、どのような方法でも、StackPanel.Childrenコレクションの最後の要素を操作する必要があります...。
MouseDragElementBehaviorが必要な方法で機能しない場合は、いつでもクラスから降りて、必要に応じてカスタマイズできます。例えば:
public class DragBehvaior : MouseDragElementBehavior
{
public DragBehvaior()
{
this.DragBegun += new MouseEventHandler(DragBehvaior_DragBegun);
}
void DragBehvaior_DragBegun(object sender, MouseEventArgs e)
{
var element = this.AssociatedObject as UIElement;
// Calculate the correct ZIndex here.
Canvas.SetZIndex(element, 100);
}
}