c# XAML ProgressBar正确设置渐变填充

2023-12-06

如何设置a的渐变ProgressBar在XAML中动态填充?

目前它是这样的:

enter image description here

两个进度条的代码:

<ProgressBar.Foreground>
    <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
       <LinearGradientBrush.RelativeTransform>
          <CompositeTransform CenterY="0.5" CenterX="0.5" Rotation="270"/>
       </LinearGradientBrush.RelativeTransform>
       <GradientStop Color="Lime" Offset="0"/>
       <GradientStop Color="Red" Offset="1"/>
    </LinearGradientBrush>
</ProgressBar.Foreground>

但我想要鞋面的“结束”颜色ProgressBar呈绿黄色,如下图所示。 意味着我希望进度条像第二个进度条一样充满,然后“剪切”其余部分(例如,当我有 60% 时,我希望右侧的 40% 不显示)

我该如何正确地做到这一点?

编辑(找到解决方案):

在尝试了几种方法(在栏上绘制一个具有默认颜色的矩形等)之后,我发现我可以修改offset of GradientStop通过代码:

color_UL.Offset = 2.0 - ul_val / 100;

意味着我减去我想要显示的百分比,例如30%(ul_val = 30)偏移量设置为 170% (1.7),但条形本身显示 30%,且颜色渐变平滑且正确。如果我的条形图上有 100%,它会计算2.0 - 1.0其值为 1(与正常情况一样,如图 1 中的第 2 条所示)。

我知道这听起来很令人困惑,所以这是我想要的图片:

ProgressBar with fitting gradient


实现此布局的第二种方法是将背景设置为渐变颜色,然后使用前景色为灰色,请记住进度条的值需要为

100 值

因为您将设置条形灰色区域的值,该值从 100% 开始(值 = 0 或条形图中没有灰色)并向 0% 移动(值 = 100 或整个条形为灰色)

enter image description here100% (value = 100 - %)

enter image description here99% (value = 100 - %)

enter image description here50% (value = 100 - %)

enter image description here0% (value = 100 - %)

在您的 MainPage.xaml.cs 中(或您需要调用它的任何地方)

var percentage = 75;
progressBar.Value = 100 - percentage;

在您的 MainPage.xaml 中

<ProgressBar x:Name="progressBar" HorizontalAlignment="Left" Height="80" Margin="-82,121,0,0" VerticalAlignment="Top" Width="270" RenderTransformOrigin="0.5,0.5" UseLayoutRounding="False" d:LayoutRounding="Auto"
                     Minimum="0" Maximum="100" Value="0" Foreground="Gray">
            <ProgressBar.Background>
                <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
                    <LinearGradientBrush.RelativeTransform>
                        <CompositeTransform CenterY="0.5" CenterX="0.5" Rotation="270"/>
                    </LinearGradientBrush.RelativeTransform>
                    <GradientStop Color="Lime" Offset="0"/>
                    <GradientStop Color="Red" Offset="1"/>
                </LinearGradientBrush>
            </ProgressBar.Background>
            <ProgressBar.RenderTransform>
                <CompositeTransform Rotation="90"/>
            </ProgressBar.RenderTransform>
        </ProgressBar>

您可能需要调整进度条的方向,以便其正确显示,上面的代码适用于垂直条,可用于燃油表等。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

