System.Windows.Window窗口出现双行黑框问题求助
问题描述

我基于System.Windows.Window基类,用单个TextBlock和Border元素制作类提示框窗口,但在特定宽度下会出现一个带两行的黑框。试过调整布局元素、切换屏幕、修改窗口栏设置等方法,都没法去掉这个黑框,求解决办法?
可行的解决思路
- 把窗口的
ResizeMode设为NoResize或CanMinimize,避免特定尺寸下触发系统绘制异常:<Window ResizeMode="NoResize"> - 在窗口构造函数里添加代码,强制禁用边缘渲染优化:
this.SetValue(System.Windows.Media.RenderOptions.EdgeModeProperty, System.Windows.Media.EdgeMode.Aliased); - 调整
Border的CornerRadius和Padding参数,避免和窗口边缘的像素对齐冲突:<Border CornerRadius="2" Padding="1"> <TextBlock ... /> </Border> - 如果开启了
AllowsTransparency,把它设为False,透明窗口很容易出现这类系统绘制的异常线条:<Window AllowsTransparency="False"> - 改用
WindowStyle="None"自定义标题栏,完全避开系统默认边框的绘制逻辑,同时自己实现窗口拖动、关闭等基础功能。
内容的提问来源于stack exchange,提问作者user1800368
相关产品推荐
相关产品推荐

