我對這個論壇完全陌生,並且仍然是WPF的初學者。如何使筆畫在InkCanvas上消失
我正在研究一個需要動畫的inkcanvas上的筆畫的項目。其中一個動畫是「消失」。我想通過單擊按鈕使所選筆畫逐漸消失,但出現在動畫的結尾。
由於中風沒有不透明屬性,我嘗試使用ColorAnimation類和故事板。我沒有使這個代碼工作,因爲我不能使用自己或使用他們的名字來定位筆畫,因爲他們沒有任何筆畫。
現在我想用筆畫顏色逐漸變化爲背景的顏色運用該系統,並在結束時,重置回其初始值。這是一個昂貴的循環,但我沒有其他想法。
如果您有任何其他解決方案可能與我分享,我將不勝感激。
在此先感謝。
編輯:我沒有回答評論,因爲我正在處理同一項目的其他部分。
我已經使用存儲在的DrawingAttributes阿爾法值試過,但因爲它不是一個變量我不能改變該值。 RGB值也是一樣。我不知道如何使筆畫在循環中消失。我已經實施了大部分的項目,所以我只需要一些東西,讓它們慢慢消失。下面你可以找到一個例子,我改變筆畫本身的動畫。
private int dropOffset = 1;
private void DropAnimation()
{
m = new Matrix();
m.Translate(0, dropOffset);
animStrokes.Transform(m, false);
YChange += dropOffset;
dropOffset += 2;
}
而在另一個類,我有
public void AnimateStrokes(Dispatcher canvasDispatch)
{
Stopwatch initial = Stopwatch.StartNew();
while (initial.ElapsedMilliseconds < 2000)
{
foreach (Animation ai in AnimationList)
{
ai.animateSelected();
}
canvasDispatch.Invoke(new Action(() => { }), DispatcherPriority.Render);
Thread.Sleep(50);
}
foreach (Animation a in AnimationList)
{
a.undoAnimation();
}
canvasDispatch.Invoke(new Action(() => { }), DispatcherPriority.Render);
}
我知道,這不是健康的傳球調度員這樣,但它滿足了。
再次提前致謝。
請發表您的代碼 – Paparazzi 2011-12-29 14:59:18
您可以編輯筆觸顏色的Alpha值,但你還是會通過他們必須循環。你說這是一個昂貴的循環,但是你有沒有基準測試或者你認爲它太慢? – keyboardP 2011-12-29 15:15:30