silverlight – 如何导航一个xaml页面到另一个?

前端之家收集整理的这篇文章主要介绍了silverlight – 如何导航一个xaml页面到另一个?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有2页我需要导航mainpage.xaml到login.page xaml,但它会抛出我
调用的对象是空的.在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页面进行更新.

原文链接:/silverlight/597219.html

猜你在找的Silverlight相关文章