首页 > 其他分享 >推荐一个WPF仪表盘开源控件

推荐一个WPF仪表盘开源控件

时间:2024-05-22 23:22:09浏览次数:30  
标签:控件 硬件 开源 监控 仪表盘 WPF

 前段时间,做服务器端监控系统,为了界面好看,采用WPF。硬件相关监控,比如CPU、内存等,想用仪表盘控件。网上找了很多这种控件,基本上都是第三方商业控件(虽然很漂亮,不过得money...)。最后在CodeProject上找到了一款还不错的开源的仪表盘控件CircularGauge

  用了下该控件,感觉还不错,由于很多参数(比如圆盘半径大小、指针大小等等),进行大小调整时需要多试几次才能达到想要的效果。由于项目中监控重点是数据库相关内容,硬件监控只是简单点缀,显得好看而已,没有调的比较大。效果图如下:

复制代码
<UserControl x:Class="Monitor.UC.UCGauge"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
             mc:Ignorable="d" 
             d:DesignHeight="300" d:DesignWidth="300"
             xmlns:gauge="clr-namespace:CircularGauge;assembly=CircularGauge" Loaded="UserControl_Loaded">
    <Grid>
        <gauge:CircularGaugeControl x:Name="myGauge1" Grid.Column="0" Grid.Row="0" 
                                        Radius="75" 
                                        ScaleRadius="55" 
                                        ScaleStartAngle="120" 
                                        ScaleSweepAngle="300"
                                        PointerLength="35" 
                                        PointerCapRadius="15" 
                                        MinValue="0" 
                                        MaxValue="100" 
                                        MajorDivisionsCount="10" 
                                        MinorDivisionsCount="5" 
                                        ImageSize="20,30"
                                        RangeIndicatorThickness="4"
                                        RangeIndicatorRadius="56"
                                        RangeIndicatorLightRadius="5"
                                        RangeIndicatorLightOffset="40"
                                        ScaleLabelRadius="45"
                                        ScaleLabelSize="18,10"
                                        ScaleLabelFontSize="8"
                                        ScaleLabelForeground="LightGray"
                                        MajorTickSize="10,3"
                                        MinorTickSize="3,1"
                                        MajorTickColor="LightGray"
                                        MinorTickColor="LightGray"
                                        ImageOffset="-22"
                                        GaugeBackgroundColor="Black"
                                        PointerThickness ="16"
                                        OptimalRangeStartValue="30"
                                        OptimalRangeEndValue="90" 
                                        DialTextOffset="20" 
                                        DialTextColor="Black" 
                                        BelowOptimalRangeColor="Green" OptimalRangeColor="Yellow">

        </gauge:CircularGaugeControl>
    </Grid>
</UserControl>
复制代码 复制代码
<UserControl xmlns:my="clr-namespace:Monitor.UC"  x:Class="Monitor.UC.UCMonitor"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
             mc:Ignorable="d" 
             d:DesignHeight="300" d:DesignWidth="300">
    <Grid Margin="0,2,0,0">
        <!--定义框-->
        <Grid.RowDefinitions>
            <RowDefinition Height="40"/>
            <RowDefinition Height="*"/>
        </Grid.RowDefinitions>

        <Image Style="{StaticResource HardwareImage}" Grid.Row="0" Margin="2,0,0,0"></Image>
        <Label Style="{StaticResource BlackContentText}" Content="硬件监控" Grid.Row="0"  Margin="20,5,2,2"></Label>

        <Grid Grid.Row="1" Style="{StaticResource HardwareBackgroundGrid}">
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="0.5*"></ColumnDefinition>
                <ColumnDefinition Width="0.5*"></ColumnDefinition>
            </Grid.ColumnDefinitions>
            <my:UCGauge  x:Name="ucGaugeCUP" Grid.Column="0"/>
            <my:UCGauge x:Name="ucGaugeMemory" Grid.Column="1"/>
        </Grid>
    </Grid>
</UserControl>
复制代码

 

  分类: WPF

标签:控件,硬件,开源,监控,仪表盘,WPF
From: https://www.cnblogs.com/webenh/p/18207343

