我有WPF应用程序与画布和尺子。现在我需要将Canvas OnMouseMove(MouseEventArgs e)传递给标尺,以反映其规模上的鼠标移动。两个控件在初始化时独立创建,它们彼此不知道。如何将画布上的鼠标位置转移到标尺?如何将画布上的鼠标位置转移到标尺?
0
A
回答
0
MouseEventArgs有一个GetPosition方法,它允许您传递任何IInputElement作为参数,并返回鼠标指针相对于指定元素的位置。将您的标尺作为参数值传递。
0
我找到了解决方案,但我仍然有疑问。在我看来有点复杂:
帆布为 “父” 控件包含这段代码:
公共点MousePosition { 得到{(点)的GetValue(MousePositionProperty); } {SetValue(MousePositionProperty,value);} set {SetValue(MousePositionProperty,value); }}
public static readonly DependencyProperty MousePositionProperty = DependencyProperty.Register("MousePosition", typeof(Point), typeof(DesignerCanvas), new UIPropertyMetadata(point)); protected override void OnMouseMove(MouseEventArgs e) { base.OnMouseMove(e); MousePosition = e.GetPosition(this);
}
标尺包含以下代码:
公共点位置 { 得到{(点)的GetValue(PositionProperty); } {SetValue(PositionProperty,value);} set {SetValue(PositionProperty,value); }}
public static readonly DependencyProperty PositionProperty = DependencyProperty.Register("Position", typeof(Point), typeof(HorizontalRuler), new UIPropertyMetadata(defaultMousePoint, new PropertyChangedCallback(PositionPropertyChangedCallback))); private static void PositionPropertyChangedCallback(DependencyObject sender, DependencyPropertyChangedEventArgs e) { HorizontalRuler horizontalRuler = (HorizontalRuler)sender; horizontalRuler.InvalidateVisual(); }
相关问题
- 1. 将画布缩放到鼠标位置
- 2. 鼠标在画布上的位置
- 3. 在WPF/C上的旋转画布上获取鼠标位置#
- 4. 拖动鼠标时将光标移到HTML5画布上
- 5. 鼠标点击我的画布上,鼠标悬停在画布的一部分,鼠标移出画布
- 6. 在画布内获取鼠标位置
- 7. 如何在转换后的HTML5画布上获取鼠标位置
- 8. 将Sprite旋转到鼠标位置
- 9. KineticJS将鼠标移到画布上删除
- 10. 移动后在画布中获取鼠标位置
- 11. 如何在鼠标移动时更改画布小孩的位置?
- 12. 确定缩放后HTML5画布上的鼠标位置
- 13. 获取在画布上鼠标的位置与透明背景
- 14. 轨迹鼠标在画布上打孔的位置HTML5
- 15. 在HTML5画布上保存鼠标的位置和时间ipad
- 16. 调整画布大小后,在画布上获取鼠标位置的颜色
- 17. 如何将鼠标从SFML位置转换为OpenGL坐标?
- 18. 如何在鼠标移动时在画布上绘制弧?
- 19. 使用Javascript在画布上收集鼠标位置
- 20. 在matplotlib画布上检测相对鼠标位置
- 21. 画布上滚动更改签名鼠标绘制位置
- 22. HTML5画布鼠标坐标
- 23. HTML5画布鼠标
- 24. iframe上的鼠标位置
- 25. 将鼠标转换为屏幕位置
- 26. 在鼠标上停止画布动画
- 27. 如何使用HTML5画布让精灵旋转以面对鼠标位置?
- 28. 如何使用鼠标点击在画布上旋转文本?
- 29. 使用鼠标移动画布形状
- 30. HTML画布平移通过鼠标
感谢您的帮助,但你忘了我的控制没有联系。 – user1135594