gpt4 book ai didi

不同颜色的 WPF 进度条

转载 作者:行者123 更新时间:2023-12-01 17:09:56 24 4
gpt4 key购买 nike

我处于警报状态。我想借助颜色在进度条上反射(reflect)警报状态。如果运算符(operator)已处理警报至 30% 状态,则进度条将显示 30% 颜色,如果运算符(operator)已处理至 60%。因此进度条将以红色显示前 30%,然后以蓝色显示接下来的 30%。

我将进度条的值设置为 30 并变为绿色。我的问题是,当我想将它设置为 60% 时,它会在前 30% 时显示绿色,在接下来的 30% 时显示红色。

最佳答案

以下是您的示例。为 ProgressBar 设置 MyProgressBarStyle。我使用 LinearGradientBrush 将进度条的背景设置为 30% 红色、30% 绿色和 30% 蓝色。并反转 PART_Indicator。因此,您需要使用 SetMyProgressBarValue 函数来设置 ProgressBar 的百分比值。试试它对我有用。

enter image description here

XAML

     <Grid Background="Gray">
<Grid.Resources>
<Style x:Key="MyProgressBarStyle" TargetType="{x:Type ProgressBar}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ProgressBar}">
<Grid MinHeight="14" MinWidth="200">
<Border Name="PART_Track" CornerRadius="2" BorderBrush="Transparent" BorderThickness="1" >
<Border.Background>
<LinearGradientBrush StartPoint="0,0.5" EndPoint="1,0.5">
<LinearGradientBrush.GradientStops>
<GradientStop Color="red" Offset="0" ></GradientStop>
<GradientStop Color="red" Offset="0.3" ></GradientStop>
<GradientStop Color="Green" Offset=".3" ></GradientStop>
<GradientStop Color="Green" Offset=".3" ></GradientStop>
<GradientStop Color="Green" Offset=".6" ></GradientStop>
<GradientStop Color="Blue" Offset=".6" ></GradientStop>
<GradientStop Color="Blue" Offset="1" ></GradientStop>
</LinearGradientBrush.GradientStops>
</LinearGradientBrush>
</Border.Background>
</Border>
<Border
Name="PART_Indicator"
CornerRadius="2"
Background="Gray"
BorderBrush="Transparent"
BorderThickness="1"
HorizontalAlignment="Right" />
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Grid.Resources>
<ProgressBar x:Name="MyProgressBar" Style="{StaticResource MyProgressBarStyle}" Minimum="0" Maximum="100" Height="80" Value="20"></ProgressBar>
</Grid>

为 MyProgressBar 设置百分比值的函数

 public void SetMyProgressBarValue(Double percentageValue)
{
MyProgressBar.Value = 100 - percentageValue;
}

关于不同颜色的 WPF 进度条,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15376698/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com