c# XAML ProgressBar正确设置渐变填充 的相关文章

  • 如何在 C++ 中的文件末尾添加数据?

    我已按照网上的说明进行操作 此代码应该将输入添加到文件 数据库 的末尾 但当我检查时 数据会覆盖现有数据 请帮忙 这是我的代码 int main string name string address string handphone cou
  • 用 C++ 进行服装建模 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在编写一些软件 最终会绘制一个人体框架 可以配置各种参数 并且计划是在假人身上放置某种衣服 我研究
  • C++ 中本地类中的静态成员变量?

    我知道我们不能宣布static本地类中的成员变量 但其原因尚不清楚 那么请问有人可以解释一下吗 另外 为什么我们不能访问非static函数内部定义的变量 内部已经定义了局部类 直接在局部类成员函数中 在下面给出的代码中 int main i
  • 启动时出现 OData v4 错误:找不到段“Whatever”的资源

    我正在构建新的 v4 服务 一切进展顺利 直到我为新模型 实体添加了新控制器 并在启动站点进行测试运行时收到此错误 控制器似乎编码正确 就像其他控制器一样 控制器 CustomersOData 中的操作 GetFeed 上的路径模板 Cus
  • 如何将 #ifdef DEBUG 添加到 Xcode?

    我的项目中有一些代码永远不应该在发布版本中使用 但在测试时很有用 我想做这样的事情 ifdef DEBUG Run my debugging only code endif 在 Xcode 4 中哪里添加 DEBUG 设置 我尝试将其放入
  • 将内置类型转换为向量

    我的 TcpClient 类接受vector
  • 在新的浏览器进程中打开 URL

    我需要在新的浏览器进程中打开 URL 当浏览器进程退出时我需要收到通知 我当前使用的代码如下 Process browser new Process browser EnableRaisingEvents true browser Star
  • 获取 WPF 控件的所有附加事件处理程序

    我正在开发一个应用程序 在其中动态分配按钮的事件 现在的问题是 我希望获取按钮单击事件的所有事件 因为我希望删除以前的处理程序 我尝试将事件处理程序设置为 null 如下所示 Button Click null 但是我收到了一个无法分配 n
  • ASP.NET:获取自 1970 年 1 月 1 日以来的毫秒数

    我有一个 ASP NET VB NET 日期 我试图获取自 1970 年 1 月 1 日以来的毫秒数 我尝试在 MSDN 中寻找方法 但找不到任何东西 有谁知道如何做到这一点 从 NET 4 6 开始 该方法ToUnixTimeMillis
  • 将 Excel 导入到 Datagridview

    我使用此代码打开 Excel 文件并将其保存在 DataGridView 中 string name Items string constr Provider Microsoft Jet OLEDB 4 0 Data Source Dial
  • Rx 中是否有与 Task.ContinueWith 运算符等效的操作?

    Rx 中是否有与 Task ContinueWith 运算符等效的操作 我正在将 Rx 与 Silverlight 一起使用 我正在使用 FromAsyncPattern 方法进行两个 Web 服务调用 并且我想这样做同步地 var o1
  • 未定义的行为或误报

    我 基本上 在野外遇到过以下情况 x x 5 显然 它可以在早期版本的 gcc 下编译干净 在 gcc 4 5 1 下生成警告 据我所知 警告是由 Wsequence point 生成的 所以我的问题是 这是否违反了标准中关于在序列点之间操
  • 未经许可更改内存值

    我有一个二维数组 当我第一次打印数组的数据时 日期打印正确 但其他时候 array last i 的数据从 i 0 到 last 1 显然是一个逻辑错误 但我不明白原因 因为我复制并粘贴了 for 语句 那么 C 更改数据吗 I use g
  • 如何使用 watin 中的 FileUploadDialogHandler 访问文件上传对话框

    我正在使用 IE8 和 watin 并尝试通过我的网页测试上传文件 我不能简单地使用 set 方法设置上传文件 例如 ie FileUpload Find ById someId Set C Desktop image jpg 因为上传文本
  • 批量更新 SQL Server C#

    我有一个 270k 行的数据库 带有主键mid和一个名为value 我有一个包含中值和值的文本文件 现在我想更新表格 以便将每个值分配给正确的中间值 我当前的方法是从 C 读取文本文件 并为我读取的每一行更新表中的一行 必须有更快的方法来做
  • Visual Studio 中的测试单独成功,但一组失败

    当我在 Visual Studio 中单独运行测试时 它们都顺利通过 然而 当我同时运行所有这些时 有些通过 有些失败 我尝试在每个测试方法之间暂停 1 秒 但没有成功 有任何想法吗 在此先感谢您的帮助 你们可能有一些共享数据 检查正在使用
  • 私有模板函数

    我有一堂课 C h class C private template
  • 有人可以提供一个使用 Amazon Web Services 的 itemsearch 的 C# 示例吗

    我正在尝试使用 Amazon Web Services 查询艺术家和标题信息并接收回专辑封面 使用 C 我找不到任何与此接近的示例 所有在线示例都已过时 并且不适用于 AWS 的较新版本 有一个开源项目CodePlex http www c
  • 编译时“strlen()”有效吗?

    有时需要将字符串的长度与常量进行比较 例如 if line length gt 2 Do something 但我试图避免在代码中使用 魔法 常量 通常我使用这样的代码 if line length gt strlen Do somethi
  • 英特尔 Pin 与 C++14

    问题 我有一些关于在 C 14 或其他 C 版本中使用英特尔 Pin 的问题 使用较新版本从较旧的 C 编译代码很少会出现任何问题 但由于 Intel Pin 是操作指令级别的 如果我使用 C 11 或 C 14 编译它 是否会出现任何不良

