基于导航路径的 UWP 视图布局
UWP View Layout based on Navigation Path
我有一个页面,可以在两个单独的视图中通过按钮访问。我的问题是,当我从第一个视图导航到页面时,我想将该页面内的按钮的可见性设置为折叠。当我从另一个视图导航到该页面时,我需要将该特定按钮设置为可见。
我非常想知道是否有办法从特定视图外部设置视图中按钮的可见性 属性?
Navigate
method allows you to pass a parameter to be interpreted by the target of the navigation. Details for how to do please reference Pass information between pages.
你可以通过Navigate
方法传递Visibility
属性,然后在页面中用OnNavigateTo
方法接收,然后你可以设置这个属性到此页面内的按钮。例如:
//When navigate
private void btnnavigate_Click(object sender, RoutedEventArgs e)
{
this.Frame.Navigate(typeof(testpage), "Collapsed");
}
在页面上:
protected override void OnNavigatedTo(NavigationEventArgs e)
{
if (e.Parameter is string && !string.IsNullOrWhiteSpace((string)e.Parameter))
{
var visibleproperty = e.Parameter as string;
if(visibleproperty=="Collapsed")
{
btnnavigate.Visibility = Visibility.Collapsed;
}
else
{
btn.Visibility = Visibility.Visible;
}
}
else
{
btn.Visibility = Visibility.Visible;
}
base.OnNavigatedTo(e);
}
我有一个页面,可以在两个单独的视图中通过按钮访问。我的问题是,当我从第一个视图导航到页面时,我想将该页面内的按钮的可见性设置为折叠。当我从另一个视图导航到该页面时,我需要将该特定按钮设置为可见。
我非常想知道是否有办法从特定视图外部设置视图中按钮的可见性 属性?
Navigate
method allows you to pass a parameter to be interpreted by the target of the navigation. Details for how to do please reference Pass information between pages.
你可以通过Navigate
方法传递Visibility
属性,然后在页面中用OnNavigateTo
方法接收,然后你可以设置这个属性到此页面内的按钮。例如:
//When navigate
private void btnnavigate_Click(object sender, RoutedEventArgs e)
{
this.Frame.Navigate(typeof(testpage), "Collapsed");
}
在页面上:
protected override void OnNavigatedTo(NavigationEventArgs e)
{
if (e.Parameter is string && !string.IsNullOrWhiteSpace((string)e.Parameter))
{
var visibleproperty = e.Parameter as string;
if(visibleproperty=="Collapsed")
{
btnnavigate.Visibility = Visibility.Collapsed;
}
else
{
btn.Visibility = Visibility.Visible;
}
}
else
{
btn.Visibility = Visibility.Visible;
}
base.OnNavigatedTo(e);
}