46

プロパティをドロップシャドウ効果に設定する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>
4

2 に答える 2

60

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:次のように長方形をborder要素の兄弟として配置します。

   <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番目のソリューションのレイアウトを微調整する必要があります

于 2010-05-14T00:30:21.867 に答える
0

あなたの質問には答えがあると思いますが、最も簡単な答えはないようです。質問に対する最も簡単な答えは、シャドウを設定したコントロールの背景に色を付けることです。そのようです:

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

そして結果:

NoShadowFallThrough

于 2021-12-01T16:17:53.567 に答える