【发布时间】:2017-12-19 08:59:36
【问题描述】:
我正在尝试在 XAML 中设置我的属性,以便在按下按钮时产生凹陷效果。我通过增加边框厚度来做到这一点。 它给了我一个错误,说无法分配特定值。我在这里犯了什么错误?
注意:我尝试使用 DropShadowEffect 并且它可以工作,但边框效果不起作用。
这是我的 XAML:
<Style x:Key="DefaultLanguageButtonStyle" TargetType="{x:Type Button}" > <!--BasedOn="{StaticResource DefaultButton}" >-->
<Setter Property="OverridesDefaultStyle" Value="True" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Button}">
<Border x:Name="border" BorderThickness="0" BorderBrush="DarkGray" Background="{TemplateBinding Background}">
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center" />
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="border" Property="BorderBrush" Value="Black" />
</Trigger>
<Trigger Property="IsPressed" Value="True">
<Setter Property="Effect">
<Setter.Value>
<Border BorderThickness="5,5,0,0" >
</Border>
</Setter.Value>
</Setter>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
<Setter Property="FontSize" Value="30" />
<Setter Property="FontWeight" Value="Bold" />
<Setter Property="HorizontalAlignment" Value="Center" />
<Setter Property="VerticalAlignment" Value="Center" />
<Setter Property="HorizontalContentAlignment" Value="Center" />
<Setter Property="VerticalContentAlignment" Value="Center" />
<Setter Property="Foreground" Value="{DynamicResource RedBrush}" />
<Setter Property="Background" Value="{DynamicResource WhiteBrush}" />
<Setter Property="BorderThickness" Value="{DynamicResource NoBorder}" />
<Setter Property="Height" Value="100" />
</Style>
【问题讨论】:
-
你的意思是设置边框的
Effect属性吗?也许您的 setter 上缺少TargetName属性。 -
是的,我需要设置效果
-
它适用于阴影效果,但不适用于边框厚度
-
我的代码中有类似的情况,
<Border x:Name="border"..在ControlTemplate中,然后在Triggers我有一个Setter使用TargetName属性修改BorderThickness.它工作正常,我不明白为什么它不适合你。你能发布完整的错误吗?