silverlight   发布时间:2022-05-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了silverlight – 如何导航一个xaml页面到另一个?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

我有2页我需要导航mainpage.xaml到login.page xaml,但它会抛出我 你调用的对象是空的.在Root.Children.Clear(); …. 我将这段代码添加到App.xaml中: private void Application_Startup(object sender, StartupEventArgs E) { Grid my
我有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 – 如何导航一个xaml页面到另一个?全部内容,希望文章能够帮你解决silverlight – 如何导航一个xaml页面到另一个?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。