GradiantBrush
并根据您的逻辑设置GradientStops
,这种解决方案的唯一缺点是GradientStops
不可绑定,因此您必须从代码中设置它们。以下是一个简单的示例: <ProgressBar Width="500" Value="70" Height="30">
<ProgressBar.Foreground>
<LinearGradientBrush StartPoint="0,0" EndPoint="1,0" >
<GradientStop Color="Green" Offset="0" />
<GradientStop Color="Green" Offset="0.3" />
<GradientStop Color="Red" Offset="0.3" />
<GradientStop Color="Red" Offset="0.5" />
<GradientStop Color="Green" Offset="0.5" />
<GradientStop Color="Green" Offset="1" />
</LinearGradientBrush>
</ProgressBar.Foreground>
</ProgressBar>
输出:
Name="MyLinearGradiantBrush"
,现在无法从xaml中添加GradientStop(它们不是FrameworkElement,因此无法绑定),需要在代码后台中在需要时添加:MyLinearGradiantBrush.GradientStops.Add(new GradientStop(Colors.Red, _yourCalculatedOffset));
- SamTh3D3v