UWP窗口最小尺寸设置不生效,如何修改窗口最小尺寸?
解决UWP窗口最小尺寸无法修改的问题
核心原因
UWP平台本身存在默认的最小窗口尺寸限制,且SetPreferredMinSize如果在窗口未完全初始化时调用(比如MainPage构造函数阶段),大概率不会生效。另外,若你的UWP应用面向桌面端,还需确认是否启用了桌面扩展功能——未启用的话,窗口尺寸限制会更严格。
可行解决方案
1. 延迟到窗口加载完成后执行设置
把尺寸设置代码放到Loaded事件中,确保窗口已完成初始化:
public sealed partial class MainPage : Page { public MainPage() { this.InitializeComponent(); this.Loaded += MainPage_Loaded; } private void MainPage_Loaded(object sender, RoutedEventArgs e) { // 设置启动窗口尺寸 ApplicationView.PreferredLaunchViewSize = new Size(1000, 800); ApplicationView.PreferredLaunchWindowingMode = ApplicationViewWindowingMode.PreferredLaunchViewSize; // 设置最小尺寸,注意不能低于系统允许的下限 var appView = ApplicationView.GetForCurrentView(); // 先尝试调整到目标尺寸,再设置最小限制 if (appView.TryResizeView(new Size(700, 500))) { appView.SetPreferredMinSize(new Size(700, 500)); } } }
2. 启用桌面扩展(桌面端UWP专属)
如果是面向Windows 10/11桌面的UWP应用,需在Package.appxmanifest中启用桌面扩展:
- 可视化操作:打开
Package.appxmanifest,切换到功能选项卡,勾选桌面扩展 - 直接编辑XML:在
<Capabilities>节点下添加以下内容:
<Capability Name="runFullTrust" /> <Extension Category="windows.fullTrustProcess" Executable="你的可执行文件名.exe" />
启用后,桌面端UWP的窗口尺寸限制会大幅放宽,支持更小的窗口规格。
3. 遵守系统允许的最小尺寸范围
SetPreferredMinSize不能设置任意小的尺寸,系统有硬性下限:
- 普通UWP应用:最小宽度通常为500,高度320
- 启用桌面扩展后:最小宽度可低至192,高度48
若设置的尺寸低于系统下限,调用会被直接忽略,窗口将保持系统默认的最小尺寸。
内容的提问来源于stack exchange,提问作者ricky rocky
相关产品推荐
相关产品推荐

