2015-07-26 10 views
3

Согласно https://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.xaml.controls.splitview.paneclosed.aspx, для элемента управления SplitView событие PaneOpened отсутствует, только событие PaneClosed для существующего элемента управления SplitView.Событие SplitView.PaneClosed доступно, но не для PaneOpened

У меня есть элемент управления Button внутри панели SplitView, которая должна изменяться в зависимости от того, открыта ли панель или закрыта ли она. Таким образом, мой план заключается в том, что я поместил фрагмент кода, который изменит размер кнопки в расширении PaneOpened и вернет его к небольшому размеру в событии PaneClosed. Но, похоже, нет события PaneOpened.

Любой другой способ, которым я могу это достичь?

ответ

9

Благодаря новым RegisterPropertyChangedCallback в UWP теперь вы можете отслеживать изменения в сфере недвижимости любых DependencyProperty, включая собственные.

public SplitViewPage() 
{ 
    this.InitializeComponent(); 

    this.splitView.RegisterPropertyChangedCallback(SplitView.IsPaneOpenProperty, IsPaneOpenPropertyChanged); 
} 

private void IsPaneOpenPropertyChanged(DependencyObject sender, DependencyProperty dp) 
{ 
    // put your logic here 
}