C# 自定义位置更改事件
我需要一个接收控件(例如图像控件)位置/位置的事件,该控件随动画一起移动 所以我找到了一些我需要的代码,但我不知道该把代码放在哪里 我应该把它放在某个事件中,例如windows加载事件还是什么?我错过了什么 C: VB.NET: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
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