我对这个论坛完全陌生,并且仍然是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