在這兩年工作中的項目中越來越多的接觸WPF控件的開發工作,同樣也大量的用到了WPF的RoutedEvent事件,但每次需要編寫的時候,總要翻以前的代碼,所以在這里直接記錄下來,免得自己再查來查去了。。
public static readonly DependencyProperty PageIndexProperty = DependencyProperty.Register("PageIndex", typeof(int), typeof(MoonPdfPanel), new UIPropertyMetadata(1)); public int PageIndex { get {return (int)GetValue(PageIndexProperty);} set { SetValue(PageIndexProperty, value); } } public static readonly RoutedEvent PageIndexChangedEvent = EventManager.RegisterRoutedEvent("PageIndexChanged", RoutingStrategy.Bubble, typeof(RoutedPropertyChangedEventHandler<int>), typeof(MoonPdfPanel)); public event RoutedPropertyChangedEventHandler<int> PageIndexChanged { add { AddHandler(PageIndexChangedEvent, value); } remove { RemoveHandler(PageIndexChangedEvent, value); } } // 觸發事件,結尾一定要使用RaiseEvent(args)來觸發路由事件。 RoutedPropertyChangedEventArgs<int> args = new RoutedPropertyChangedEventArgs<int>( val, this.GetCurrentPageNumber(), PageIndexChangedEvent); this.RaiseEvent(args);