我想要一個按鈕的樣式取決於ViewModel屬性,它不是按鈕的一部分。奇怪的按鈕風格的行爲,改變故事板的顏色
所以我創建了以下
的按鈕XAML:
<Button Content="DisableButton"
Height="27"
HorizontalAlignment="Left"
Margin="95,197,0,0"
VerticalAlignment="Top"
Width="120"
Style="{DynamicResource ButtonOffline}"
Click="ButtonDisableClick">
</Button>
的風格(與屬性觸發不工作還試圖DataTrigger)
<Grid.Resources>
<Style x:Key="ButtonOffline" TargetType="{x:Type Button}">
<Style.Triggers>
<DataTrigger Binding="{Binding IsOnline}" Value="false">
<Setter Property="Background" Value="#FF808080"></Setter>
<Setter Property="BorderBrush" Value="Red"></Setter>
<Setter Property="BorderThickness" Value="5"></Setter>
</DataTrigger>
<DataTrigger Binding="{Binding IsOnline}" Value="true">
<Setter Property="Background" Value="#FF990000"></Setter>
<Setter Property="BorderBrush" Value="Blue"></Setter>
<Setter Property="BorderThickness" Value="2"></Setter>
</DataTrigger>
</Style.Triggers>
</Style>
</Grid.Resources>
酒店
private bool isOnline;
public bool IsOnline
{
get
{
return isOnline;
}
set
{
isOnline = value;
NotifyPropertyChanged("IsOnline");
}
}
我的點擊處理
private void ButtonDisableClick(object sender, RoutedEventArgs e)
{
var isOnline = (this.DataContext as ComboBoxSampleViewModel).IsOnline;
(this.DataContext as ComboBoxSampleViewModel).IsOnline = !isOnline;
}
現在,如果我按一下按鈕,就像一個故事板開始 和按鈕開始改變顏色,如動畫。
代碼有什麼問題?
更新 轉載於一個小樣本中,該樣本中只有按鈕功能。 什麼都沒有(除了基本的INotifyPropertyChanged實現)否則 這裏沒有發佈。
我複製粘貼上面的例子,它工作正常嗎? – 2013-03-11 20:26:39
這裏的按鈕緩慢地改變顏色,切換回來並再次改變顏色。在樣式中給出的目標顏色,淡入和淡出約1秒的動畫長度。 – 2013-03-11 20:29:03