次のXAMLコードは、大きな親スタックパネル内に2つのスタックパネルを作成します。私は、親のbigStackパネル内の各小さなスタックパネルをドラッグできるようにしたいと思います。一般的な方法を使用してコントロールをドラッグアンドドロップするにはどうすればよいですか?
XAMLは
<StackPanel BorderThickness="1" BorderBrush="Black" x:Name="bigStack">
<StackPanel x:Name="smallStack1" ManipulationMode="All" ManipulationDelta="objectManipulationDelta" ManipulationStarting="objectManipulationStarting">
<TextBlock Text="John Doe"/>
<TextBlock Text="CEO"/>
</StackPanel>
<StackPanel x:Name="smallStack2" ManipulationMode="All" ManipulationDelta="objectManipulationDelta" ManipulationStarting="objectManipulationStarting">
<TextBlock Text="Jane Doe"/>
<TextBlock Text="CTO"/>
</StackPanel>
</StackPanel>
C#のバックエンド:
private TranslateTransform dragtranslation ;
private void objectManipulationDelta(object sender, ManipulationDeltaRoutedEventArgs e)
{
dragtranslation.X += e.Delta.Translation.X;
dragtranslation.Y += e.Delta.Translation.Y;
}
private void objectManipulationStarting(object sender, ManipulationStartingRoutedEventArgs e)
{
var stackDragged = e.OriginalSource as StackPanel;
dragtranslation = new TranslateTransform();
stackDragged.RenderTransform = this.dragtranslation ;
}
オリジナルコードは
私のニーズに合うように(明らかに誤って) here(オフィシャルマイクロソフトUWPのドキュメントを)見つけたが適応します問題1
初めて1)ドラッグsmallStack1:OK
二度目の2)ドラッグsmallStack2は:元の位置に戻り
問題2
1)smallStack1を初めてドラッグ:OK
2)初めてsmallStack2をドラッグします。OK
3)再びsmallStacksのいずれかをドラッグ:私は
を達成するために願い事はなに:元の位置に
を元に戻しますが、以下の.GIFで問題を確認することができます
一般的な方法でコントロールをドラッグします。なぜなら、私はbigStackパネル内にさらに多くのコントロールを動的に作成する予定だからです。
詳細な対応をありがとうございます。私は夜遅くに家に戻ったときにそれを再確認します。一つの質問、私はC#のコードを経由して、動的にこれらのスタックパネルを構築するために、C#のを介して制御に追加することができ、この ものですコード?もしそうなら、あなたはどのように知っていますか? ありがとうございました –
@ dr.hannibal私は自分の答えを更新しました。 – AVK
あなたはすごく感謝しています。私を助けてくれました。 –