0
我有一个按钮。当它被按下时,按钮颜色应该改变。颜色根据特定条件选择(例如:Ok-Gray,错误 - 红色)。这是一个简单的任务,但我不能解决它:(。。 我试过了。我定义的术语之前点击按钮,并将其存储在属性标记(此按钮)。我没有工作的普通按钮。我重写模板键:。按下按钮 - 按条件更改颜色(WPF)
<Style x:Key="SimpleButton" TargetType="{x:Type Button}">
<Setter Property="SnapsToDevicePixels" Value="true" />
<Setter Property="OverridesDefaultStyle" Value="true" />
<Setter Property="MinHeight" Value="23" />
<Setter Property="MinWidth" Value="75" />
<Setter Property="Tag" Value="1" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Button}">
<Border x:Name="Border"
Background="#C0C0C0"
BorderBrush="#404040"
BorderThickness="1"
CornerRadius="2">
<ContentPresenter Margin="0,6,27,6"
HorizontalAlignment="Right"
VerticalAlignment="Center"
RecognizesAccessKey="True" />
</Border>
<ControlTemplate.Triggers>
<!-- !!!!! -->
<Trigger Property="IsPressed" Value="true">
<Setter TargetName="Border" Property="Background" Value="{Binding RelativeSource={RelativeSource Self}, Path=Tag, Converter={StaticResource StatusToBrushConverter}}" />
</Trigger>
<Trigger Property="IsKeyboardFocused" Value="true">
<Setter TargetName="Border" Property="BorderBrush" Value="#202020" />
</Trigger>
<Trigger Property="IsDefaulted" Value="true">
<Setter TargetName="Border" Property="BorderBrush" Value="#202020" />
</Trigger>
<Trigger Property="IsEnabled" Value="false">
<Setter TargetName="Border" Property="Background" Value="#EEEEEE" />
<Setter TargetName="Border" Property="BorderBrush" Value="#AAAAAA" />
<Setter Property="Foreground" Value="#888888" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
转换只能一次此外,任何属性更改标签不启动工作转换 你有什么建议
标记不是依赖项属性,我想这就是为什么绑定没有更新。 – Andy 2013-03-18 10:58:05