2014-03-04 27 views
1

我有一個Windows應用商店應用。我正在尋找添加陰影效果。我考慮過使用Gradiented邊框,但我似乎無法讓它看起來很正確。我已經嘗試將邊框的BorderBrush設置爲LinearGradientBrush,從背景色變爲黑色,但似乎...不合適,是放置它的最佳方式。有沒有更好的方法來做到這一點?我應該使用更好的Gradient嗎? (非線性?)如何使用XAML/C#向Windows應用商店應用中的控件(框/網格)添加「DropShadow」效果?

我認爲基於一些建議,人們已經使用CSS去黑灰色而不是黑色是更好的選擇,所以我會在此期間玩弄它。

什麼構成'標準'CSS陰影?它有特定的alpha級別嗎?它是線性漸變嗎?

回答

3

我似乎已經想通了。

注意:此答案僅適用於頂部和底部的投影,而不是全部。

我創建了一個Border,如問題描述,並創建了一個BorderBrush定義如下:

<Border Grid.Row="1" BorderThickness="0,5,0,5"> 
    <Border.BorderBrush> 
     <LinearGradientBrush StartPoint=".5,0" EndPoint=".5,1"> 
      <GradientStop Color="Blue" Offset="0"/> 
      <GradientStop Color="Black" Offset=".03"/> 
      <GradientStop Color="Black" Offset=".98"/> 
      <GradientStop Color="Blue" Offset="1"/> 
     </LinearGradientBrush> 
    </Border.BorderBrush> 
</Border> 

奇怪的是,爲了獲得在頂部和底部的一個類似的效果,我不得不做出底部GradientStop比頂部更接近邊緣。我不確定這是爲什麼。

這將做什麼,如果你有一個Blue邊界上的內容,它會創建一個頂部陰影條紋和底部陰影條紋。它現在對我來說工作得很好。

StartPoint/Endpoint在頂部中心和底部中心(在x,0y,然後在x,1y的中途)處定義一個點。例如,在左側和右側,您只需要將StartPointEndPoints更改爲:StartPoint="0,.5" EndPoint="1,.5"

我不知道如何改變它的所有方式。我認爲這可能需要從中心(.5,.5)到角落(0,0),但我還沒有得到這個工作。

希望這可以幫助別人。

0

除了使用畫筆之外,我們可以自己畫畫。

<Grid Width="100" Height="100"> 
    <Rectangle Stroke="Black" Margin="5" RadiusX="7" RadiusY="7" Opacity="0.3"/> 
    <Rectangle Stroke="Black" Margin="4" RadiusX="8" RadiusY="8" Opacity="0.25"/> 
    <Rectangle Stroke="Black" Margin="3" RadiusX="9" RadiusY="9" Opacity="0.2"/> 
    <Rectangle Stroke="Black" Margin="2" RadiusX="10" RadiusY="10" Opacity="0.15"/> 
    <Rectangle Stroke="Black" Margin="1" RadiusX="11" RadiusY="11" Opacity="0.1"/> 
    <Rectangle Stroke="Black" Margin="0" RadiusX="12" RadiusY="12" Opacity="0.05"/> 
</Grid> 

這將創建一個黑色陰影周圍的網格。

相關問題