WPF阴影设置及设置导致控件模糊问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WPF阴影设置及设置导致控件模糊问题相关的知识,希望对你有一定的参考价值。

参考技术A

WPF 中设置阴影后
<code>
<Canvas.Effect>
<DropShadowEffect BlurRadius="7" ShadowDepth="0"/>
</Canvas.Effect>
</code>

其中的BlurRadius为阴影的模糊程度,ShadowDepth为阴影的深度。可以在自定义控件右击,选择Blend设计

下图为Blend设计器中找到阴影设置的界面

设置为0和7就相当于光线从垂直上方射下,模糊度为7,此时这个Direction是没有用的。

但是当你设置下面这个的时候,Direction就有用了,表示为从角度315的方向射过来,0度角为从左到右

但是当你用完阴影之后会有个问题。就是阴影会导致控件模糊。后来自己网上找了下发现。
UserLayoutRounding为False,导致控件布局相对屏幕若不是整数则不会四舍五入,导致边缘模糊。

所以 在mainwindow.xaml中加入UseLayoutRounding="True"; 就可以了
1)UserLayoutRounding为False,导致控件布局相对屏幕若不是整数则不会四舍五入,导致边缘模糊。
2)SnapsToDevicePixels默认为false, 为true可以让元素像素级对齐。

UIElement.UseLayoutRounding 属性
获取或设置一个值,该值确定对象及其可视化子树的呈现是否应使用将呈现与整像素对齐的舍入行为。(一般在容器元素上设置, 发生在Measure&Arrange期间)

若是自定义控件在CS文件中用new方式最好把控件大小设置大个5的宽度和高度,否则阴影无法显示。

Blend 阴影 倒影 模糊效果

原文:Blend 阴影 倒影 模糊效果

技术图片

1)阴影 和模糊效果很简单 在Blend的面板效果中就有体现 直接拖拽到控件即可

技术图片

 

2)文本加圆角 需要一个布局控件Border

设置属性CornerRadius  直接可以体现到界面上 当然 它里面内容控件 可以是任何控件 border就是一个外皮

技术图片

3)倒影效果 其实想体现的是blend 设置透明度的操作

技术图片

以上是关于WPF阴影设置及设置导致控件模糊问题的主要内容,如果未能解决你的问题,请参考以下文章

WPF 设置控件阴影后,引发的Y轴位置变化问题

Blend 阴影 倒影 模糊效果

WPF 设置了阴影效果后,Y轴位置会有变化的问题

[原创]c# wpf自定义 任意颜色阴影特效融合winform的探索之路

WPF 文本框设置了阴影效果后,因左右的transform变化引发的拉伸渲染问题

WPF中阴影效果和模糊效果的使用