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

WinUI 3 全屏转最大化窗口抖动问题及修复咨询

WinUI3 消除全屏切换至最大化时的窗口闪烁问题

问题原因

从全屏模式切换回重叠式窗口时,默认会先进入还原状态,再手动切换最大化会导致视觉抖动。核心解决思路是跳过中间的还原状态,直接从全屏过渡到最大化。

修改后的代码实现

替换原FullScreenButton_Click方法为以下代码:

private void FullScreenButton_Click(object sender, RoutedEventArgs e)
{
    if (AppWindow.Presenter is OverlappedPresenter overlappedPresenter)
    {
        if (overlappedPresenter.State == OverlappedPresenterState.Maximized)
        {
            AppWindow.SetPresenter(AppWindowPresenterKind.FullScreen);
        }
    }
    else if (AppWindow.Presenter is FullScreenPresenter)
    {
        // 切换到重叠式窗口 presenter
        var overlappedPresenter = AppWindow.SetPresenter(AppWindowPresenterKind.Overlapped) as OverlappedPresenter;
        // 立即触发最大化,跳过还原状态
        overlappedPresenter?.Maximize();
    }
}

原理说明

切换到OverlappedPresenter后立刻调用Maximize(),系统会合并这两个窗口状态变更操作,不会渲染中间的还原状态,从而避免视觉闪烁。此操作的连贯性确保窗口直接从全屏模式过渡到最大化模式。

内容的提问来源于stack exchange,提问作者Socrates

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.11 12:42:36