110,536
社区成员
发帖
与我相关
我的任务
分享
using System.Threading;
private Dictionary<Stroke, Timer> dicTimer = new Dictionary<Stroke, Timer>();
private void InkCanvas_StrokeCollected(object sender, InkCanvasStrokeCollectedEventArgs e)
{
Timer t1= new Timer(new TimerCallback(ChangeOpacity), e.Stroke, 100, 100);
dicTimer.Add(e.Stroke, t1);
}
private void ChangeOpacity(Object obj)
{
Stroke line = obj as Stroke;
Color linecolor = line.DrawingAttributes.Color;
if (linecolor.ScA > 0)
linecolor.ScA -= 0.1f;
this.Dispatcher.BeginInvoke(new Action(() => { line.DrawingAttributes.Color = linecolor; }));
if (linecolor.A <= 0)
{
dicTimer[line].Dispose();
dicTimer.Remove(line);
}
}