none
求方法,有一个login界面和一个login之后显示的main界面都是window类不是usercontrol RRS feed

  • 问题

  • 有啥方法让点击login登陆后整个页面跳转显示到main界面呢?能否平滑过渡?就是不用open那种,本来想用this.content=。。。但是这样好像只能是usercontrol的控件可以这样用,如果是window的就不行,login和window又是很独立的不好放到usercontrol下面,该怎么办?
    2011年9月29日 3:25

答案

  • 在主界面的App中添加以下代码:
        public partial class App : Application
        {
            /// <summary>
            ///
            /// </summary>
            public class EntryPoint
            {
                /// <summary>
                ///
                /// </summary>
                /// <param name="args"></param>
                [STAThread]
                public static void Main(string[] args)
                {
                    try
                    {
                        RunApplication app = new RunApplication();
                        app.Run();
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.ToString());
                    }
                }
            }
        }

        /// <summary>
        ///
        /// </summary>
        public class RunApplication : Application
        {
            /// <summary>
            ///
            /// </summary>
            /// <param name="e"></param>
            protected override void OnStartup(StartupEventArgs e)
            {
                base.OnStartup(e);

                LoginDialog dlg = new LoginDialog(new MainWindow ());//登录界面启动,将主界面传到登录界面
                dlg.Show();
            }

            /// <summary>
            ///
            /// </summary>
            /// <param name="e"></param>
            protected override void OnExit(ExitEventArgs e)
            {
                base.OnExit(e);
            }
        }


    =====================================

    登录界面的确定按钮里

     //主界面显示

    //登录界面关闭



    2011年9月29日 6:03
  • 你的需求是能够平滑从登陆界面过度到主界面吗? 我常用的方法是窗体套FRAME的方式,切换页面时可以加入一些平滑的动画效果(http://fluidkit.codeplex.com/)。 而承载的窗体我会采用完全透明的Window承载。Window的大小并不是不变的他可以根据需求随时改成能容纳当前页面大小的窗体大小。当然你也可以设置为定值,这样就要做多套承载窗体,如果你注意到有些WPF软件当我们用鼠标拖拽这个窗体时,最外面的虚框大小与拖拽的窗体的大小相差甚远,就是因为把承载窗体设置为了定值的原因。
    2011年9月29日 15:53

全部回复

  • 在主界面的App中添加以下代码:
        public partial class App : Application
        {
            /// <summary>
            ///
            /// </summary>
            public class EntryPoint
            {
                /// <summary>
                ///
                /// </summary>
                /// <param name="args"></param>
                [STAThread]
                public static void Main(string[] args)
                {
                    try
                    {
                        RunApplication app = new RunApplication();
                        app.Run();
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.ToString());
                    }
                }
            }
        }

        /// <summary>
        ///
        /// </summary>
        public class RunApplication : Application
        {
            /// <summary>
            ///
            /// </summary>
            /// <param name="e"></param>
            protected override void OnStartup(StartupEventArgs e)
            {
                base.OnStartup(e);

                LoginDialog dlg = new LoginDialog(new MainWindow ());//登录界面启动,将主界面传到登录界面
                dlg.Show();
            }

            /// <summary>
            ///
            /// </summary>
            /// <param name="e"></param>
            protected override void OnExit(ExitEventArgs e)
            {
                base.OnExit(e);
            }
        }


    =====================================

    登录界面的确定按钮里

     //主界面显示

    //登录界面关闭



    2011年9月29日 6:03
  • LoginDialog dlg = new LoginDialog(new MainWindow ());//登录界面启动,将主界面传到登录界面
                dlg.Show();
    2011年9月29日 6:07
  • 你的需求是能够平滑从登陆界面过度到主界面吗? 我常用的方法是窗体套FRAME的方式,切换页面时可以加入一些平滑的动画效果(http://fluidkit.codeplex.com/)。 而承载的窗体我会采用完全透明的Window承载。Window的大小并不是不变的他可以根据需求随时改成能容纳当前页面大小的窗体大小。当然你也可以设置为定值,这样就要做多套承载窗体,如果你注意到有些WPF软件当我们用鼠标拖拽这个窗体时,最外面的虚框大小与拖拽的窗体的大小相差甚远,就是因为把承载窗体设置为了定值的原因。
    2011年9月29日 15:53
  • 有啥方法让点击login登陆后整个页面跳转显示到main界面呢?能否平滑过渡?就是不用open那种,本来想用this.content=。。。但是这样好像只能是usercontrol的控件可以这样用,如果是window的就不行,login和window又是很独立的不好放到usercontrol下面,该怎么办?


    对于平滑过渡,我有个建议,可以考虑通过动画设置当前窗体慢慢变透明,然后关闭;之后的窗体Show 然后从透明慢慢变不透明。

    还有上面他们的建议都不错,你都可以试下。


    Bob Bao [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    2011年9月29日 18:41
    版主