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来执行翻译操作,这可能是您可以查看的替代方法 –