WinUI3基本窗口问题

B站的视频收到了很多回复,根据其中的内容修复我的串口上位机软件。

窗口残影闪烁

问题的描述应该为来回拉伸窗口,右边或底边窗口会有明显残影闪烁,这个问题在GitHub上已经有人提交了Issue,动图上是一个深色窗口来回拖动出现白色闪烁,2021年6月4日至今将近5年,微软都没有彻底修好,开发人员回复的原话是:“We’re currently working on fixing this. The plan is that instead of having that background color always be white it will instead be white or black depending on the value of Window.Content.RequestedTheme.”,也就是像让这个残影闪烁适配颜色模式:浅色模式就是白色残影,深色模式就是黑色残影……

给我气笑了,治标不治本,快5年了都没法修复这么明显的问题!GitHub上都有人阴阳怪气微软:
笑死我了

标题栏调整大小行为失效

窗口调整表现

这个居然也是一个已知问题……Issue在这里,只要通过TitleBar.IconSource设置了标题栏图标,拖动标题栏调整窗口大小的行为就会失效,具体表现如下:
拉长压缩

如何调整标题栏代码

需要在<TitleBar>中禁用<TitleBar.IconSource>

1
2
3
4
5
6
7
<TitleBar x:Name="AppTitleBar" Title="串口助手">
<!-- 设置了TitleBar.IconSource 调整窗口会出问题 -->
<!-- https://github.com/microsoft/microsoft-ui-xaml/issues/10374 -->
<!-- <TitleBar.IconSource> -->
<!-- <FontIconSource Glyph="&#xE88E;"/> -->
<!-- </TitleBar.IconSource> -->
</TitleBar>

这样再拖动标题栏就没问题了。但这也是“如修”,这样窗口调整没问题,但如果有标题栏图标的需求那不两头堵了?

这个问题微软至今没修……

限制窗口大小

AppWindow.Presenter属性

评论区有佬表示WinUI3 1.8版本之后可以使用AppWindow.Presenter属性进行设置,但是DPI更改事件需要自己处理,因为Presenter使用的是未经缩放处理的像素值。

代码如下:

1
2
3
4
5
6
7
// 限制窗口最小大小
// 需要自己处理DPI更改事件
if (AppWindow.Presenter is OverlappedPresenter presenter)
{
presenter.PreferredMinimumWidth = 800;
presenter.PreferredMinimumHeight = 460;
}

用起来很方便,但是之后要解决DPI更改带来的问题,我的笔记本电脑显示器是125%缩放,但是独立显示器是100%缩放,拖动窗口会有问题。

处理DPI更改事件

【未完成】


WinUI3基本窗口问题
https://mrwei95.github.io/2026/01/03/WinUI3-ProblemFix-1/
作者
Tommy Wei
发布于
2026年1月3日
更新于
2026年1月3日