温度计

 <ControlTemplate x:Key="templateThermometer"
                 TargetType="{x:Type ProgressBar}">

            <!-- Define two brushes for the thermometer liquid -->
            <ControlTemplate.Resources>
                <LinearGradientBrush x:Key="brushStem"
                             StartPoint="0 0" EndPoint="0 1" >
                    <GradientStop Offset="0" Color="Red" />
                    <GradientStop Offset="0.3" Color="Pink" />
                    <GradientStop Offset="1" Color="Red" />
                </LinearGradientBrush>

                <RadialGradientBrush x:Key="brushBowl"
                             GradientOrigin="0.3 0.3">
                    <GradientStop Offset="0" Color="Pink" />
                    <GradientStop Offset="1" Color="Red" />
                </RadialGradientBrush>
            </ControlTemplate.Resources>

            <!-- Two-row Grid divides thermometer into stem and bowl -->
            <Grid>
                <Grid.RowDefinitions>
                    <RowDefinition Height="*" />
                    <RowDefinition Height="Auto" />
                </Grid.RowDefinitions>

                <!-- Second grid divides stem area in three columns -->
                <Grid Grid.Row="0">
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="25*" />
                        <ColumnDefinition Width="50*" />
                        <ColumnDefinition Width="25*" />
                    </Grid.ColumnDefinitions>

                    <!-- This border displays the stem -->
                    <Border Grid.Column="1" BorderBrush="SteelBlue"
                    BorderThickness="3 3 3 0"
                    CornerRadius="6 6 0 0" >
                        <Grid x:Name="Root">
                            <!-- Track and Indicator elements -->
                            <Rectangle Name="PART_Track"/>
                            <Border CornerRadius="0 6 6 0" Name="PART_Indicator" HorizontalAlignment="Left" Background="{StaticResource brushStem}"/>
                        </Grid>

                    </Border>
                </Grid>

                <!-- The bowl outline goes in the main Grid second row -->
                <Ellipse Grid.Row="1"
                 Width="{TemplateBinding Width}"
                 Height="{TemplateBinding Width}"
                 Stroke="SteelBlue" StrokeThickness="3" />

                <!-- Another grid goes in the same cell -->
                <Grid Grid.Row="1" >
                    <Grid.RowDefinitions>
                        <RowDefinition Height="50*" />
                        <RowDefinition Height="50*" />
                    </Grid.RowDefinitions>

                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="25*" />
                        <ColumnDefinition Width="50*" />
                        <ColumnDefinition Width="25*" />
                    </Grid.ColumnDefinitions>

                    <!-- This is to close up the gap between bowl and stem -->
                    <Border Grid.Row="0" Grid.Column="1"
                    BorderBrush="SteelBlue"
                    BorderThickness="3 0 3 0"
                    Background="{StaticResource brushStem}" />
                </Grid>

                <!-- Another ellipse to fill up the bowl -->
                <Ellipse Grid.Row="1"
                 Width="{TemplateBinding Width}"
                 Height="{TemplateBinding Width}"
                 Stroke="Transparent" StrokeThickness="6"
                 Fill="{StaticResource brushBowl}" />
            </Grid>
            <ControlTemplate.Triggers>
                <Trigger Property="Orientation" Value="Vertical">
                    <Setter Property="LayoutTransform" TargetName="Root">
                        <Setter.Value>
                            <RotateTransform Angle="-90"/>
                        </Setter.Value>
                    </Setter>
                </Trigger>
            </ControlTemplate.Triggers>
        </ControlTemplate>
 <ControlTemplate x:Key="templateThermometer"
                 TargetType="{x:Type ProgressBar}">

            <!-- Define two brushes for the thermometer liquid -->
            <ControlTemplate.Resources>
                <LinearGradientBrush x:Key="brushStem"
                             StartPoint="0 0" EndPoint="0 1" >
                    <GradientStop Offset="0" Color="Red" />
                    <GradientStop Offset="0.3" Color="Pink" />
                    <GradientStop Offset="1" Color="Red" />
                </LinearGradientBrush>

                <RadialGradientBrush x:Key="brushBowl"
                             GradientOrigin="0.3 0.3">
                    <GradientStop Offset="0" Color="Pink" />
                    <GradientStop Offset="1" Color="Red" />
                </RadialGradientBrush>
            </ControlTemplate.Resources>

            <!-- Two-row Grid divides thermometer into stem and bowl -->
            <Grid>
                <Grid.RowDefinitions>
                    <RowDefinition Height="*" />
                    <RowDefinition Height="Auto" />
                </Grid.RowDefinitions>

                <!-- Second grid divides stem area in three columns -->
                <Grid Grid.Row="0">
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="25*" />
                        <ColumnDefinition Width="50*" />
                        <ColumnDefinition Width="25*" />
                    </Grid.ColumnDefinitions>

                    <!-- This border displays the stem -->
                    <Border Grid.Column="1" BorderBrush="SteelBlue"
                    BorderThickness="3 3 3 0"
                    CornerRadius="6 6 0 0" >
                        <Grid x:Name="Root">
                            <!-- Track and Indicator elements -->
                            <Rectangle Name="PART_Track"/>
                            <Border CornerRadius="0 6 6 0" Name="PART_Indicator" HorizontalAlignment="Left" Background="{StaticResource brushStem}"/>
                        </Grid>

                    </Border>
                </Grid>

                <!-- The bowl outline goes in the main Grid second row -->
                <Ellipse Grid.Row="1"
                 Width="{TemplateBinding Width}"
                 Height="{TemplateBinding Width}"
                 Stroke="SteelBlue" StrokeThickness="3" />

                <!-- Another grid goes in the same cell -->
                <Grid Grid.Row="1" >
                    <Grid.RowDefinitions>
                        <RowDefinition Height="50*" />
                        <RowDefinition Height="50*" />
                    </Grid.RowDefinitions>

                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="25*" />
                        <ColumnDefinition Width="50*" />
                        <ColumnDefinition Width="25*" />
                    </Grid.ColumnDefinitions>

                    <!-- This is to close up the gap between bowl and stem -->
                    <Border Grid.Row="0" Grid.Column="1"
                    BorderBrush="SteelBlue"
                    BorderThickness="3 0 3 0"
                    Background="{StaticResource brushStem}" />
                </Grid>

                <!-- Another ellipse to fill up the bowl -->
                <Ellipse Grid.Row="1"
                 Width="{TemplateBinding Width}"
                 Height="{TemplateBinding Width}"
                 Stroke="Transparent" StrokeThickness="6"
                 Fill="{StaticResource brushBowl}" />
            </Grid>
            <ControlTemplate.Triggers>
                <Trigger Property="Orientation" Value="Vertical">
                    <Setter Property="LayoutTransform" TargetName="Root">
                        <Setter.Value>
                            <RotateTransform Angle="-90"/>
                        </Setter.Value>
                    </Setter>
                </Trigger>
            </ControlTemplate.Triggers>
        </ControlTemplate>
