windows 8/WinRT
ürünündeki bir kılavuza DragStarted
DragDelta
olaylarını nasıl ekleyebilirim? Aynı şeyi Windows'ta GestureService.GetGestureListener()
yöntemiyle yaptım. Windows 8'de ManipulationStarted & ManipulationDelta olayları ile kodunu değiştirmeyi denedim. Ancak sonuç aynı değil. Windows telefonunda tek bir sürükleme için DragDelta olaylarına 2 veya daha fazla kez girer. Fakat diğer taraftan Windows 8'deki ManupulationDelta etkinliğinde, benzer Sürükle işlemi için sadece bir kez ateşlenir.Windows 8/WinRT Sürüklenen DragDelta olaylarının uygulanması
cevap
Evet, sanırım ne istediğini biliyorum.
<Grid Margin="50">
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>
<Rectangle Fill="Blue" x:Name="MyRect" />
</Grid>
Sen sürükleyerek Grid
etrafında bu dikdörtgeni taşımak istiyorum:
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);
}
:
Umut ben yakınım
Sadece bu kodu kullanın! Şansın en iyisi!
Thx. Görevimle çok yardımcı oldu! Ancak, bunun nasıl çalıştığını tam olarak anlayamıyorum ve neden ana sayfa yapıcısında iki manipülasyon modu (x ve y) yapıyorsunuz? Kodunuzu adım adım açıklayabilir misiniz? Çok teşekkür ederim! Gerçekten neler olduğunu anlamaya çalışıyorum. :) –
Güzel parça sürükle ve GridView dışında bırakın. Eğlenceli bölüm, en azından, ManipulationMode = "Tümü" ayarını yaptığınızda, kaydırma ve bırakma sırasında hareket etmeye devam etmesidir: D –
- 1. Arabirim olaylarının pratik kullanımı
- 2. onclick olaylarının sırası
- 3. Uygulanması
- 4. Uygulanması
- 5. Sınırsız sürüklenen WPF penceresi
- 6. WPF'de sürüklenen öğeyi nasıl gösteririm?
- 7. FindControl uygulanması
- 8. Uygulanması ToArgb()
- 9. uygulanması toString
- 10. jQuery olaylarının ana öğelere taşınmasını nasıl engellerim?
- 11. CDI olaylarının kalıtım ve listeleri nasıl kullanılır?
- 12. Google maps sürüklenen yol tariflerini kaydediyor
- 13. Google Maps'ten sürüklenen rota verisi alma
- 14. Bir Kakao uygulamasında sürüklenen dosyaları kabul etme
- 15. gVim'i sürüklenen dosyaları yeni bir sekmede açmak için zorlayabilir miyim?
- 16. Komut şablonunun uygulanması
- 17. Dış modüllerin uygulanması
- 18. PHP'de DAG'ın düzgün uygulanması?
- 19. Agrega monadındaki flatMap'in uygulanması
- 20. Paralel koordinatların uygulanması?
- 21. polimorfik operatörü [] uygulanması
- 22. istringstream yöntemi uygulanması
- 23. View.IOnTouchListener arabiriminin uygulanması
- 24. Quicksort'un uygulanması, Mergesort
- 25. Haskell Bell Numaralarının Uygulanması
- 26. Dairesel enum değerlerinin uygulanması
- 27. AngularJS yönergelerinde mirasın uygulanması
- 28. Küçük kabukta boruların uygulanması
- 29. combinatorics uygulanması ve bulgusu
- 30. html5 banner reklamının uygulanması
Kılavuzunuzda 'IsManipulationEnabled = true' ayarladınız mı? –
Izgara için böyle bir özellik bulamadım. ManipulationMode özelliğini ayarladım = "Tümü" –
Üzgünüm - WPF ızgarası ile karıştırıldım - '' Windows.UI.Xaml.Controls.Grid' '' ManipulationMode' tarafından ayarlanan manipülasyon var dediğiniz gibi. –