のグリッドにDragStarted
DragDelta
イベントをどのように添付できますか。私はGestureService.GetGestureListener()
メソッドでWindowsの電話で同じをやった。私は、コードをWindowsのManipulationStarted & ManipulationDeltaイベントに置き換えようとしましたが、結果は同じではありません。 1回のドラッグでWindows PhoneでDragDeltaイベントを2回以上入力します。しかし、一方でWindows 8では、ManupulationDeltaイベントでは、同じようなドラッグ操作のために1回だけ起動します。WindowsでのDragStarted DragDeltaイベントの実装8/WinRT
15
A
答えて
10
ええ、私はあなたが望むものを知っていると思います。
は、あなたがこのようないくつかのXAMLを持っているとしましょう:
<Grid Margin="50">
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>
<Rectangle Fill="Blue" x:Name="MyRect" />
</Grid>
あなたはそれをドラッグしてGrid
の周りにその四角形を移動したいです。このため
public MainPage()
{
this.InitializeComponent();
MyRect.ManipulationMode = ManipulationModes.TranslateX | ManipulationModes.TranslateY;
MyRect.ManipulationDelta += Rectangle_ManipulationDelta;
MyRect.ManipulationCompleted += Rectangle_ManipulationCompleted;
}
private void Rectangle_ManipulationDelta(object sender, ManipulationDeltaRoutedEventArgs e)
{
var _Rectangle = sender as Windows.UI.Xaml.Shapes.Rectangle;
var _Transform = (_Rectangle.RenderTransform = (_Rectangle.RenderTransform as TranslateTransform) ?? new TranslateTransform()) as TranslateTransform;
_Transform.X += e.Delta.Translation.X;
_Transform.Y += e.Delta.Translation.Y;
}
private void Rectangle_ManipulationCompleted(object sender, ManipulationCompletedRoutedEventArgs e)
{
var _Rectangle = sender as Windows.UI.Xaml.Shapes.Rectangle;
_Rectangle.RenderTransform = null;
var _Column = System.Convert.ToInt16(_Rectangle.GetValue(Grid.ColumnProperty));
if (_Column <= 0 && e.Cumulative.Translation.X > _Rectangle.RenderSize.Width * .5)
_Rectangle.SetValue(Grid.ColumnProperty, 1);
else if (_Column == 1 && e.Cumulative.Translation.X < _Rectangle.RenderSize.Width * -.5)
_Rectangle.SetValue(Grid.ColumnProperty, 0);
var _Row = System.Convert.ToInt16(_Rectangle.GetValue(Grid.RowProperty));
if (_Row <= 0 && e.Cumulative.Translation.Y > _Rectangle.RenderSize.Height * .5)
_Rectangle.SetValue(Grid.RowProperty, 1);
else if (_Row == 1 && e.Cumulative.Translation.Y < _Rectangle.RenderSize.Height * -.5)
_Rectangle.SetValue(Grid.RowProperty, 0);
}
:
ただ、このコードを使用し
は、私は近いよ願っています! 運が良かった!
+0
Thxこの素晴らしいコードを投稿してください。それは私の仕事で私を助けました!しかし、私はこれがどのように動作しているのか、そしてメインページのコンストラクタで2つの操作モード(xとy)を使用しているのかどうか分かりません。コードをステップごとに説明できますか?大いに感謝する!実際に何が起こっているのか理解しようとしています。 :) –
+0
GridViewの外にドラッグアンドドロップすると素敵な部分。面白いのは、少なくともManipulationMode = "All"に設定しているときは、スライドしてリリースするときに動き続けることです –
関連する問題
- 1. VB6実装とイベント
- 2. Windows用のブーストミューテックスの実装
- 3. Windows 7のワイヤレスアドホックメッシュネットワークの実装
- 4. コード署名のWindows実装
- 5. Windows OpenGL実装のバグ?
- 6. Windows Scheme/Lispの実装
- 7. JavaでのWindowsグラフィックスの実装
- 8. MVC3でのWindowsサービスの実装
- 9. CakePHP 3コントローラのイベントの実装例
- 10. javascriptの内部:イベントの実装方法
- 11. GridViewイベントの実装 - 行の選択
- 12. 他のonkeypressイベントからJavascript実装のイベントonkeypress
- 13. Windowsパフォーマンスカウンターの実装の詳細
- 14. Windows用のMacスペースの実装
- 15. QWidgetでmouseEnterイベントとmouseLeaveイベントを実装する方法は?
- 16. Windows Mobile 6 J2SE規模のJVM実装
- 17. Windowsユニバーサルカスタムスプリットビューの問題を実装する
- 18. WindowsフォームでMVCを実装する
- 19. Windowsでスケジューラクラスを実装する
- 20. WindowsフォームアプリケーションでWordスペルチェックを実装する
- 21. Silverlightの弱いイベントの良い実装は何ですか?
- 22. DrupalフックはJavaでイベント処理の実装ですか?
- 23. Windowsサービスプログラムでのイベントのログ
- 24. GWT - FlexTableの行でClickHandlerイベントを実装する
- 25. イベントでダイナミック型のインターフェイスを実装する
- 26. WPF内のWPFコントロールでClickイベントを実装する
- 27. ASP.NETでWindowsサービスの種類のインフラストラクチャを実装する方法
- 28. PCLとWindows Phoneアプリケーションでの非同期スコープの実装
- 29. 非同期操作を実行するカスタムWindowsワークフローアクティビティの実装
- 30. ログメッセージ内のイベントIDの実装についての意見
グリッドに 'IsManipulationEnabled = true'を設定しましたか? –
グリッドへのそのようなプロパティは見つかりませんでした。私はプロパティを設定しますManipulationMode = "All" –
申し訳ありません - 私はWPFグリッドと混乱しています - あなたが言ったように、 'Windows.UI.Xaml.Controls.Grid'は' ManipulationMode'によって操作が有効になっています。 –