相关文章

  • WPF插件之 - PropertyChanged.Fody使用详解
    总目录文章目录总目录一、PropertyChanged.Fody是什么?二、PropertyChanged.Fody的安装三、PropertyChanged.Fody的功能1.特性1实现属性通知的功能2通知其他属性4不进行属性通知3指定属性更改时将调用的方法5设置当前属性依赖的属性6不检查是否相等7DoNotSetChangedAttribu......
  • wpf 双屏显示问题
    //在WPF中处理双屏显示问题,通常需要确保应用程序能够识别两个显示器,并在每个显示器上正确渲染内容。以下是一个简化的示例,展示如何在WPF应用程序中设置窗口,使其跨越两个显示器: usingSystem;usingSystem.Windows;usingSystem.Windows.Forms;publicpartialclassMa......
  • WPF多显示器问题 - WindowState
    标签 wpf multiple-monitors一段时间以来,我一直试图让我的WPF应用程序跨越多个监视器,并且几乎可以正常工作。当我设置以下行时,问题似乎出现了:win1.WindowState=WindowState.Maximized这会导致应用程序仅跨越主屏幕。我的代码如下:publicpartialclassApp:App......
  • C#WPF的多屏显示问题
    如果想让窗口在第二个屏幕中显示publicMainWindow(){InitializeComponent();Screen[]_screens=Screen.AllScreens;Screens=Screen.AllScreens[1];System.Drawing.Rectanglerect=s.WorkingArea;......
  • 这个开源投屏工具太爽了 - scrcpy
    手机投屏到电脑不少人都会用到的功能。除非手机和电脑同一品牌才会有比较好的体验(例如:华为、荣耀、苹果等)。我用的手机和笔记本非一个品牌,相信不少人跟我一样。这个时候就要找第三方投屏工具,有些要收费,而且感觉很重。直到我发现了scrcpy,已经在使用scrcpy的同学可以默默退出了......
  • wpf 动画显示隐藏_[UWP]用Win2D和CompositionAPI实现文字的发光效果,并制作动画
    weixin_39880899于2020-12-1109:26:23发布阅读量521 收藏点赞数文章标签: wpf动画显示隐藏  1.成果 献祭了周末的晚上,成功召唤出了上面的番茄钟。正当我在感慨“不愧是Shadow大人,这难道就是传说中的五彩斑斓的黑?”“那才不是什么阴影效果,那是......
  • WPF炫酷UI及动画
        偶然看见了一张图,感觉挺好看的,花了点时间将他转化成了我代码仓库的一部分。虽然不难但也费时间。其中除了背景是百度的一张底图,其他所有内容均通过WPF的Path、Line、TextBlock、Border以及DoubleAnimation来实现。效果如下:​纯黑色背景也还蛮好看的。​   ......
  • 开源Blazor UI组件库精选:让你的Blazor项目焕然一新!
    今天给大家推荐一些开源、美观的BlazorUI组件库,这些优秀的开源框架和项目不仅能够帮助开发者们提高开发效率,还能够为他们的项目带来更加丰富的用户体验。注:排名不分先后,都是十分优秀的开源框架和项目​AntDesignBlazorAntDesignBlazor是一个基于Blazor的前端UI组件库,......
  • Wpf UI框架 MaterialDesign 的使用记录
    近期公司有桌面客户端的开发需求,并且对样式和界面反馈有一定的要求,对比各种开源UI框架后确认使用MaterialDesign。1、引入框架MaterialDesignThemes,注意下对应的版本号,我用的2.6.0的。原因嘛视频教程就是这个版本。  2、App.xaml中引用样式文件注释下面的可以先不用加,后面......
  • WPF 给类库设置设计时使用的资源字典
    WPF给类库设置设计时使用的资源字典 在开发多语言版本时,我将界面显示的文本保存在语言资源zh.xaml和en.xaml中,但程序启动,加载语言资源时是外部的配置文件决定的,因此语言资源我无法添加在App.xaml文件中,而开发单个XAML界面时,设计器将会因为找不到资源文件的存在,而拿不到资......