【发布时间】:2014-08-18 04:02:44
【问题描述】:
我正在做一个允许用户绘制东西并将其保存在数据库中的项目。
基本上,用户在画布上绘制,画布比屏幕尺寸大 5 倍,而画布仍然在屏幕的中心(或者屏幕在画布的中心)。
为了让画布大小灵活(我们以后想改变画布的大小),我们要设置画布的中心为原点,即(0, 0)位于画布的中心。所以当鼠标点击某处时,我得到的点是根据画布的中心来测量的。
也许你会说:
-
Canvas.RenderTransformOrigin = (.5,.5)。但我不是问旋转中心,所以这不是解决方案。 -
Canvas.RenderTransform = TranslateTransform (Canvas.Width/2.0, Canvas.Height/2.0)。但这只是将画布上的所有对象移动到中心。
您也可能会说,我们为什么不直接平移偏移量为Canvas.Width/2.0, Canvas.Height/2.0 的MouseClick 点,然后在渲染时将它们平移回来。我们可以这样做,但是太费力了,因为我们还有很多其他的操作要实现,所以每次都要来回翻译。
【问题讨论】:
标签: silverlight canvas coordinates