WPF实现斜纹圆角进度条样式_weixin_30566111的博客-程序员宅基地

原文: WPF实现斜纹圆角进度条样式

运行效果:

进度条样式:

<!--进度条样式-->
<LinearGradientBrush x:Key="ProgressBar.Progress" StartPoint="0,-0.15" EndPoint="0.04,0.04" SpreadMethod="Reflect">
    <GradientStop Color="Transparent" Offset="0.5"/>
    <GradientStop Color="#0530A0" Offset="0.5"/>
</LinearGradientBrush>
<SolidColorBrush x:Key="ProgressBar.Background" Color="#06276E"/>
<Style x:Key="ProgressBarStyle" TargetType="{x:Type ProgressBar}">
    <Setter Property="Foreground" Value="{StaticResource ProgressBar.Progress}"/>
    <Setter Property="Background" Value="{StaticResource ProgressBar.Background}"/>
    <Setter Property="BorderThickness" Value="0"/>
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="{x:Type ProgressBar}">
                <Grid x:Name="TemplateRoot">
                    <VisualStateManager.VisualStateGroups>
                        <VisualStateGroup x:Name="CommonStates">
                            <VisualState x:Name="Determinate"/>
                            <VisualState x:Name="Indeterminate">
                                <Storyboard RepeatBehavior="Forever">
                                    <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleX)" Storyboard.TargetName="Animation">
                                        <EasingDoubleKeyFrame KeyTime="0" Value="0.25"/>
                                        <EasingDoubleKeyFrame KeyTime="0:0:1" Value="0.25"/>
                                        <EasingDoubleKeyFrame KeyTime="0:0:2" Value="0.25"/>
                                    </DoubleAnimationUsingKeyFrames>
                                    <PointAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransformOrigin)" Storyboard.TargetName="Animation">
                                        <EasingPointKeyFrame KeyTime="0" Value="-0.5,0.5"/>
                                        <EasingPointKeyFrame KeyTime="0:0:1" Value="0.5,0.5"/>
                                        <EasingPointKeyFrame KeyTime="0:0:2" Value="1.5,0.5"/>
                                    </PointAnimationUsingKeyFrames>
                                </Storyboard>
                            </VisualState>
                        </VisualStateGroup>
                    </VisualStateManager.VisualStateGroups>
                    <Border BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" CornerRadius="20" Background="{TemplateBinding Background}"/>
                    <Rectangle x:Name="PART_Track" RadiusX="20" RadiusY="20"/>
                    <Grid x:Name="PART_Indicator" ClipToBounds="true" HorizontalAlignment="Left">
                        <Rectangle x:Name="Indicator" Fill="{TemplateBinding Foreground}" RadiusX="20" RadiusY="20"/>
                        <Rectangle x:Name="Animation" Fill="{TemplateBinding Foreground}" RenderTransformOrigin="0.5,0.5" RadiusX="20" RadiusY="20">
                            <Rectangle.RenderTransform>
                                <TransformGroup>
                                    <ScaleTransform/>
                                    <SkewTransform/>
                                    <RotateTransform/>
                                    <TranslateTransform/>
                                </TransformGroup>
                            </Rectangle.RenderTransform>
                        </Rectangle>
                    </Grid>
                </Grid>
                <ControlTemplate.Triggers>
                    <Trigger Property="Orientation" Value="Vertical">
                        <Setter Property="LayoutTransform" TargetName="TemplateRoot">
                            <Setter.Value>
                                <RotateTransform Angle="-90"/>
                            </Setter.Value>
                        </Setter>
                    </Trigger>
                    <Trigger Property="IsIndeterminate" Value="true">
                        <Setter Property="Visibility" TargetName="Indicator" Value="Collapsed"/>
                    </Trigger>
                </ControlTemplate.Triggers>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

控件xaml:

<ProgressBar x:Name="progressBar" Height="40" Margin="100,0,100,0" Style="{StaticResource ProgressBarStyle}" Value="60" Maximum="100" Minimum="0"></ProgressBar>

 

posted on 2019-04-16 14:33 NET未来之路 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/lonelyxmas/p/10716917.html

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_30566111/article/details/98673267

智能推荐

redis cluster 4.0.9 之四: redis-trib.rb add-node-程序员宅基地

os: ubuntu 16.04redis:4.0.9ruby:2.4.4ip规划192.168.0.101 7000,7001,7002192.168.0.102 7000,7001,7002192.168.0.103 7000,7001,7002现在加三个redis实例192.168.0.101 7003192.168.0.102 7003192.168.0.103 700..._redis-trib.rb add-node

Lua程序设计-元表元方法_c++ lua __pairs 元表-程序员宅基地

--元表和元方法--Lua中每一个值都可以有元表 Lua语言中 只能为表设置元表 如果为其他类型设置 需要通过C代码或者调试库完成--下面设置 获取元表操作local t={}print(getmetatable(t))local t1={}setmetatable(t,t1)print(getmetatable(t))print(getmetatable(t) == t1)..._c++ lua __pairs 元表

omv系统mysql_OMV中mysql配置文件my.cnf-程序员宅基地

