0
我正在爲WPF中的狗屎和笑聲創建一個「滑動解鎖」按鈕。我有兩個圖像要顯示:靜止的外部黑色框(SwipeBack)和作爲滑塊的內部白色框(SwipeBar)。 OnTouchDown
的滑塊圖像,我設置布爾IsDragging
爲true。 OnTouchMove
,我通過調整圖像的左邊距來移動圖像(可能有更好的方法,但是這種方法可行)。這裏是OnTouchMove
代碼:動畫凍結了它的動畫值?
private void SwipeBar_TouchMove(object sender, TouchEventArgs e) {
if (IsDragging) {
int x = (int)e.GetTouchPoint(SwipeBack).Position.X;
int left = (int)(x - SwipeBar.ActualWidth/2);
left = Math.Max(15, left);
left = Math.Min(left, (int)(SwipeBack.ActualWidth - 15 - SwipeBar.ActualWidth));
Thickness m = SwipeBar.Margin;
m.Left = left;
SwipeBar.Margin = m;
}
}
在我OnTouchUp
情況下,我設置IsDragging
回假並運行一個動畫返回SwipeBar回到休息的左手位置(背於15餘量),下面是代碼:
private void SwipeBar_TouchUp(object sender, TouchEventArgs e) {
IsDragging = false;
ThicknessAnimation slideBack = new ThicknessAnimation();
slideBack.From = SwipeBar.Margin;
Thickness to = SwipeBar.Margin;
to.Left = 15;
slideBack.To = to;
ExponentialEase ease = new ExponentialEase();
ease.Exponent = 7;
slideBack.EasingFunction = ease;
SwipeBar.BeginAnimation(Image.MarginProperty, slideBack);
}
我遇到的問題是,第一次動畫運行後,我再也不能操縱SwipeBar的保證金做另一張幻燈片。我是新來的WPF和特別是WPF動畫,但我相信我不能改變第一次動畫後的邊緣,因爲動畫。我試着給動畫持續一段時間,但即使在時間到期後(或重試次數),邊距仍然無法修改。