WPF 中設(shè)置陰影后
<code>
<Canvas.Effect>
<DropShadowEffect BlurRadius="7" ShadowDepth="0"/>
</Canvas.Effect>
</code>
其中的BlurRadius為陰影的模糊程度关翎,ShadowDepth為陰影的深度傻咖∫×悖可以在自定義控件右擊捆探,選擇Blend設(shè)計
下圖為Blend設(shè)計器中找到陰影設(shè)置的界面
設(shè)置為0和7就相當(dāng)于光線從垂直上方射下,模糊度為7壳咕,此時這個Direction是沒有用的壮不。
但是當(dāng)你設(shè)置下面這個的時候,Direction就有用了注祖,表示為從角度315的方向射過來猾蒂,0度角為從左到右
此處可以看到這個陰影
調(diào)整Direction為0
但是當(dāng)你用完陰影之后會有個問題。就是陰影會導(dǎo)致控件模糊是晨。后來自己網(wǎng)上找了下發(fā)現(xiàn)肚菠。
UserLayoutRounding為False,導(dǎo)致控件布局相對屏幕若不是整數(shù)則不會四舍五入罩缴,導(dǎo)致邊緣模糊蚊逢。
所以在mainwindow.xaml中加入UseLayoutRounding="True";就可以了
1)UserLayoutRounding為False箫章,導(dǎo)致控件布局相對屏幕若不是整數(shù)則不會四舍五入烙荷,導(dǎo)致邊緣模糊。
2)SnapsToDevicePixels默認為false炉抒, 為true可以讓元素像素級對齊奢讨。
UIElement.UseLayoutRounding 屬性
獲取或設(shè)置一個值,該值確定對象及其可視化子樹的呈現(xiàn)是否應(yīng)使用將呈現(xiàn)與整像素對齊的舍入行為焰薄。(一般在容器元素上設(shè)置拿诸, 發(fā)生在Measure&Arrange期間)
若是自定義控件在CS文件中用new方式最好把控件大小設(shè)置大個5的寬度和高度,否則陰影無法顯示塞茅。