21
我有一个Button
ControlTemplate
,我正试图通过使用Trigger
修改DropShadowEffect
上Border
。这是我的Xaml:如何通过ControlTemplate中的触发器设置DropShadowEffect的属性?
<Button.Template>
<ControlTemplate TargetType="Button">
<Border x:Name="ButtonBorder" Margin="10" CornerRadius="5" Background="Gray">
<Border.Effect>
<DropShadowEffect ShadowDepth="5" x:Name="BorderEffect" />
</Border.Effect>
<ContentPresenter HorizontalAlignment="Center" />
</Border>
<ControlTemplate.Triggers>
<Trigger Property="Button.IsMouseOver" Value="True">
<Setter Property="Background" TargetName="ButtonBorder" Value="LightGray" />
</Trigger>
<Trigger Property="Button.IsPressed" Value="True">
<Setter Property="Margin" TargetName="ButtonBorder" Value="13,13,7,7" />
<!-- this is where I get the error -->
<Setter Property="ShadowDepth" TargetName="BorderEffect" Value="2" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Button.Template>
我得到错误,指出BorderEffect无法找到。
我也曾尝试:
<Setter Property="Effect.ShadowDepth" TargetName="ButtonBorder" Value="2" />
但我也得到一个错误,告诉我,物业ShadowDepth
无法Effect
类型的对象(因为它使用的基类,而不是DropShadowEffect
)
我该如何解决这个问题?
没错,这就是我最终使用,但我这有,只是修改我需要的属性的方式...谢谢:-) – 2009-11-18 08:31:51