2014-09-13 46 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; 
     } 
相关问题