生成第二个窗口并改变窗口大小。

一般来说,改变一个windows app窗口大小有两种方法:

ApplicationView.PreferredLaunchViewSize = new Size(Width, Height); 
ApplicationView.PreferredLaunchWindowingMode = ApplicationViewWindowingMode.PreferredLaunchViewSize;

或者:

ApplicationView.GetForCurrentView().TryResizeView(new Size{Width = xxx, Height = xxx });

前者用于在APP启动时,修改APP窗口的大小,后者可以在APP运行时,改变窗口大小。


那么,当你在APP运行时生成第二个窗口时,应该用第二种方法。但是需要注意的是,这行代码放在在生成第二个窗口的代码,或者放在新窗口的Page的InitializeComponent()中时,都会同时改变第一个窗口的大小,比较好的做法是,将这段代码放在新Page的Loaded方法里。

默认窗口通过Button事件,生成第二个窗口:

private async void OnClick(object sender, RoutedEventArgs e)
        {
            var newCoreAppView = CoreApplication.CreateNewView();
            var appView = ApplicationView.GetForCurrentView();
            await newCoreAppView.Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Low, async () =>
            {
                var window = Window.Current;
                var newAppView = ApplicationView.GetForCurrentView();
               
                var frame = new Frame();
                window.Content = frame;
                
                frame.Navigate(typeof(BlankPage));            
                window.Activate();
                await ApplicationViewSwitcher.TryShowAsStandaloneAsync(newAppView.Id, ViewSizePreference.Default, appView.Id, ViewSizePreference.Default);

            });
        }

 
第二个窗口:
public BlankPage()
        {
            this.InitializeComponent();
            this.Loaded += Page_Loaded;
        }

        private void Page_Loaded(object sender, RoutedEventArgs e)
        {
            var s = ApplicationView.GetForCurrentView();
            s.TryResizeView(new Size { Width = 600, Height = 320 });
        }


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值