我有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