如何在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中声明在哪里?感谢

如何在silverlight中通过依赖属性实现点击事件

您可以在自定义控件上公开一个公共事件,该事件映射到按钮的单击事件。

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!");
    }

它如预期的那样工作!!:)希望它能帮助任何需要它的人。