WPF 画布:居中原点,坐标轴缩放(Y轴翻转),响应鼠标事件

3
在我写的一个简单的仅有代码的WPF应用程序中,我想要有一个自定义的Canvas
我在StackOverflow上找到了类似于这个问题的答案,但是没有找到完全符合我的问题,也没有简单地适应另一个答案来解决我的具体问题(请注意,我在WPF方面没有太多经验)。
在我的画布中,我希望它具有以下属性:
  1. 点(0,0)位于Canvas的中心;
  2. x轴向右;
  3. y轴指向上;
  4. 点(1,0)位于原点右侧约1英寸; 并且
  5. 在每个事件中,鼠标的位置坐标以上述定义的坐标系给出。
这个答案中,Ray Burns提出了一个非常简单的解决方案来解决我的前三个问题。很容易修改该代码以处理我的第四个问题(将RenderTransform中的1-1更改为其他常量)。
然而,这个非常简单和优秀的解决方案基于将宽度和高度设置为0,并将画布居中在其容器上。因此,没有画布可以捕获像点击这样的事件,所以这个解决方案不会处理我的第五个属性。
最简单的方法是什么?从Panel继承并手动完成所有操作?从Canvas继承,拦截每个事件并修改坐标?
1个回答

0
Canvas放置在Border内。 Border具有鼠标事件。另一种情况是将Border放置在Canvas的顶部。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接