none
用户控件UserControl怎么导航到其他页 RRS feed

  • 问题

  • xaml页面里是用 this.Frame.Navigate(typeof(ItemDetailPage), itemId);

    那么用户控件里怎么跳转到其他页面?????

    2012年8月20日 11:55

答案

  • 几个方式,

    1, 你的用户控件添加一个属性直接可以引用到父页面的Frame属性。

    2, 通过可视树遍历向上找到父页面,然后调用其Frame:

            private void Button_Click_1(object sender, RoutedEventArgs e)
            {
                Page page = FindVisualParent<Page>(this);
                if (page !=null && page.Frame !=null)
                    page.Frame.Navigate(typeof());
            }
            public T FindVisualParent<T>(DependencyObject child) where T : DependencyObject
            {
                DependencyObject parentObject = VisualTreeHelper.GetParent(child);
                if (parentObject == null) return null;
                T parent = parentObject as T;
                if (parent != null)
                    return parent;
                else
                    return FindVisualParent<T>(parentObject);
            }

    3, 通过 Window.Current.Content 拿到当前窗体Frame
              Frame frame =  Window.Current.Content as Frame;
              if (frame!=null)
                 ...


    Bob Bao [MSFT]
    MSDN Community Support | Feedback to us

    2012年8月21日 10:16
    版主