WPF ProgressBar 样式
2016-05-20 18:14
423 查看
希望写个ProgressBar的样式,在progress value不同的时候显示不同的颜色的progress bar
1.写转换器
2.创建样式
3.设置progress bar的style
progress bar.png:
progress bar_1.png:
progress bar_2.png:
progress bar_3.png:
------------------------------------------------------------------
如果仅仅是希望创建一个扁平化的progress bar,那么连转换器都可以不用写
1.写转换器
public class ProgressBarValueConverter : IValueConverter { public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { double v = (double)value; string imageUri = "../Images/progress bar_1.png"; if (v > 80) { imageUri = "../Images/progress bar_3.png"; } else if (v > 50) { imageUri = "../Images/progress bar_2.png"; } BitmapImage img = new BitmapImage(new Uri(imageUri, UriKind.Relative)); return img; } public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { throw new NotImplementedException(); } }
2.创建样式
<c:ProgressBarValueConverter x:Key="pbConverter"/> <Style x:Key="ProgressBarStyle" TargetType="{x:Type ProgressBar}"> <Setter Property="Template"> <Setter.Value> <ControlTemplate> <Grid> <Image Name="PART_Track" Source="../Images/progress bar.png" HorizontalAlignment="Left" Stretch="Fill"/> <Image Name="PART_Indicator" Source="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Value, Converter={StaticResource pbConverter}}" HorizontalAlignment="Left" Stretch="Fill"/> </Grid> </ControlTemplate> </Setter.Value> </Setter> </Style>
3.设置progress bar的style
progress bar.png:
progress bar_1.png:
progress bar_2.png:
progress bar_3.png:
------------------------------------------------------------------
如果仅仅是希望创建一个扁平化的progress bar,那么连转换器都可以不用写
<Style x:Key="FlatProgressBar" TargetType="{x:Type ProgressBar}"> <Setter Property="Template"> <Setter.Value> <ControlTemplate> <Grid> <Image Name="PART_Track" Source="../Images/Flat Progress Bar.png" HorizontalAlignment="Left" Stretch="Fill"/> <Image Name="PART_Indicator" Source="../Images/Flat Progress Bar_1.png" HorizontalAlignment="Left" Stretch="Fill"/> </Grid> </ControlTemplate> </Setter.Value> </Setter> </Style>
Flat Progress Bar.png:
Flat Progress Bar_1.png:
相关文章推荐
- CSS强制性换行
- css3的转换效果过渡效果动画效果和列
- HTML+CSS基础(五):表单标签,与用户交互
- JS动态加载CSS和JS
- CSS溢出处理
- DIV+CSS 清除浮动
- Flexbox布局(1)
- CSS——display显示属性
- CSS自适应布局总结
- QPushButton 的样式表代码
- 一句命令快速合并 JS、CSS
- CSS教程之div垂直居中的多种方法
- [转]CSS 模块
- HTML+CSS基础(四):认识html标签
- 常用CSS样式
- gulp入门-压缩js/css文件(windows)
- css3中的一些特别的单位:em、rem、vw、vh、vmin、vmax
- css笔记--web端小于1px设计的处理方法
- 添加过滤器后登录页面样式消失的问题
- css引入外部字体