MAUI应用Windows端如何禁用窗口调整并固定MainPage宽高为200px?
MAUI Windows端固定窗口大小并禁用调整方案
针对Windows平台,完全可以通过平台特定代码实现固定窗口大小(如200×200px)并禁用调整功能,无需修改基类,具体实现如下:
实现步骤
在自动生成的MainPage类中,添加窗口加载事件处理逻辑,仅针对Windows平台编译:
public partial class MainPage : ContentPage { public MainPage() { InitializeComponent(); #if WINDOWS Loaded += MainPage_Loaded; #endif } #if WINDOWS private void MainPage_Loaded(object sender, EventArgs e) { // 获取WinUI3原生窗口实例 var winuiWindow = Window.Current.Handler.PlatformView as Microsoft.UI.Xaml.Window; if (winuiWindow == null) return; // 固定窗口大小为200×200px winuiWindow.AppWindow.Resize(new Windows.Graphics.SizeInt32(200, 200)); // 获取窗口展示器,禁用调整、最大化功能 var overlappedPresenter = winuiWindow.AppWindow.Presenter as Microsoft.UI.Windowing.OverlappedPresenter; if (overlappedPresenter != null) { overlappedPresenter.IsResizable = false; overlappedPresenter.IsMaximizable = false; // 可选:如需禁用最小化,取消下一行注释 // overlappedPresenter.IsMinimizable = false; } } #endif }
关键说明
- MAUI的
RequestedWidth/RequestedHeight仅控制页面内容的期望尺寸,而非系统窗口大小,因此之前设置无效果。 - 通过
Window.Current.Handler.PlatformView可获取Windows平台的原生WinUI3窗口对象,调用其AppWindowAPI直接控制窗口行为。 - 条件编译指令
#if WINDOWS确保代码仅在Windows平台生效,不影响其他平台编译。
内容的提问来源于stack exchange,提问作者Arnold Zahrneinder
相关产品推荐
相关产品推荐

