2014-09-13 88 views
1

我有一個登錄屏幕由幾個用戶屏幕(客戶總之,爲了詳細地說,等)的登錄屏幕比其它屏幕小的WPF /棱鏡/ MVVM應用。如何獲取窗口調整大小時,我從登錄屏幕切換到下一個畫面?調整大小的窗口時視圖改變

+0

出於好奇,爲什麼不爲[使用單獨的Windows(HTTP:/ /stackoverflow.com/a/12861797/302677),或具有集中在其登錄有標準尺寸的窗戶? – Rachel 2014-09-24 15:58:47

回答

0

我有同樣的需求,不知道我所做的是「正確的」,但它的工作原理。我最終做的是創建一個'ShellWindowService'。那麼這項服務註冊(我用的統一),並曝光了ChangeWindowSize功能。

然後基本上,我既可以從DI或擊中的ServiceLocator現在

ServiceLocator.Current.GetInstance<Common.Services.ShellWindowService>(); 

訪問該服務,我可以使用這項服務,通過簡單地使用shell窗口的大小從任何地方更改應用程序ShellWindowService。

0

我曾經OnNavigatedTo通過INavigationAware暴露攔截導航和更改主窗口的大小,這樣的代碼看起來像:

public void OnNavigatedTo(NavigationContext navigationContext) 
     { 

      var activeView = navigationContext.NavigationService.Region.ActiveViews.First() as UserControl; 
      var window = Window.GetWindow(activeView); 
      window.Width = activeView.Width; 
      window.Height = activeView.Height; 
     } 
相關問題