0

我正在尝试使用 ManipulationDelta 在画布上移动形状。它有效,但我在将它们保留在我的画布上并通过扩展显示在屏幕上时遇到了问题。我试图以某种方式确定画布的边界以及它的 X、Y 是否仍在画布上。例如,当 Ellipse 小于 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;

    }

问题是屏幕的分辨率不同,我无法确定边界。这是正确的方法还是有更好的方法允许用户拖动项目但将它们保持在定义的区域内?

感谢你给与我的帮助!

4

1 回答 1

0

如果 Canvas 与屏幕(又名 Window)大小相同,则可以检查 Window.Current.Bounds 以了解 Window 的大小。

于 2013-08-17T20:56:48.110 回答