예제 #1
0
        /// <summary>
        /// 页面跳转,之后的所有页面在此函数经行
        /// </summary>
        /// <param name="viewInfo"></param>
        private void Navigate(ViewInfo viewInfo)
        {
            MyUserControlBase view;


            if (Equals(viewInfo.Parameter, null))
            {
                var assemblyName = viewInfo.ViewName.ToDescription().Split(',');
                if (assemblyName.Length > 1)
                {
                    view =
                        System.Reflection.Assembly.Load(assemblyName[0])
                        .CreateInstance(assemblyName[1]) as MyUserControlBase;
                }
                else
                {
                    view =
                        System.Reflection.Assembly.Load(@"House.UserControls")
                        .CreateInstance(assemblyName[0]) as MyUserControlBase;
                }
            }
            else
            {
                var assemblyName = viewInfo.ViewName.ToDescription().Split(',');
                if (assemblyName.Length > 1)
                {
                    view =
                        System.Reflection.Assembly.Load(assemblyName[0])
                        .CreateInstance(assemblyName[1], true, System.Reflection.BindingFlags.Default,
                                        null, new[] { viewInfo.Parameter }, null, null) as MyUserControlBase;
                }
                else
                {
                    view =
                        System.Reflection.Assembly.Load(@"House.UserControls")
                        .CreateInstance(assemblyName[0], true, System.Reflection.BindingFlags.Default,
                                        null, new[] { viewInfo.Parameter }, null, null) as MyUserControlBase;
                }
            }

            if (view == null)
            {//未找到视图,抛出异常
                //throw new Exception(viewInfo.ViewName.ToString());
                this.RootPanel.Content = "视图加载失败请联系客服";
            }

            if ((view as MainMenu.Views.MainMenuView2) != null)
            {
                this.restoreBtn.Visibility = Visibility;
            }
            else
            {
                this.restoreBtn.Visibility = Visibility.Collapsed;
            }

            switch (viewInfo.ViewType)
            {
            case ViewType.Popup:    //模式对话框
                MahApps.Metro.Controls.MetroWindow popupWindows = new MahApps.Metro.Controls.MetroWindow();
                popupWindows.WindowStartupLocation = WindowStartupLocation.CenterOwner;
                popupWindows.Style     = FindResource(@"CleanWindowStyleKey") as Style;
                popupWindows.GlowBrush = FindResource(@"AccentColorBrush") as System.Windows.Media.Brush;
                //变更语言时,动态更新对话框Title,Title取决于控件的Tag
                popupWindows.SetBinding(MahApps.Metro.Controls.MetroWindow.TitleProperty, new Binding(@"Tag")
                {
                    Source = view
                });
                popupWindows.SetBinding(MahApps.Metro.Controls.MetroWindow.WidthProperty, new Binding(@"Width")
                {
                    Source = view
                });
                popupWindows.SetBinding(MahApps.Metro.Controls.MetroWindow.HeightProperty, new Binding(@"Height")
                {
                    Source = view
                });
                popupWindows.Owner                = Application.Current.MainWindow;
                popupWindows.ResizeMode           = ResizeMode.NoResize;
                popupWindows.IsCloseButtonEnabled = false;
                popupWindows.ShowCloseButton      = false;
                //popupWindows.Icon = new BitmapImage(new Uri("pack://*****:*****@"AccentColorBrush") as System.Windows.Media.Brush;
                //变更语言时,动态更新对话框Title,Title取决于控件的Tag
                singleWindows.SetBinding(MahApps.Metro.Controls.MetroWindow.TitleProperty, new Binding(@"Tag")
                {
                    Source = view
                });
                singleWindows.SetBinding(MahApps.Metro.Controls.MetroWindow.WidthProperty, new Binding(@"Width")
                {
                    Source = view
                });
                singleWindows.SetBinding(MahApps.Metro.Controls.MetroWindow.HeightProperty, new Binding(@"Height")
                {
                    Source = view
                });
                singleWindows.Content    = view;
                singleWindows.ResizeMode = ResizeMode.NoResize;
                //singleWindows.ShowIconOnTitleBar = true;
                singleWindows.Icon = new BitmapImage(new Uri("pack://application:,,,/House.Thems;component/Images/Logo.ico", UriKind.Absolute));
                //singleWindows.Icon = Utility.Windows.ResourceHelper.FindResource("pack://application:,,,/SuperSoft.Resource.Default;component/Images/Logo_White.png");
                //singleWindows.IsCloseButtonEnabled = true;
                //singleWindows.ShowCloseButton = true;
                //singleWindows.Owner = Application.Current.MainWindow;
                singleWindows.Topmost = true;
                singleWindows.Show();
                singleWindows.Focus();
                break;
            }
        }