WPF 中設(shè)置陰影后
<code>
<Canvas.Effect>
<DropShadowEffect BlurRadius="7" ShadowDepth="0"/>
</Canvas.Effect>
</code>
其中的BlurRadius為陰影的模糊程度,ShadowDepth為陰影的深度??梢栽谧远x控件右擊,選擇Blend設(shè)計(jì)

下圖為Blend設(shè)計(jì)器中找到陰影設(shè)置的界面

設(shè)置為0和7就相當(dāng)于光線(xiàn)從垂直上方射下,模糊度為7,此時(shí)這個(gè)Direction是沒(méi)有用的。
但是當(dāng)你設(shè)置下面這個(gè)的時(shí)候,Direction就有用了,表示為從角度315的方向射過(guò)來(lái),0度角為從左到右

此處可以看到這個(gè)陰影

調(diào)整Direction為0

但是當(dāng)你用完陰影之后會(huì)有個(gè)問(wèn)題。就是陰影會(huì)導(dǎo)致控件模糊。后來(lái)自己網(wǎng)上找了下發(fā)現(xiàn)。
UserLayoutRounding為False,導(dǎo)致控件布局相對(duì)屏幕若不是整數(shù)則不會(huì)四舍五入,導(dǎo)致邊緣模糊。
所以在mainwindow.xaml中加入U(xiǎn)seLayoutRounding="True";就可以了
1)UserLayoutRounding為False,導(dǎo)致控件布局相對(duì)屏幕若不是整數(shù)則不會(huì)四舍五入,導(dǎo)致邊緣模糊。
2)SnapsToDevicePixels默認(rèn)為false, 為true可以讓元素像素級(jí)對(duì)齊。
UIElement.UseLayoutRounding 屬性
獲取或設(shè)置一個(gè)值,該值確定對(duì)象及其可視化子樹(shù)的呈現(xiàn)是否應(yīng)使用將呈現(xiàn)與整像素對(duì)齊的舍入行為。(一般在容器元素上設(shè)置, 發(fā)生在Measure&Arrange期間)
若是自定義控件在CS文件中用new方式最好把控件大小設(shè)置大個(gè)5的寬度和高度,否則陰影無(wú)法顯示。