2011-12-06 3 views
0

私は、アニメーションと共に動くImageコントロールなど、コントロールの位置/位置を受け取るイベントが必要です。カスタムPositionChangedイベント

私は必要とするコードをthis postから見つけましたが、コードをどこに置くかわかりません。

ウィンドウにイベントまたは何がロードされましたか?私は何が欠けていますか?

C#:

var topDescriptor = DependencyPropertyDescriptor.FromProperty(Canvas.TopProperty, typeof(Rectangle)); 
var leftDescriptor = DependencyPropertyDescriptor.FromProperty(Canvas.LeftProperty, typeof(Rectangle)); 

topDescriptor.AddValueChanged(rectangle, rectangle_PositionChanged); 
leftDescriptor.AddValueChanged(rectangle, rectangle_PositionChanged); 


//I know where this part goes 
    private void rectangle_PositionChanged(object sender, EventArgs e) 
    {  
    ... 
    } 

VB.NET:

Dim topDescriptor = DependencyPropertyDescriptor.FromProperty(Canvas.TopProperty, GetType(Rectangle)) 
    Dim leftDescriptor = DependencyPropertyDescriptor.FromProperty(Canvas.LeftProperty, GetType(Rectangle)) 

    topDescriptor.AddValueChanged(rectangle, rectangle_PositionChanged) 
    leftDescriptor.AddValueChanged(rectangle, rectangle_PositionChanged) 

//I know where this part goes 
    Private Sub rectangle_PositionChanged(sender As Object, e As EventArgs) 
     ... 
    End Sub 

おかげで、VenoMDee。

答えて

0

はい、このコードは、イベントハンドラがフォームが表示される前に接続されるように、ウィンドウロードイベントに挿入する必要があります。

+0

問題は1つだけです...アプリケーションを実行しようとすると、引数がprivateサブrectangle_PositionChanged(EventArgsとして送信者としてeのパラメータ 'e'に指定されていません)と表示されます。私は何を間違えたのですか? –

+0

問題は、Canvas.TopとCanvas.LeftはRectangleではなくSystem.Double型であるため、元のコードの仕組みがわかりません。 –

関連する問題