如何为MAUI Windows应用设置窗口最小尺寸(1080×700)并允许放大
在MAUI Windows应用中设置窗口最小尺寸(允许放大,禁止缩小至阈值以下)
要实现锁定窗口最小尺寸(宽1080、高700)同时允许放大的需求,你需要通过OverlappedPresenter的MinWidth和MinHeight属性来设置,而不是仅在启动时调整窗口大小。你的现有代码只是确保启动时窗口不小于指定尺寸,但无法阻止用户手动拖动缩小窗口,因此需要添加最小尺寸限制逻辑。
以下是完整实现代码:
#if WINDOWS using Microsoft.UI.Windowing; using WinRT.Interop; // 可在窗口的HandlerChanged事件或应用启动逻辑中执行这段代码 var mauiWindow = handler.VirtualView; var nativeWindow = handler.PlatformView; nativeWindow.Activate(); IntPtr windowHandle = WindowNative.GetWindowHandle(nativeWindow); WindowId windowId = Microsoft.UI.Win32Interop.GetWindowIdFromWindow(windowHandle); AppWindow appWindow = AppWindow.GetFromWindowId(windowId); var overlappedPresenter = appWindow.Presenter as OverlappedPresenter; if (overlappedPresenter != null) { // 设置系统层面的最小尺寸限制 overlappedPresenter.MinWidth = 1080; overlappedPresenter.MinHeight = 700; // 可选:确保窗口启动时的尺寸不低于最小阈值 if (appWindow.Size.Width < 1080 || appWindow.Size.Height < 700) { appWindow.Resize(new SizeInt32(1080, 700)); } } #endif
关键说明:
OverlappedPresenter的MinWidth和MinHeight会从系统层面限制窗口的最小可调整尺寸,用户无法拖动窗口缩小到设定值以下,但仍可自由放大窗口。- 无需设置
IsResizable=false,默认IsResizable为true,保持该值即可支持窗口放大调整。 - 保留启动时的尺寸检查是为了确保窗口初始大小不低于最小阈值,避免启动时窗口过小。
内容的提问来源于stack exchange,提问作者Preeti Jadhav
相关产品推荐
相关产品推荐

