【Wpf】界面下方出现黑线问题

项目场景:

自己画了一个界面,用于显示消息确认,在DockPanel中的TextBlock来显示具体消息。

问题描述

当界面中的Text内容(自动换行)过长时,界面高度自动转换,最下方出现一条黑线,如下:(Win11 Win10)

在这里插入图片描述在这里插入图片描述
在这里插入图片描述

原因分析:

当需要显示的Message较长时,窗口自动调整高度时, 似乎是一个渲染工作, wpf在呈现时有抗锯齿效果,会把上下两边的像素点同时着色导致边缘模糊,界面显示一条较粗的黑线

资料参考:https://www.jb51.cc/csharp/243329.html
https://blog.csdn.net/nodeman/article/details/80653757

解决方案:

可使用SnapsToDevicePixels或UseLayoutRounding解决
①UseLayoutRounding 属性
获取或设置一个值,该值确定对象及其可视化子树的呈现是否应使用将呈现与整像素对齐的舍入行为。
(一般在容器元素上设置。在布局期间发发生)
UserLayoutRounding默认为False,导致控件布局相对屏幕若不是整数则不会四舍五入,导致边缘模糊。

②SnapsToDevicePixels 属性
获取或设置一个值,该值决定呈现元素期间是否应使用设备特定的像素设置。这是一个依赖项属性。
(一般在根元素设置。在渲染时发生)
SnapsToDevicePixels默认为false, 为true可以让元素像素级对齐。

资料参考:https://www.bbsmax.com/A/rV57KLW95P/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值