LinearGradientBrush 画刷可以实现不同颜色对Path的填充,选用LinearGradientBrush 画刷,设置运行方向起点为左上角,终点为左下角,其实就是从上往下填充,需要其他方向可以改这两个Point的值。
0.01*i为分解比例点,上面为红色,下面为绿色,这样就可以实现一个Path被两种颜色填充。
public void Update(System.Windows.Shapes.Path path, int i)
{
LinearGradientBrush brush = new LinearGradientBrush();
brush.StartPoint = new Point(0, 0);
brush.EndPoint = new Point(0, 1);
brush.GradientStops.Add(new GradientStop(Colors.Red, 0.01 * i));
brush.GradientStops.Add(new GradientStop(Colors.Green, 0.01 * i));
path.Fill = brush;
}
循环调用上述函数,就可以实现动态填充。
public void Func()
{
for (int i = 0; i <= 100; i++)
{
this.Dispatcher.BeginInvoke(new Action(() =>
{
Update(rect, i);
}));
Thread.Sleep(20);
}
}
注意需要使用代理,否则无法修改UI控件。