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

WinUI 3应用如何最优简洁地设置窗口最小、首选及最大尺寸?

在WinUI 3中设置窗口最小、首选和最大尺寸的最佳简洁方法

WinUI 3确实没有WPF里直接的MinWidth/MaxWidth/Width这类属性,最直接简洁的方式是通过AppWindow的SizeConstraints配置,以下分场景说明:

桌面WinUI 3应用(打包/非打包通用)

在窗口的构造函数或Loaded事件中,获取当前窗口对应的AppWindow实例,然后设置尺寸规则:

using Microsoft.UI.Windowing;
using Microsoft.UI.Xaml;
using WinRT.Interop;

// 在窗口类中实现
public MainWindow()
{
    this.InitializeComponent();
    this.Loaded += MainWindow_Loaded;
}

private void MainWindow_Loaded(object sender, RoutedEventArgs e)
{
    var appWindow = GetCurrentAppWindow();
    
    // 设置最小尺寸
    appWindow.SizeConstraints.MinSize = new SizeInt32 { Width = 600, Height = 400 };
    // 设置最大尺寸
    appWindow.SizeConstraints.MaxSize = new SizeInt32 { Width = 1200, Height = 800 };
    // 设置启动时的首选尺寸
    appWindow.Resize(new SizeInt32 { Width = 800, Height = 600 });
}

private AppWindow GetCurrentAppWindow()
{
    var hwnd = WindowNative.GetWindowHandle(this);
    var windowId = Win32Interop.GetWindowIdFromWindow(hwnd);
    return AppWindow.GetFromWindowId(windowId);
}

UWP风格WinUI 3应用(旧模式)

如果是基于UWP的WinUI 3应用,可以用ApplicationView来配置:

using Windows.UI.ViewManagement;

var appView = ApplicationView.GetForCurrentView();
// 设置最小尺寸
appView.SetPreferredMinSize(new Windows.Foundation.Size(600, 400));
// 设置首选启动尺寸
appView.TryResizeView(new Windows.Foundation.Size(800, 600));
// 最大尺寸可通过监听窗口Resize事件限制,或改用AppWindow方式实现

注意事项

  • 确保在窗口加载完成后执行设置,避免因窗口未初始化导致的异常;
  • AppWindow是WinUI 3推荐的窗口管理方式,功能更全面,优先使用。

内容的提问来源于stack exchange,提问作者Георгий Попов

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 11:06:13