我正在尝试使用ManipulationDelta在画布上移动形状。它有效,但我有一个问题,将它们保存在我的画布上,并通过屏幕上的扩展。我试图以某种方式确定我的画布的边界以及它的X,Y是否仍在画布上。例如,当小于0时,我可以通过将Y设置为0来防止Ellipse被拖离顶部。
void Shape1_ManipulationDelta(object sender, ManipulationDeltaRoutedEventArgs e)
{
Ellipse shape = sender as Ellipse;
TranslateTransform tt = shape.RenderTransform as TranslateTransform;
tt.X += e.Delta.Translation.X;
tt.Y += e.Delta.Translation.Y;
if (tt.Y < 0)
tt.Y = 0;
}
问题是屏幕的分辨率不同,我无法确定边界。这种方法是正确的,还是有更好的方法允许用户拖动项目但是将它们保留在定义的区域内?
感谢你们给我的任何帮助!
答案 0 :(得分:0)
如果Canvas与屏幕(又称Window)的大小相同,那么您可以检查Window.Current.Bounds是否为Window的大小。