我有2页我需要导航mainpage.xaml到login.page xaml,但它会抛出我
你调用的对象是空的.在Root.Children.Clear(); ….
你调用的对象是空的.在Root.Children.Clear(); ….
我将这段代码添加到App.xaml中:
private void Application_Startup(object sender,StartupEventArgs e) { Grid myGrid = new Grid(); myGrid.Children.Add(new MainPage()); this.RootVisual = myGrid; }
而不是在main.xaml上添加一些代码来导航到LoginUI.xaml
namespace Gen.CallCenter.UI { public partial class MainPage : UserControl { public MainPage() { InitializeComponent(); Grid Root = ((Grid)(this.Parent)); Root.Children.Clear(); Root.Children.Add(new LoginUI()); } } }
我如何将main.xaml导航到LoginUI.xaml?
解决方法
像
AnthonyWJones说你需要使用导航框架.
首先,您需要在您的项目中添加System.Windows.Controls.Navigation的引用,并在其中引用它MainPage.xaml
xmlns:navigation="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Navigation"
那么您将需要一个框架,您可以在其中切换不同的XAML页面.这样的事情
<navigation:Frame x:Name="navFrame" HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch" Source=”/Views/First.xaml” />
现在在MainPage.xaml的某个地方,你可以有一个带有标签的按钮
< Button Click =“Button_Click”Tag =“/ Views / Second.xaml”Content =“Second”/>
在Button_Click事件处理程序中,您可以切换navFrame中显示的内容.
private void Button_Click(object sender,RoutedEventArgs e) { Button theButton = sender as Button; string url = theButton.Tag.ToString(); this.navFrame.Navigate(new Uri(url,UriKind.Relative)); }
需要注意的是,通过使用NavigationFramework,浏览器后退按钮和前进按钮功能完美,地址栏中的URL会根据您当前使用的XAML页面进行更新.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。