3
我希望有人能幫助我,我認爲這是一個相對直接的問題。從WPF中的DoubleAnimation Completed事件獲取目標控件?
我使用DoubleAnimation對象在代碼中設置淡出動畫。它淡出圖像,然後在完成時觸發Completed事件。
我想從事件處理程序中獲取淡出動畫應用到的控件的名稱,但我找不到方法。
任何幫助表示讚賞。謝謝。
DispatcherTimer timer = new DispatcherTimer();
public MainWindow()
{
InitializeComponent();
image1.Visibility = System.Windows.Visibility.Visible;
image2.Visibility = System.Windows.Visibility.Collapsed;
timer.Interval = TimeSpan.FromSeconds(2);
timer.Tick += new EventHandler(timer_Tick);
timer.Start();
}
void FadeOut(UIElement element)
{
DoubleAnimation FadeOut = new DoubleAnimation(1, 0, new Duration(TimeSpan.FromSeconds(0.5)));
FadeOut.Completed += new EventHandler(FadeOut_Completed);
element.BeginAnimation(OpacityProperty, FadeOut);
}
void FadeOut_Completed(object sender, EventArgs e)
{
// How to find out which control was targeted?
}
void timer_Tick(object sender, EventArgs e)
{
if (image1.Visibility == System.Windows.Visibility.Visible)
{
FadeOut(image1);
//image1.Visibility = System.Windows.Visibility.Collapsed;
//image2.Visibility = System.Windows.Visibility.Visible;
}
}
sender?這個動畫的目標沒有明確設置,所以如果它的工作肯定是發件人 – EvAlex
如何明確設置目標? PS。更新了代碼以包含計時器滴答事件。 – Tas
我有點不對,但找到了解決辦法。看到我的回答 – EvAlex