Tengo un Button
ControlTemplate
y estoy tratando de modificar un DropShadowEffect
en un Border
usando un Trigger
. Aquí está mi Xaml:¿Cómo puedo establecer una propiedad de DropShadowEffect a través de un disparador en una plantilla de control?
<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>
Aparece el error que indica que el BorderEffect no se puede encontrar.
También he intentado:
<Setter Property="Effect.ShadowDepth" TargetName="ButtonBorder" Value="2" />
Pero también me sale un error que me dice que la propiedad ShadowDepth
no se pudo encontrar en el objeto de tipo Effect
(porque está utilizando la clase base en lugar de DropShadowEffect
)
¿Cómo puedo resolver esto?
Sí, eso es lo que terminé usando, pero yo la que había una manera de simplemente modificar la propiedad que necesito ... Gracias :-) –