C# 如何将画布上的鼠标位置转移到标尺上?
我有一个带有画布和标尺的WPF应用程序。现在我需要将Canvas OnMouseMove(MouseEventArgs e)传递给标尺,以反映标尺上的鼠标移动。这两个控件都是在初始化时独立创建的,它们彼此不知道。如何将鼠标在画布上的位置转移到标尺上?MouseEventArgs有一种方法,允许您将任何IIInputElement作为参数传递,并返回鼠标指针相对于指定元素的位置。将标尺作为参数值传递。我找到了解决方案,但仍有疑问。在我看来,这有点复杂:C# 如何将画布上的鼠标位置转移到标尺上?,c#,wpf,C#,Wpf,我有一个带有画布和标尺的WPF应用程序。现在我需要将Canvas OnMouseMove(MouseEventArgs e)传递给标尺,以反映标尺上的鼠标移动。这两个控件都是在初始化时独立创建的,它们彼此不知道。如何将鼠标在画布上的位置转移到标尺上?MouseEventArgs有一种方法,允许您将任何IIInputElement作为参数传递,并返回鼠标指针相对于指定元素的位置。将标尺作为参数值传递。我找到了解决方案,但仍有疑问。在我看来,这有点复杂: 作为“父”控件的画布包含以下代码: 公共点鼠
谢谢你的帮助,但是你忘了我的控件没有链接。
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);
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();
}