随机推荐

  • 允许 python 子进程的多个输入

    我有一个与几年前提出的问题几乎相同的问题 有两个输入的 Python 子进程收到了一个答案但没有实施 我希望这份报告可以帮助我和其他人澄清问题 如上所述 我想使用 subprocess 来包装一个需要多个输入的命令行工具 特别是 我想避免将
  • sizeof() 如何通过引用参数传递

    我将一个数组传递给函数并尝试查找该数组的长度 但结果却出乎意料 有人可以解释一下吗 int main int array 10 0 func array return 0 void func int arr printf length of
  • 使用 Vue.js 在 .then 函数中输入错误

    我有一个获取请求来检测用户是否是管理员 我的问题是我想使用显示一个按钮v if检查它是真是假 默认情况下该值设置为false Data 然后我们得到了按钮 And the then in beforeCreate 你需要使用一个箭头函数以保
  • Go 中的 int 字符串? [复制]

    这个问题在这里已经有答案了 我真的认为这会很简单 string myInt 看来不是 我正在编写一个函数 它接受一个整数切片 并将每个整数附加到一个字符串中 并在每个整数之间添加一个分隔符 这是我的代码 func xis Int16Slic
  • 为什么栈是有界的?

    在我使用过的任何平台上 堆栈大小始终是有限的 您必须在某个时刻 在程序启动之前 指定最大堆栈大小 并且它是预先分配的 为什么堆栈不能是驻留在堆内存中的链表 那么它几乎是无限的 它是当今所有计算机体系结构的固有属性吗 我的问题与任何特定的编程
  • C 程序 77% 的时间都花在 _platform_memmove$VARIANT$Haswell 中 [已关闭]

    Closed 这个问题需要调试细节 目前不接受答案 我正在分析一些用 C 编写的数字代码 分析器是 Instruments 编译器是clang在 Mac OSX 10 11 6 上 多达 77 3 的运行时间花费在 platform mem
  • Java ProcessBuilder 具有多个带空格的参数

    我知道关于从 java 执行进程有很多已解决的问题 但我无法使用提供的答案解决我的问题 我正在尝试从 java 应用程序创建 postgresql 数据库备份 我使用以下代码 ProcessBuilder probuilder new Pr
  • 针对特定用户的 Firebase 数据库规则

    我有一个数据库 我需要对所有用户进行读取访问 并且 在用户运行的应用程序脚本中调用时的写访问权限 电子邮件受保护 我的 firebase 结构是 ABC AAA1 date ABC AAA2 date ABC AAA3 date ABC A
  • 滞后时间序列数据

    我正在寻找建立一个用于预测的神经网络模型 我试图让我的数据采用图像中显示的格式 以便模型可以根据 2 天前 1 天前 今天 的先前值进行预测 这些值将在第二天针对下一个预测进行调整 例如如图所示 第一次输入的 1 天前变为第二次输入的 2
  • ExtJS:Grid 和 Form 之间的两种方式绑定

    我正在尝试学习 ExtJS 但有点卡在一个地方 我想创建一个顶部有网格 底部有表单的屏幕 我想将它们彼此绑定 以便当我从网格中选择一行时 会填充表单字段 网格中具有相同的记录 并且当我更改网格或表单中的任何内容时 另一侧也会更新 到目前为止
  • 动态地将内容添加到线性布局?

    例如 如果我定义了一个方向为垂直的根线性布局 main xml
  • Java新手需要数据库连接方面的帮助

    我是 Java 新手 甚至是 Java 数据库连接新手 当我将其放入 Main 类中时 我已成功创建数据库连接并查询表 现在我已将其移至名为 Connection 的新类中 但出现错误 package lokate import java
  • 开发蓝牙 (AVRCP 1.4) iPhone 应用程序需要了解哪些规格

    我是 iPhone 开发新手 我将参与一个项目 其中我必须开发一个支持蓝牙的 iPhone 应用程序来控制车辆音响和 DVD 播放器 该车辆配有物理遥控器 IR 该项目的目的是用支持蓝牙的 iPhone 应用程序取代 IR 以控制 IR 的
  • Lambda 捕获和参数同名 - 谁隐藏了另一个? (clang 与 gcc)

    auto foo You re using g auto compiler detector foo auto foo std puts foo compiler detector You re using clang 铿锵 3 6 0和较
  • 合并“NSManagedObjectContextDidSaveNotification”后,NSFetchedResultsController 未显示所有结果

    我有一个 NSFetchedResultsController 它使用谓词获取对象 isTrash NO 大多数情况下 这会按预期工作 但是当对象未被破坏时 获取的结果控制器不会获取未被破坏的对象 出了什么问题 发生这种情况的原因是由于me
  • ES 模块导入不起作用

    我正在尝试制作普通 ES 导入导出的简单示例 索引 js main js import foo from mathModule console log foo mathModule js export const foo Math sqrt
  • 使用具有不同行结束样式的 m 标志来匹配行结束位置

    我试图用标签包装以 开头的每一行 尝试实现类似 GitHub Stackoverflow 的文本格式化语法 这就是我得到的 value preg replace m p 1 p value 经过谷歌搜索很长一段时间后 这似乎是正确的解决方案
  • C:“传递不兼容的指针类型”警告很重要?/将多维数组传递给函数

    我想编写一个带有指向多维数组的指针的函数 例如 include
  • Guy Yollin 的 QuantStrat I 讲座问题

    我一直在听 Guy 的 Quantstrat 讲座 下面的链接 在反复尝试重新执行代码后 我遇到了一些初始错误 这些错误导致讲座中的大部分后续代码无法运行 这是代码 从讲座中复制并进行了很小的重新安排 rm list ls all TRUE
  • c# XAML ProgressBar正确设置渐变填充

    如何设置a的渐变ProgressBar在XAML中动态填充 目前它是这样的 两个进度条的代码