在我的应用程序中,我有具有三种可能状态的切换按钮;“未选中”、“已选中”和“以前使用过”。当用户来到这个特定屏幕时,一些切换按钮将处于“以前使用过”状态,以显示已完成的工作。单击切换按钮(无论当前状态如何)会将其置于“已检查”状态。一次只能检查其中一个切换按钮。不同的状态由不同颜色的外发光表示,或者根本不发光。
为了设置“Checked”状态的外发光,我在 IsChecked euqals true 上使用触发器。
<ControlTemplate.Triggers>
<Trigger Property="IsChecked" Value="True">
<Setter Property="Effect">
<Setter.Value>
<DropShadowEffect Color="Salmon" BlurRadius="40" ShadowDepth="0" Opacity="1.0"></DropShadowEffect>
</Setter.Value>
</Setter>
</Trigger>
</ControlTemplate.Triggers>
对于“以前使用”状态,我在代码中应用外发光,而不是标记。我必须这样做,因为确定按钮是否应处于此状态是通过检查列表中的值来完成的。
if (mExistingViews.Contains(mViews[i].LocalizedName))
{
DropShadowEffect dse = new DropShadowEffect();
dse.ShadowDepth = 0;
dse.BlurRadius = 20;
dse.Opacity = 1.0;
dse.Color = Colors.Yellow;
mViewButtons[i].Effect = dse;
}
但是,当在“以前使用”状态下单击切换按钮时,触发器似乎没有任何效果。外发光不会改变。
我究竟做错了什么?触发器不会影响 XAML 中未设置的内容吗?