如何在silverlight中通过依赖属性实现点击事件
本文关键字:实现 属性 事件 依赖 silverlight | 更新日期: 2023-09-27 18:20:07
我对Silverlight的世界还很陌生,所以请耐心等待。我已经创建了一个要显示在透视控件中的自定义透视项控件。现在在这个自定义控件中有一个按钮。现在,我可以将click事件处理程序添加到自定义控件的backing cs文件中的按钮中,这样就可以了。但是,在声明自定义控件期间,有没有办法指定自定义控件按钮的事件处理程序?即我的pivot_page.xaml 中的类似内容
<custom:myPivotItem background="..." height=".." width=".." click="myHandler"/>
myHandler在pivot_page.cs中声明在哪里?感谢
您可以在自定义控件上公开一个公共事件,该事件映射到按钮的单击事件。
public event RoutedEventHandler Click
{
add { this.button.Click += value; }
remove { this.button.Click -= value; }
}
通过在自定义控件cs文件(myCustomPivotItem.cs)中声明RoutedEventHandler来解决此问题。
public event RoutedEventHandler Click;
然后在onApplyTemplate中,我可以使用访问矩形对象
Rectangle rect = this.GetTemplateChild("rectObject") as Rectangle;
rect.Tap += new EventHandler<GestureEventArgs>(RectView_Tap);
然后,我在同一个cs文件(myCustomPivotItem.cs)中声明了RectView_Tap
private void RectView_Tap(object sender, GestureEventArgs e)
{
if (Click != null)
Click(this, new RoutedEventArgs());
}
在我的MainPage.xaml中,我像这样声明了自定义控件
<controls:PivotItem x:Name="pivotitem2">
<view:myCustomePivotItem x:Name="custompivotItem2" Click="myHandler"/>
</controls:PivotItem>
在MainPage.cs中,我声明了myHandler。。。
void myHandler(object sender, RoutedEventArgs e)
{
//delegate operation
MessageBox.Show("Clicked!");
}
它如预期的那样工作!!:)希望它能帮助任何需要它的人。