wpf - redondear - botones redondos visual studio 2017
¿Cómo puedo configurar una propiedad de un DropShadowEffect a través de un disparador en un ControlTemplate? (1)
Puede establecer el efecto como un todo en el setter.value
<Setter Property="Margin" TargetName="ButtonBorder" Value="13,13,7,7" />
<Setter Property="Effect" TargetName="ButtonBorder" >
<Setter.Value>
<DropShadowEffect ShadowDepth="2" />
</Setter.Value>
</Setter>
</Trigger>
Tengo un Button
ControlTemplate
y estoy tratando de modificar un DropShadowEffect
en un DropShadowEffect
usando un Trigger
. Aquí está mi Xaml:
<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>
Recibo un error que indica que no se puede encontrar BorderEffect.
También he intentado:
<Setter Property="Effect.ShadowDepth" TargetName="ButtonBorder" Value="2" />
Pero también recibo un error que me dice que la propiedad ShadowDepth
no se pudo encontrar en el objeto de tipo Effect
(porque está usando la clase base en lugar de DropShadowEffect
)
¿Como puedo resolver esto?