/// <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; } }