You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 07:25:27