web-dev-qa-db-ja.com

WPFドロップシャドウ

現在、グリッドやその他のコントロールを含む境界線を持つWPFで何かを作成しています。私が直面している問題は、Border.Effectプロパティをドロップシャドウエフェクトに設定するたびに、ボーダーに含まれるすべてのコントロールがドロップシャドウを持つようになることです。境界線に含まれるすべてのコントロールではなく、境界線だけに影を設定する方法はありますか?

これが私のコードの短い例です:

<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>
31
Petezah

2つの選択肢:

オプション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番目のソリューションのレイアウトを微調整して、希望する場所に四角形を並べる必要があります。

43
Brad Cunningham