Jul*_*lin 21 wpf triggers controltemplate
我有一个Button ControlTemplate和我试图修改DropShadowEffect上Border使用Trigger.这是我的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>
Run Code Online (Sandbox Code Playgroud)
我得到错误声明无法找到BorderEffect.
我也尝试过:
<Setter Property="Effect.ShadowDepth" TargetName="ButtonBorder" Value="2" />
Run Code Online (Sandbox Code Playgroud)
但我也得到一个错误,告诉我ShadowDepth在类型的对象上找不到属性Effect(因为它使用的是基类而不是DropShadowEffect)
我怎么解决这个问题?
Job*_*Joy 29
您可以在setter.value中将Effect设置为一个整体
<Setter Property="Margin" TargetName="ButtonBorder" Value="13,13,7,7" />
<Setter Property="Effect" TargetName="ButtonBorder" >
<Setter.Value>
<DropShadowEffect ShadowDepth="2" />
</Setter.Value>
</Setter>
</Trigger>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11519 次 |
| 最近记录: |