2012-10-07 6 views

답변

0

MouseEventArgs에는 매개 변수로 IInputElement를 전달할 수있는 GetPosition 개의 메소가 있으며 지정된 요소를 기준으로 마우스 포인터의 위치를 ​​반환합니다. Ruler를 매개 변수 값으로 전달하십시오.

+0

} }이 도움을 주셔서 감사합니다,하지만 당신은 내 컨트롤이 연결되지 않은 것을 잊어 버렸습니다. – user1135594

0

해결책을 찾았지만 여전히 의문이 있습니다.

는 "부모"로
  1. 캔버스 제어 코드의이 작품이 포함되어 : 그것은 복잡 조금 날 것으로 보인다

    공공 포인트 MousePosition { GET {리턴 (포인트) GetValue (MousePositionProperty를); } 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); 
    

    은}

  2. 눈금자는 다음과 같은 코드가 포함

    공공 포인트 위치 { GET {리턴 (포인트) GetValue (PositionProperty를); } 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(); 
    } 
    
관련 문제