A WPF dashboard open-source control and a WPF dashboard open-source control are recommended.
Some time ago, the server-side monitoring system was designed to make the interface look good, using WPF. Hardware-related monitoring, such as CPU and memory, to use dashboard controls. I have found many such controls on the Internet, which are basically third-party commercial controls (although pretty, it's only money ...). Finally, we found a good open-source dashboard control CircularGauge on CodeProject.
With this control, I feel pretty good. Because many parameters (such as the disk radius and pointer size) need to be adjusted several times to achieve the desired effect. Because the focus of project monitoring is on database-related content, Hardware monitoring is just a simple embellishment and looks nice. It is relatively large without adjustment. As follows:
<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" Login = "5" Login = "40" scaleLabelRadius = "45" ScaleLabelSize = "18, 10" leading = "8" leading = "LightGray" MajorTickSize = "" MinorTickSize = "" MajorTickColor = "LightGray" MinorTickColor = "LightGray" imageOffset = "-22" GaugeBackgroundColor = "Black" PointerThickness = "16" OptimalRangeStartValue = "30" placement = "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">
<! -- definition box -- >
<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 = "hardware monitoring" grid. Row = "0" margin = "20,5,2,2" >
<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>