我是WPF / XAML编码新手。我试图将阴影效果添加到矩形形状。矩形的XAML是:
代码1
<Rectangle HorizontalAlignment="Left" Height="552" Margin="2,10,0,0"
VerticalAlignment="Top" Width="427" StrokeThickness="4"
Fill="#FF484A4D" Grid.Column="1"/>
DropShadowEffect的代码是:
代码2
<Rectangle.Effect>
<DropShadowEffect x:name="Dshadow" BlurRadius="10" ShadowDepth="0" Color="Black"/>
</Rectangle.Effect>
问题是,我无法将这两个代码组合在一起使用。当我在 CODE 1 之后安排 CODE 2 时,它不起作用。我该如何修复/安排这些代码?
答案 0 :(得分:2)
你应该不关闭第一行的Rectangle
。
<Rectangle HorizontalAlignment="Left"
Height="552"
Margin="2,10,0,0"
VerticalAlignment="Top"
Width="427"
StrokeThickness="4"
Fill="#FF484A4D"
Grid.Column="1">
<Rectangle.Effect>
<DropShadowEffect BlurRadius="10"
ShadowDepth="0"
Color="Black"/>
</Rectangle.Effect>
</Rectangle>
您需要访问Property
Rectangle
- 如果您已关闭Element
,则无法执行此操作。
答案 1 :(得分:0)
必须在Rectangle组件标记内声明Rectangle.Effect。
<Rectangle>
<Rectangle.Effect>
<DropShadowEffect BlurRadius="10" ShadowDepth="0" Color="Black"/>
</Rectangle.Effect>
或者,您可以在XAML中声明样式标记,该标记可以一次又一次地重用于组件。下面是样式表的示例,它将自动将效果添加到XAML中的所有矩形。
<Window.Resources>
<Style TargetType="{x:Type Rectangle}">
<Setter Property="Effect">
<Setter.Value>
<DropShadowEffect x:Name="shadowEffectButton" Color="Black" ShadowDepth="0" BlurRadius="5"/>
</Setter.Value>
</Setter>
<Trigger Property="IsMouseOver" Value="True">
<Trigger.EnterActions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Storyboard.TargetProperty="Effect.ShadowDepth" From="0" To="3" Duration="0:0:0.5"/>
</Storyboard>
</BeginStoryboard>
</Trigger.EnterActions>
<Trigger.ExitActions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Storyboard.TargetProperty="Effect.ShadowDepth" From="3" To="0" Duration="0:0:0.5"/>
</Storyboard>
</BeginStoryboard>
</Trigger.ExitActions>
</Trigger>
</Style.Triggers>
</Style></Window.Resources>