Uygulamamda, bir kullanıcı bir Image
seçebilir ve onunla oynamak için bir Grid
ürününe sürükleyebilir. Bunu, Grid
'un PointerEntered
olayını ele alarak yapıyorum. Burada kullanıcının seçilen bir görüntüye sahip olup olmadığını ve kullanıcının fare düğmesini tutup tutmadığını tespit ederim. Image
kendi ManipulationStarted
, ManipulationDelta
ve ManipulationCompleted
olayları kullanır böyleceResim ManipulationMode yakalama işaretçisini göster
Şimdi, ızgarada Image
yerleştirin ve benim Image
için (hala basılı) pointer geçmek istiyorum. Bu, kullanıcının öğeyi serbest bırakmak ve üzerine tıklamak yerine görüntü listesinden tek bir hareketle Grid
'a sürüklemesine izin vermelidir.
ben PointerEntered
içinde sender
gelen işaretçi bırakmadan ve CapturePointer
kullanarak yakalayan denedi, ama bu bile CapturePointer
getiri true
olsa çalışmak görünmüyor. İşte
PointerEntered
olay için kullanmak kodudur:
Benim manipülasyon kod Bu yanıt ise
private void DrawingArea_OnPointerEntered(object sender, PointerRoutedEventArgs e)
{
// If we enter the grid while dragging and we have an image that was dragged
if (e.Pointer.IsInContact && CurrentDraggedImage != null)
{
DrawingArea.Children.Add(CurrentDraggedImage);
// Move it to the location we're currently at
var transform = (CurrentDraggedImage.RenderTransform as CompositeTransform);
transform.TranslateX += e.GetCurrentPoint(DrawingArea).RawPosition.X - DrawingArea.ActualWidth/2;
transform.TranslateY += e.GetCurrentPoint(DrawingArea).RawPosition.Y - DrawingArea.ActualHeight/2;
// This works (I think)
(sender as UIElement).ReleasePointerCaptures();
// This doesn't work (or it isn't what I need), but returns true
CurrentDraggedImage.CapturePointer(e.Pointer);
// Get ready for a new image
CurrentDraggedImage = null;
}
}
:
https://stackoverflow.com/a/32230733/1009013
Farklı bir yaklaşım düşündünüz mü - ListView'den yerleşik CanDragItems'i kullanın ve AllowDrop'u çizim alanınızda true olarak ayarlayın. –
@JustinXL Hayır, ama sanırım bu aynı yol haritasını veriyor ... Ben kontrol edip size geri döneceğim. – vrwim
@JustinXL yup, aynı sorun, işaretçiyi bir sürükle-bırak eyleminden diğerine taşıyamaz ... – vrwim