UWP 앱을 개발 중입니다. 루트 프레임 탐색에 문제가 있습니다. 메인 페이지에 프레임이 있으며이 프레임으로 모든 페이지를 탐색합니다. dashboard.xaml, orders.xaml .... 등. 내 orders.xaml 다른 프레임이 있습니다. 해당 프레임에서 취소 버튼을 누르면 3 개의 양식 (취소 버튼이있는 xaml 페이지)으로 이동합니다. 해당 페이지에서 취소 버튼을 누르면 , 내 주문 페이지로 돌아갈 필요가 있습니다 ... 그래서 내 Orders.xaml을 탐색하기 위해 메인 페이지 프레임을 가져 오는 데 문제가 있습니다. 제발 도와주세요. 사전하위 페이지 프레임에서 기본 페이지 프레임까지의 UWP 탐색
답변
은 당신이 원하는 것을 달성하기 위해 여러 가지 방법이 있습니다. 예를 들어 Frame
을 노출하는 public static 속성을 Mainpage
에 정의 할 수 있습니다.
public sealed partial class MainPage : Page
{
public static Frame MainPageFrame;
public MainPage()
{
this.InitializeComponent();
//Frame1 is the name of the Frame in XAML
MainPageFrame = Frame1;
}
...
}
그리고 주문 세부 정보 페이지에 탐색이 속성을 사용합니다.
MainPage.MainPageFrame?.Navigate(typeof(Orders));
아니면 VisualTreeHelper을 활용하고 같은 부모 Frame
즉, "프레임 1"얻을 수 있습니다 :
//this.Frame gets the Frame holds the order details page (i.e "Frame2")
FindParent<Frame>(this.Frame)?.Navigate(typeof(Orders));
가 여기 FindParent
방법은 도움말 방법은 다음과 VisualTreeHelper.GetParent
방법을 사용합니다
public static T FindParent<T>(DependencyObject dependencyObject) where T : DependencyObject
{
var parentObject = VisualTreeHelper.GetParent(dependencyObject);
if (parentObject == null) return null;
var parent = parentObject as T;
return parent ?? FindParent<T>(parentObject);
}
정말 많은 Jay에게 감사드립니다 ... 작동 VIsualTreeHelper 메소드 사용 – Murali
감사이 그것을 수행해야합니다
Frame.Navigate(typeof(orders));
답변 해 주셔서 감사합니다. 위 내용을 시도 할 때 주문 페이지를 틀린 프레임 (메인 페이지 프레임이 아님)로 이동합니다. 메인 페이지 -> 프레임 1 -> Orders.xaml -> createOrder (버튼) -> 클릭 -> 탭이있는 xaml 페이지 및 각 탭의 Frame2 -> 페이지 (양식)를 탐색하여 주문합니다. 사용자로부터의 세부 사항, 각 폼 취소, 취소를 클릭하십시오. 주문 페이지 (즉, Mainpage.xaml Frame1)로 이동해야합니다. – Murali
디자인을 다시 생각해 봐야합니다. 세 가지 수준의 탐색은 사용자 친화적 인 측면에서 너무 복잡합니다. 사용자 정의 컨트롤을 교체하십시오. – Bart