0
我正在嘗試創建允許在畫布內移動項目的應用程序。在UWP中移動項目
這裏是XAML:
<Canvas Background="#4CAF50">
<Grid Background="#3F51B5"
Width="50"
Height="50"
CanDrag="True"
ManipulationMode="All"
ManipulationDelta="UIElement_OnManipulationDelta">
</Grid>
</Canvas>
C#:
private void UIElement_OnManipulationDelta(object sender, ManipulationDeltaRoutedEventArgs e)
{
var myEllipse = (Grid)sender;
Canvas.SetLeft(myEllipse, Canvas.GetLeft(myEllipse) + e.Delta.Translation.X);
Canvas.SetTop(myEllipse, Canvas.GetTop(myEllipse) + e.Delta.Translation.Y);
}
Everyting工作正常,當我慢慢移動網格。當我將它移動得太快時,鼠標光標將移出網格並停止移動。有沒有辦法讓光標停留在網格中間或任何能夠幫助我更快地完成操作的方法?
是否有一個需求意味着它需要在Canvas內完成?我工作的項目中有一個控件/組件叫做Winux,它叫做DraggableContentControl,它可能會讓你感興趣(https://github.com/jamesmcroft/WinUX-UWP-Toolkit/blob/develop/WinUX/WinUX.UWP.Xaml。 Controls/DraggableContentControl/DraggableContentControl.cs) 它使用CompositeTransform來執行翻譯操作,這可能是您可以查看的替代方法 –