我在玩WPF動畫,並面臨一些有線問題。有線問題與動畫和雙向綁定
我有一個滑塊和一個文本框。文本框是使用2路綁定綁定到Slider.Value:
<StackPanel>
<Slider x:Name="MySlider" Minimum="0" Maximum="100" Value="50" />
<TextBox Text="{Binding ElementName=MySlider, Path=Value, Mode=TwoWay}" />
<Button Click="Button_Click">Test</Button>
</StackPanel>
當我拖動滑塊,文本在文本框的變化。當我改變文本框中的文本時,滑塊的值被更新,它工作正常。
現在我添加一個動畫,將Slider.Value屬性動畫化爲0.我在按鈕按下時啓動它。
private void Button_Click(object sender, RoutedEventArgs e)
{
Storyboard storyBoard = new Storyboard();
DoubleAnimation animation = new DoubleAnimation();
animation.Duration = new Duration(TimeSpan.FromSeconds(0.5));
animation.To = 0;
Storyboard.SetTarget(animation, MySlider);
Storyboard.SetTargetProperty(animation, new PropertyPath(Slider.ValueProperty));
storyBoard.Children.Add(animation);
storyBoard.Begin();
}
當我按下按鈕,動畫滾動滑塊爲0文本框也變爲0 syncronyously woth滑塊。
現在我面臨這個問題。動畫後,我無法更改文本框中的文本。我改變文本,移動焦點和滑塊值重置爲0的文本。我仍然可以移動滑塊,並使用滑塊值更新文本框。但我無法使用文本框設置滑塊值。
我認爲當動畫停止時,值以某種方式凍結在animation.To屬性中指定的值上,但我無法確定如何解凍它。或者可能是別的東西?
謝謝
謝謝,這個鏈接非常有幫助! – 2011-03-22 20:26:10