时间: 2024-10-08 21:36:32

温度计的相关文章

Silverlight自定义控件开发:温度计

由于在实际项目中需要实时显示采集到的空气温湿度,土壤温湿度值,需要用比较显眼并且清楚明了的方式来展示,这里我们准备采用温度计的方式来进行.一方面是因为大家都熟悉这个,知道怎么去看:同时,温度计本身也比较好封装.以下就是封装好的效果及其调用代码(水银柱和刻度线都是有动画效果的,看上去比较逼真): 调用代码如下: 1: var data = new DataNotify(); 2: data.MaxData = 30; 3: data.MinData = -15; 4:   5: data.MinR

[沫沫金原创]jQuery温度计,支持摄氏度华氏度同时展示

特色 纯jQuery+Css原生,无任何第三方.同时支持摄氏度.华氏度同时显示,并可随意定义温度计颜色,例如小于10度绿色.小于20度红色等等. 同时支持摄氏度.华氏度 支持自定义温度计颜色 支持自定义温度计款式(Psd原图提供) 以上,谢谢.沫沫金祝你工作一路顺,步步高! 提供源码下载http://down.51cto.com/data/2317776

HslControls组件库 工业控件库 曲线控件 时间控件 管道控件 温度计控件 阀门控件 传送带控件 进度条控件 电池控件 数码管控件等等

本篇博客主要对 HslControls 组件做一个大概的总览介绍,更详细的内容可以参照页面里的子链接,还有github上的源代码,然后进行相关的学习,和使用. Prepare 先从nuget下载到组件,然后就可以使用组件里的各种组件信息了. 在Visual Studio 中的NuGet管理器中可以下载安装,也可以直接在NuGet控制台输入下面的指令安装: Install-Package HslControls NuGet安装教程  http://www.cnblogs.com/dathlin/p

Qt编写自定义控件5-柱状温度计

前言 柱状温度计控件,可能是很多人练手控件之一,基本上都是垂直方向展示,底部一个水银柱,中间刻度尺,刻度尺可以在左侧右侧或者两侧都有,自适应分辨率改动,有时候为了美观效果,可能还会整个定时器来实现动画效果,开启动画效果的缺点就是CPU占用会比较高,前阵子有个好友(贾文涛-涛哥)向我推荐了一个opengl绘制的开源东西,QNanoPainter,东西是个好东西,我个人的理解是直接封装了opengl绘制的qpainter,可以使得绘制全部走GPU,这样就可以大大减轻CPU的负担,非常方便,我自己试了

温度计控件----------WinForm控件开发系列

/// <summary> /// 温度计控件 /// </summary> [ToolboxItem(true)] [DefaultProperty("Value")] [DefaultEvent("ValueChanged")] [Description("温度计控件")] public partial class ThermometerExt : Control { public delegate void Even

CC2540开发板学习笔记(六)&mdash;&mdash;AD控制(自带温度计)

一.实验目的 将采集的内部温度传感器信息通过串口发送到上位机 二.实验过程 1.寄存器配置 ADCCON1(0XB4)ADC控制寄存器1 BIT7:EOC   ADC结束标志位0:AD转换进行中                     1:AD转换完成   BIT6:ST     手动启动AD转换0:关闭                                  1:自动AD转换(需要BIT5:BIT4=11)   BIT5:BIT4   AD转换启动方式00:外部触发01:全速转换,不

改写控件之《自定义View,让你整个Layout像横向温度计一般》

转载请注明出处:王亟亟的大牛之路 恐惧自我受苦的人,已经正因自我的恐惧在受苦. 我们平时的进度条一般是下面这样子的 今天上的一个效果是这样的(初始化) 动起来后是这样的 给与用户一种新的体验吧,贴下项目结构 自定义控件:ProgressLayout 配套的监听事件:ProgressLayoutListener 适配器:RecylerListAdapter 对象类:Track(实际生产应该是 Json对象之类的) OK,废话不多说,上代码 public class Track { private

Arduino LM35温度计

使用Arduino读取LM35温度传感器的值算出当前温度显示到LCD上: 关于控制LCD的显示前一篇文章中已经介绍了http://www.cnblogs.com/Zhang-Shangyu/p/5249206.html,这里介绍一下LM35温度传感器 LM35芯片实物图 下图来自http://www.arduino.cn/thread-1055-1-1.html 硬件连接: LCD连接方式同前一篇文章http://www.cnblogs.com/Zhang-Shangyu/p/5249206.h

HTML5实现仪表盘、温度计等插件实用源码