LayoutTransform
sınıfındaki bir boole'ye bağlı bir DataTrigger
temel alınarak bir LayoutTransform
'in ScaleY
özelliğini canlandırmaya çalışıyorum. Animasyon, ilk önce DataTrigger
(uygulama ilk başladığı zaman) tarafından yanlış olarak görüldüğünde ve onay kutusunun işaretli olayında bunu doğru olarak değiştirdiğimde, ancak aynı onay kutusunun işaretlenmemiş olayında yanlış olarak ayarlanmadığında gerçekleşir.WPF - Kafa karıştırıcı DataTrigger/DoubleAnimation davranış
Yapmakta olduğum şeyin basitleştirilmiş bir sürümü aşağıda listelenmiştir.
ViewModel sınıfı, Selected adlı tek bir boolean DependencyProperty
içeren çok basittir.
public class VM : DependencyObject
{
public bool Selected
{
get { return (bool)GetValue(SelectedProperty); }
set { SetValue(SelectedProperty, value); }
}
// Using a DependencyProperty as the backing store for Selected. This enables animation, styling, binding, etc...
public static readonly DependencyProperty SelectedProperty =
DependencyProperty.Register("Selected", typeof(bool), typeof(VM), new UIPropertyMetadata(false));
}
Window.xaml
bir düğme ve bir onay kutusu içerir. Onay kutusu işaretlendiğinde, ViewModel'in 'Selected' özelliğini true değerine ayarlıyorum ve işaretlenmediğinde yanlış. İşte, hem xaml hem de onun arkasındaki kod için kod.
public partial class Window1 : Window
{
public Window1()
{
InitializeComponent();
}
private void CheckBox_Checked(object sender, RoutedEventArgs e)
{
VM vm = this.FindResource("VM") as VM;
vm.Selected = true;
}
private void CheckBox_Unchecked(object sender, RoutedEventArgs e)
{
VM vm = this.FindResource("VM") as VM;
vm.Selected = false;
}
}
DataTrigger
özelliği false olduğunda, DoubleAnimation
'i Opacity
özelliği üzerinde çalışan basit bir Setter
olarak değiştirdiğimde, doğru sonuçları gördüğümü biliyorum. Yani DoubleAnimation
'i nasıl kullandığımla ilgili bir sorun gibi görünüyor.
Herhangi bir yardım istenir.
Bu gerçekten tuhaftır. Bunun neden böyle olduğunu bilen var mı? – lbergnehr