-1
我嘗試下面的代碼,但有一些錯誤線 「Storyboard.SetTargetProperty(CA1,新的PropertyPath(」 GradientStop.ColorProperty「));如何動畫漸變停止顏色?
sb.Begin(本)拋出一個InvalidOperationException並不能解決「gradStop1.ColorProperty」。
如何正確動畫漸變停止顏色?
private void UserControl_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
LinearGradientBrush lgb = new LinearGradientBrush(
(Color)ColorConverter.ConvertFromString("#FF1E2838"),
(Color)ColorConverter.ConvertFromString("#FF2B364F"),
new Point(0.5, 0),
new Point(0.5, 1));
UCBody.Background = lgb;
ColorAnimation ca1 = new ColorAnimation(
(Color)ColorConverter.ConvertFromString("#FF1E2838"),
(Color)ColorConverter.ConvertFromString("#FF1E1E1E"),
TimeSpan.FromMilliseconds(600));
ColorAnimation ca2 = new ColorAnimation(
(Color)ColorConverter.ConvertFromString("#FF2B364F"),
(Color)ColorConverter.ConvertFromString("#FF2B2B38"),
TimeSpan.FromMilliseconds(600));
Storyboard sb = new Storyboard();
sb.Children.Add(ca1);
sb.Children.Add(ca2);
Storyboard.SetTargetName(ca1, "gradStop1");
Storyboard.SetTargetProperty(ca1, new PropertyPath("GradientStop.ColorProperty"));
Storyboard.SetTargetName(ca2, "gradStop2");
Storyboard.SetTargetProperty(ca2, new PropertyPath("GradientStop.ColorProperty"));
sb.Begin(this);
}
}
你爲什麼不定義在XAML動畫?它會更簡單,你不會需要處理大量的轉換也是如此。對XAML定義的漸變畫筆進行動畫處理也會更容易。我應該引導你這樣做嗎? –
首先,使用'new PropertyPath(GradientStop.ColorProperty)'或'new PropertyPath(GradientStop.ColorProperty.Name)'來代替字符串。其次,什麼是'gradStop1'和'gradStop2'?我看不到具有這些名稱的對象在哪裏定義。 – Maxim
請記得投了有用的答案:) https://stackoverflow.com/help/privileges/vote-up – mm8