Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 自定义位置更改事件_C#_Wpf_Vb.net_Events - Fatal编程技术网

C# 自定义位置更改事件

C# 自定义位置更改事件,c#,wpf,vb.net,events,C#,Wpf,Vb.net,Events,我需要一个接收控件(例如图像控件)位置/位置的事件,该控件随动画一起移动 所以我找到了一些我需要的代码,但我不知道该把代码放在哪里 我应该把它放在某个事件中,例如windows加载事件还是什么?我错过了什么 C: VB.NET: Dim topDescriptor = DependencyPropertyDescriptor.FromProperty(Canvas.TopProperty, GetType(Rectangle)) Dim leftDescriptor = Depe

我需要一个接收控件(例如图像控件)位置/位置的事件,该控件随动画一起移动

所以我找到了一些我需要的代码,但我不知道该把代码放在哪里

我应该把它放在某个事件中,例如windows加载事件还是什么?我错过了什么

C:

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。

是的,我认为这段代码应该放在窗口加载事件中,以便在显示表单之前连接事件处理程序。

只有一个问题。。。当我尝试运行该应用程序时,它会说没有为私有子矩形的参数“e”指定参数“e”作为对象,e作为事件参数。我做错了什么?问题是Canvas.Top和Canvas.Left的类型是System.Double,而不是矩形,所以我不确定原始代码是如何工作的。
    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