private async Task <TViewModel> HandleCreateWindow <TUserControl, TViewModel>(DXWindow window, bool isModal = false) where TUserControl : UserControl where TViewModel : IViewModel { var model = AppCore.Instance.ObjectProvider.GetInstance <TViewModel>(); await model.Initialize(); //injaect via DI model.Host = window; window.DataContext = null; window.DataContext = model; window.Closing += (sender, e) => { var win = (DXWindow)sender; var todispose = win.DataContext as IDisposable; todispose?.Dispose(); _windowsRegistry.Remove(win); }; window.Show(); window.Activate(); window.Topmost = true; window.Topmost = false; window.Focus(); _windowsRegistry.Add(window); return(model); }
void ShowWindow() { if (window != null) { window.Close(); } window = new DXWindow(); if (enableEffect.IsChecked.HasValue) { window.BorderEffect = enableEffect.IsChecked.Value ? BorderEffect.Default : BorderEffect.None; } if (enableCustomization.IsChecked.Value) { SetBorderEffectCustomColors(); } rootWindow = LayoutHelper.GetRoot(this) as Window; if (rootWindow != null) { window.SetBounds(GetWindowSuggestedRect(rootWindow.GetBounds())); window.Icon = rootWindow.Icon; rootWindow.Closed += rootWindow_Closed; window.Owner = rootWindow; } window.Title = "DXWindow"; window.Topmost = true; window.Show(); }
protected override void OnStartup(StartupEventArgs e) { base.OnStartup(e); MainWindow = new DXWindow() { Width = 525, Height = 350 }; MainWindow.Content = new MainPage(); MainWindow.Show(); }
protected override void OnStartup(StartupEventArgs e) { base.OnStartup(e); ApplicationThemeHelper.ApplicationThemeName = "Office2007Silver"; MainWindow = new DXWindow() { Title = "How to use the DevExpress components with MVVM pattern", Width = 525, Height = 350 }; MainWindow.Content = new MainPage(); MainWindow.DataContext = PersonsViewModelCreator.PersonsViewModel; MainWindow.Show(); }
public override bool initialize(ref string[] argv) { bool wasSetBusy = false; base.initialize(ref argv); if (!DXApplication.DXApplicationClassInitialized) { installDefaultResources(); DXApplicationClassInitialized = true; } if (resource.executiveModule == null) resource.executiveModule = "lib/dx.mdf"; if (resource.uiModule == null) resource.uiModule = "ui/ui.mdf"; if (resource.userModules == null) resource.userModules = Environment.GetEnvironmentVariable("DXMDF"); if (resource.macros == null) resource.macros = Environment.GetEnvironmentVariable("DXMACROS"); if (resource.server == null) resource.server = Environment.GetEnvironmentVariable("DXHOST"); if (resource.server == null) resource.server = "localhost"; if (resource.server.Contains(",")) { // Remove the port number if it exists (i.e DXHOST=slope,1920) resource.server = resource.server.Substring(0, resource.server.IndexOf(',')); } if (resource.netPath == null) resource.netPath = Environment.GetEnvironmentVariable("DXNETPATH"); if (resource.cryptKey == null) resource.cryptKey = Environment.GetEnvironmentVariable("DXCRYPTKEY"); // If the app does not allow editor access or we are starting up without // displaying the anchor window, force one of (image or menubar) mode. if ((InEditMode && !appAllowsEditorAccess()) || resource.noAnchorAtStartup) { if (InMenuBarMode) resource.anchorMode = MENUBAR_ANCHOR_MODE; else resource.anchorMode = IMAGE_ANCHOR_MODE; } // Echo the resources. if (resource.debugMode) { if (resource.port != 0) Console.WriteLine("port = {0}", resource.port); if (resource.memorySize != 0) Console.WriteLine("memory size = {0}", resource.memorySize); if (resource.server != null) Console.WriteLine("server = {0}", resource.server); if (resource.executive != null) Console.WriteLine("executive = {0}", resource.executive); if (resource.workingDirectory != null) Console.WriteLine("working directory = {0}", resource.workingDirectory); if (resource.netPath != null) Console.WriteLine("net path = {0}", resource.netPath); if (resource.program != null) Console.WriteLine("program = {0}", resource.program); if (resource.cfgfile != null) Console.WriteLine("cfgfile = {0}", resource.cfgfile); if (getUIRoot() != null) Console.WriteLine("root = {0}", getUIRoot()); if (resource.macros != null) Console.WriteLine("macros = {0}", resource.macros); if (resource.errorPath != null) Console.WriteLine("error path = {0}", resource.errorPath); if (resource.echoVersion) Console.WriteLine("echo version"); if (resource.anchorMode != null) Console.WriteLine("anchor mode = {0}", resource.anchorMode); if (resource.noAnchorAtStartup) Console.WriteLine("hiding anchor at startup"); if (resource.debugMode) Console.WriteLine("debug mode"); if (resource.runUIOnly) Console.WriteLine("run UI only"); if (resource.showHelpMessage) Console.WriteLine("show help message"); if (resource.userModules != null) Console.WriteLine("user mdf = {0}", resource.userModules); if (resource.executiveModule != null) Console.WriteLine("executive mdf = {0}", resource.executiveModule); if (resource.uiModule != null) Console.WriteLine("ui mdf = {0}", resource.uiModule); if (resource.suppressStartupWindows) Console.WriteLine("suppress startup windows"); if (resource.applicationPort != 0) Console.WriteLine("application port = {0}", resource.applicationPort); if (resource.applicationHost != null) Console.WriteLine("application host = {0}", resource.applicationHost); // // Image printing resources. // if (resource.printImageCommand != null) Console.WriteLine("print image command = '{0}'", resource.printImageCommand); if (resource.printImageFormat != null) Console.WriteLine("print image format = '{0}'", resource.printImageFormat); if (resource.printImagePageSize != null) Console.WriteLine("print image page size = '{0}'", resource.printImagePageSize); Console.WriteLine("print image resolution = {0}", resource.printImageResolution); // // Image saving resources. // if (resource.saveImageFormat != null) Console.WriteLine("save image format = '{0}'", resource.saveImageFormat); if (resource.saveImagePageSize != null) Console.WriteLine("save image page size = '{0}'", resource.saveImagePageSize); Console.WriteLine("save image resolution = {0}", resource.saveImageResolution); // // UI restrictions // if (resource.restrictionLevel != null) Console.WriteLine("restriction level {0}", resource.restrictionLevel); if (resource.noEditorAccess) Console.WriteLine("no editor access"); if (resource.limitedNetFileSelection) Console.WriteLine("limited network file selection"); if (resource.noImageRWNetFile) Console.WriteLine("no net file read/write"); if (resource.noImageSaving) Console.WriteLine("no image saving"); if (resource.noImagePrinting) Console.WriteLine("no image printing"); if (resource.noImageLoad) Console.WriteLine("no image load "); if (resource.limitImageOptions) Console.WriteLine("limit image options"); if (resource.noRWConfig) Console.WriteLine("no cfg save"); if (resource.noPanelEdit) Console.WriteLine("no panel edit"); if (resource.noInteractorEdits) Console.WriteLine("no interactor style"); if (resource.noInteractorAttributes) Console.WriteLine("no interactor attributes"); if (resource.noInteractorMovement) Console.WriteLine("no interactor movement"); if (resource.noOpenAllPanels) Console.WriteLine("no open all panels"); if (resource.noPanelAccess) Console.WriteLine("no panel access"); if (resource.noPanelOptions) Console.WriteLine("no panel options"); if (resource.noMessageInfoOption) Console.WriteLine("no message info option"); if (resource.noMessageWarningOption) Console.WriteLine("no message warning option"); if (resource.noDXHelp) Console.WriteLine("no DX help"); // // automatic graph layout // if (resource.autoLayoutHeight > 0) Console.WriteLine("automatic graph layout height = {0}", resource.autoLayoutHeight); if (resource.autoLayoutGroupSpacing > 0) Console.WriteLine("automatic graph layout group spacing = {0}", resource.autoLayoutGroupSpacing); if (resource.autoLayoutNodeSpacing > 0) Console.WriteLine("automatic graph layout node spacing = {0}", resource.autoLayoutNodeSpacing); } if (resource.echoVersion) { String vers = String.Format("{0} User Interface, version {1}.{2}.{3} ({4})", getFormalName(), global::WinDX.UI.Resources.MAJOR_VERSION, global::WinDX.UI.Resources.MINOR_VERSION, global::WinDX.UI.Resources.MICRO_VERSION, File.GetLastWriteTime(Application.ExecutablePath)); MessageBox.Show(vers, "Version"); Application.Exit(); } // Fix me! May need to turn off help here. // Validate and set automatic graph layout values if (resource.autoLayoutHeight > 0) { String errmsg = GraphLayout.SetHeightPerLevel(resource.autoLayoutHeight); if (errmsg != null) { MessageBox.Show(errmsg, "Startup Error"); return false; } } if (resource.autoLayoutGroupSpacing > 0) { String errmsg = GraphLayout.SetGroupSpacing(resource.autoLayoutGroupSpacing); if (errmsg != null) { MessageBox.Show(errmsg, "Startup Error"); return false; } } if (resource.autoLayoutNodeSpacing > 0) { String errmsg = GraphLayout.SetNodeSpacing(resource.autoLayoutNodeSpacing); if (errmsg != null) { MessageBox.Show(errmsg, "Startup Error"); return false; } } // Post the copyright message if the anchor window came up. if (!resource.noAnchorAtStartup) postCopyrightNotice(); // Validate the resources and options if (InEditMode && !appAllowsEditorAccess()) { MessageBox.Show("-edit and -noEditorAccess options are incompatible.", "Startup Error"); return false; } if (appAllowsImageRWNetFile() && appLimitsNetFileSelection() && resource.netPath == null) { MessageBox.Show("The \"limitedNetFileSelection\" or \"noImageRWNetFile\" " + "option requires\na directory pathname specified by " + "the \"DXNETPATH\" environment variable, \n" + "the -netPath command line option, or\n" + "the *netPath resource.", "Startup Error"); return false; } // Setup Server Information serverInfo.autoStart = (resource.port <= 0); serverInfo.server = resource.server; serverInfo.executive = resource.executive; serverInfo.workingDirectory = resource.workingDirectory; serverInfo.userModules = resource.userModules; serverInfo.port = (resource.port == 0 ? 1900 : resource.port); serverInfo.memorySize = resource.memorySize; serverInfo.executiveFlags = ""; serverInfo.children = new List<DXChild>(); serverInfo.queuedPackets = new List<DXPacketIF>(); if (argv != null) { foreach (String arg in argv) { serverInfo.executiveFlags += arg + " "; } } if (InDataViewerMode) { resource.executeOnChange = true; resource.noImageRWNetFile = true; resource.noRWConfig = true; resource.noImageLoad = true; resource.noDXHelp = true; resource.noPGroupAssignment = true; resource.limitImageOptions = true; resource.noScriptCommands = true; resource.noConnectionMenus = true; resource.noWindowsMenus = true; resource.anchorMode = IMAGE_ANCHOR_MODE; resource.noAnchorAtStartup = true; resource.suppressStartupWindows = true; resource.noConfirmedQuit = true; } // Create the first/root/anchor network and place it in the // network list. network = newNetwork(); if (appAllowsEditorAccess()) { // Initialize the ConfigurationDialog allocator for the editor CDBAllocatorDictionary.theCDBAllocatorDictionary = new CDBAllocatorDictionary(); // Initialize the StandIn allocator for the editor. SIAllocatorDictionary.theSIAllocatorDictionary = new SIAllocatorDictionary(); } // Move to the indicated directory if (serverInfo.workingDirectory != null) { try { Directory.SetCurrentDirectory(serverInfo.workingDirectory); } catch (Exception e) { MessageBox.Show(e.Message, "Unable to set Working Directory"); } } loadMDF(); loadIDF(); if (resource.userModules != null) loadUDF(resource.userModules, null, false); // Decorator Styles DecoratorStyle.BuildtheDecoratorStyleDictionary(); // load the initial set of user macros. MacroDefinition.LoadMacroDirectories(resource.macros); // Create the anchor window if (!InEditMode) { if (InImageMode) anchor = newImageWindow(network); else if (InMenuBarMode) anchor = new DXAnchorWindow("dxAnchor", true, true); else { MessageBox.Show("Unrecognized anchor mode.", "Startup Error"); Application.Exit(); } // Initialize the anchor window so it can handle reading in the network // before being managed. if (applyWindowPlacements() || resource.noAnchorAtStartup) { anchor.Show(); anchor.Visible = true; } else { anchor.Show(); anchor.Visible = true; setBusyCursor(true); wasSetBusy = true; } } else { anchor = newNetworkEditor(network); if (anchor == null) return false; anchor.Show(); setBusyCursor(true); wasSetBusy = true; } // Create the message and debug windows messageWindow = newMsgWin(); // If quested, read in the network. This is after opening the anchor // window because image nodes may wish to bind with the initial image // window, etc. if (resource.program != null) openFile(resource.program, resource.cfgfile); if (InDataViewerMode) { Node n = network.findNode("Import"); if (n == null) { ErrorDialog ed = new ErrorDialog(); ed.post("Can not find Import tool in viewing program."); } else { String s = resource.viewDataFile; Debug.Assert(s != null); n.setInputValue(1, s); } } if (resource.noAnchorAtStartup) { anchor.Show(); } else if (!anchor.Visible) { anchor.Show(); setBusyCursor(true); wasSetBusy = true; } if (!resource.runUIOnly) { // Connect to exec first DXChild c = startServer(); completeConnection(c); } // If there is an application to talk to, connect to it. if (resource.applicationPort != 0) connectToApplication(resource.applicationHost, resource.applicationPort); if (wasSetBusy) setBusyCursor(false); return true; }