搜了好多,都不成功,最后找到配置文件在/etc/mysql/mariadb.conf.d/ 50-server.cnf默认datadir = /var/lib/mysql停止mysqlservice mysql stop复制数据存放文件到U盘cp -a /var/lib/mysql /srv/dev-disk-by-label-XXXXX实际目录/mysqldata修改配置文件:vi /etc..._omv系统编辑系统的配置文件

树莓派裸核程序开发 —— 从汇编到第一个C语言程序-程序员宅基地

1.前言本人采用的树莓派是Raspberry 1B+型, CPU核心为BCM2835, ARM1176JZF-S内核,平常大家可能习惯了使用树莓派搞一些DIY,有意思的电子设计,本人使用树莓派的初衷并不是这样,我准备将它作为我学习嵌入式驱动程序开发的平台,至于选择这个的原因只有一个:便宜。市面上形形色色的开发板,价格高昂不说,配套的硬件资源其实就那么几样,按键、led、蜂鸣器、液晶屏、网口、串...

git常用命令总结_gi t常用命令-程序员宅基地

很多程序员新手都知道GitHub代码托管,但是想学习GitHub却感觉好难,因为GitHub没有传统的上传下载按钮,也不像服务器那样子用FTP传输文件,了解深入一点,就发现没有git基础就根本不会用GitHub。如果简单在百度搜git,也容易被一大堆新概念、新名词吓住了,从而放弃了学习神器Git的机会。笔者我最近做的一个多人合作项目需要用到Git版本控制,于是我花了两天研究和运用了一下Git,发现_gi t常用命令

html多个div层叠,DIV重叠 CSS让DIV层叠 两个DIV或多个DIV顺序重叠加 2-程序员宅基地

DIV重叠 CSS让DIV层叠 两个DIV或多个DIV顺序重叠加DIV重叠 CSS让DIV层叠、叠加,CSS让两个DIV或多个DIV按顺序重叠叠加篇让DIV重叠并按想要顺序重叠需要CSS来实现,即CSS绝对定位进行实现。重叠样式需要主要CSS样式解释1、z-index重叠顺序属性配合的样式3、background为了观察效果,我们对不同DIV设置不同背景颜色进行区别接下来我们为大家奉上DIV按自己..._html 叠加div层

随便推点

android string数字字符串如何使用科学计数法,C#实现把科学计数法(E)转化为正常数字值...-程序员宅基地

C#实现把科学计数法(E)转化为正常数字值1.字符串值中包含E等科学计数法,比如12E-2,需要进行转化为普通数值0.12,2.转化函数如下:复制代码 代码如下:private Decimal ChangeDataToD(string strData){Decimal dData = 0.0M;if (strData.Contains("E")){dData = Convert.ToDecimal..._android 科学计数法 e

Android开发~android.view.WindowManager$BadTokenException: Unable to add window -- token android.os....-程序员宅基地

如题,今天开发遇到一个问题,使用Dialog的时候遇到一个异常,信息如下:android.view.WindowManager$BadTokenException: Unable to add window -- token android.os.BinderProxy@406ab4c8 is not valid; is your activity running?大概就是我弹出dialog的时候所

关于WPF和Windows Form的区别理解(一)-程序员宅基地

最近项目要上线,处于紧张的测试中,一整天都在盯着电脑屏幕上那些晃动的波形做测试,excel中记满了密密麻麻的测试数据,看得眼睛都疼了。把眼睛从电脑屏幕上移开,实在是看不下去了。可上班时间,又不能无所事事,所以一边让电脑中的测试程序运行着,自己则拿起桌上的《深入浅出WPF》看起来。看书应该比看电脑会让眼睛舒服点吧。因为最近做了比较多的自定义控件,对控件比较感兴趣,相对其有深入的了解,所以就直接翻

pytorch---f.dropout-程序员宅基地

作者:雷杰链接:https://www.zhihu.com/question/67209417/answer/302434279来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 刚踩的坑, 差点就哭出来了TT. --- 我明明加了一百个dropout, 为什么结果一点都没变 使用F.dropout ( nn.functional.dropout )..._f.dropout

matlab求点介数程序,matlab_bgl 一个很有用的计算网络中每个节点介数的程序,对 分析 Cloud Computing 云 266万源代码下载- www.pudn.com...-程序员宅基地

文件名称: matlab_bgl下载 收藏√ [5 4 3 2 1]开发工具: Others文件大小: 2098 KB上传时间: 2016-10-26下载次数: 0提 供 者: abing详细说明:一个很有用的计算网络中每个节点介数的程序,对网络分析很有用-Computing network a very useful medium for each node in the num..._matlab计算介数

springSecurity之java配置篇_java login接口不走spring security,怎么配置-程序员宅基地

一 前言本篇是springSecurity知识的入门第二篇,主要内容是如何使用java配置的方式进行配置springSeciruty,然后通过一个简单的示例自定义登陆页面,覆盖原有springSecurity默认的登陆页面;学习这篇的基础是 知识追寻者之前发布 过 的《springSecurity入门篇》公众号:知识追寻者知识追寻者(Inheriting the spirit of open source, Spreading technology knowledge;)二 java配置2._java login接口不走spring security,怎么配置