2010-05-14 81 views
23

目前我正在做一些WPF中有一個包含網格和其他控件的邊框。我面臨的問題是,無論何時將Border.Effect屬性設置爲投影效果,每個包含在邊框中的控件現在都有陰影。有沒有辦法將陰影設置爲邊框而不是邊框​​中包含的每個控件?WPF投影

這裏是我的代碼很短的例子:

<Grid> 
<Border Margin="68,67,60,67" BorderBrush="Black" BorderThickness="1" CornerRadius="10"> 
    <Border.Effect> 
    <DropShadowEffect/> 
    </Border.Effect> 
    <Rectangle Fill="White" Stroke="Black" Margin="37,89,118,98" /> 
</Border> 
</Grid> 

回答

34

兩個選擇:

選項1:使用效果上添加邊框元素作爲邊界/矩形元素樹的兄弟你有。事情是這樣的:

<Grid> 
    <Border Margin="68,67,60,67" 
      BorderBrush="Black" 
      BorderThickness="1" 
      CornerRadius="10"> 
     <Border.Effect> 
      <DropShadowEffect /> 
     </Border.Effect> 
    </Border> 
    <Border Margin="68,67,60,67" 
      BorderBrush="Black" 
      BorderThickness="1" 
      CornerRadius="10"> 

     <Rectangle Fill="White" 
        Stroke="Black" 
        Margin="37,89,118,98"> 
     </Rectangle> 
    </Border> 

</Grid> 

方案2:將矩形的邊框元素的像這樣的兄弟姐妹:

<Grid> 
    <Border Margin="68,67,60,67" 
      BorderBrush="Black" 
      BorderThickness="1" 
      CornerRadius="10"> 
     <Border.Effect> 
      <DropShadowEffect /> 
     </Border.Effect> 
    </Border> 
    <Rectangle Fill="White" 
       Stroke="Black" 
       Margin="37,89,118,98"> 
    </Rectangle> 

</Grid> 

注意:您將需要調整的第二個解決方案的佈局,使矩形排列在你想要的位置

+2

因爲你已經在網格面板內添加了一些其他內容(而不是矩形),請設置網格面板的背景屬性以避免整個內容得到陰影。例如, ...... ... ' – Suriya 2014-03-13 07:28:32