- .NET 8 WPF app with full MVVM architecture - One-click boost: CPU, RAM, GPU, network, services, timer resolution - Real-time system monitor (LibreHardwareMonitor) - Auto game detection (30+ games) - RAM optimizer with kernel-level cleanup - Network optimizer (TCP registry tweaks) - Service manager, process manager, shader cache cleaner - Desktop widget overlay - Debug log viewer - Custom dark gaming theme with trans pride colors - 84 unit tests (xUnit) - Inno Setup installer script - Landing page website
115 lines
6.2 KiB
XML
115 lines
6.2 KiB
XML
<UserControl x:Class="SpdUp.Views.MonitorView"
|
|
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
|
xmlns:conv="clr-namespace:SpdUp.Converters">
|
|
|
|
<UserControl.Resources>
|
|
<conv:PercentToColorConverter x:Key="PctColor" />
|
|
</UserControl.Resources>
|
|
|
|
<StackPanel>
|
|
<TextBlock Text="Live System Monitoring" FontSize="14" FontWeight="Bold"
|
|
Foreground="{StaticResource TextPrimaryBrush}" Margin="0,0,0,16" />
|
|
|
|
<!-- CPU -->
|
|
<Border Style="{StaticResource Card}" Margin="0,0,0,8">
|
|
<Grid>
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="140" />
|
|
<ColumnDefinition Width="*" />
|
|
<ColumnDefinition Width="80" />
|
|
</Grid.ColumnDefinitions>
|
|
<TextBlock Grid.Column="0" Text="CPU" FontSize="14" FontWeight="SemiBold"
|
|
Foreground="{StaticResource TextPrimaryBrush}" VerticalAlignment="Center" />
|
|
<ProgressBar Grid.Column="1" Height="16" Maximum="100"
|
|
Value="{Binding Main.CpuUsage, Mode=OneWay}" Margin="12,0"
|
|
Foreground="{Binding Main.CpuUsage, Converter={StaticResource PctColor}}"
|
|
Background="{StaticResource BgPanelBrush}" />
|
|
<TextBlock Grid.Column="2" VerticalAlignment="Center" HorizontalAlignment="Right"
|
|
FontSize="16" FontWeight="Bold"
|
|
Foreground="{Binding Main.CpuUsage, Converter={StaticResource PctColor}}"
|
|
Text="{Binding Main.CpuUsage, StringFormat={}{0:F1}%}" />
|
|
</Grid>
|
|
</Border>
|
|
|
|
<!-- RAM -->
|
|
<Border Style="{StaticResource Card}" Margin="0,0,0,8">
|
|
<Grid>
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="140" />
|
|
<ColumnDefinition Width="*" />
|
|
<ColumnDefinition Width="80" />
|
|
</Grid.ColumnDefinitions>
|
|
<StackPanel Grid.Column="0">
|
|
<TextBlock Text="RAM" FontSize="14" FontWeight="SemiBold"
|
|
Foreground="{StaticResource TextPrimaryBrush}" />
|
|
<TextBlock FontSize="10" Foreground="{StaticResource TextSecondaryBrush}">
|
|
<TextBlock.Text>
|
|
<MultiBinding StringFormat="{}{0:F0} / {1:F0} MB">
|
|
<Binding Path="Main.RamUsedMB" />
|
|
<Binding Path="Main.RamTotalMB" />
|
|
</MultiBinding>
|
|
</TextBlock.Text>
|
|
</TextBlock>
|
|
</StackPanel>
|
|
<ProgressBar Grid.Column="1" Height="16" Maximum="100"
|
|
Value="{Binding Main.RamUsagePercent, Mode=OneWay}" Margin="12,0"
|
|
Foreground="{Binding Main.RamUsagePercent, Converter={StaticResource PctColor}}"
|
|
Background="{StaticResource BgPanelBrush}" />
|
|
<TextBlock Grid.Column="2" VerticalAlignment="Center" HorizontalAlignment="Right"
|
|
FontSize="16" FontWeight="Bold"
|
|
Foreground="{Binding Main.RamUsagePercent, Converter={StaticResource PctColor}}"
|
|
Text="{Binding Main.RamUsagePercent, StringFormat={}{0:F1}%}" />
|
|
</Grid>
|
|
</Border>
|
|
|
|
<!-- GPU -->
|
|
<Border Style="{StaticResource Card}" Margin="0,0,0,8">
|
|
<Grid>
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="140" />
|
|
<ColumnDefinition Width="*" />
|
|
<ColumnDefinition Width="80" />
|
|
</Grid.ColumnDefinitions>
|
|
<TextBlock Grid.Column="0" Text="GPU" FontSize="14" FontWeight="SemiBold"
|
|
Foreground="{StaticResource TextPrimaryBrush}" VerticalAlignment="Center" />
|
|
<ProgressBar Grid.Column="1" Height="16" Maximum="100"
|
|
Value="{Binding Main.GpuUsage, Mode=OneWay}" Margin="12,0"
|
|
Foreground="{StaticResource AccentPurpleBrush}"
|
|
Background="{StaticResource BgPanelBrush}" />
|
|
<TextBlock Grid.Column="2" VerticalAlignment="Center" HorizontalAlignment="Right"
|
|
FontSize="16" FontWeight="Bold" Foreground="{StaticResource AccentPurpleBrush}"
|
|
Text="{Binding Main.GpuUsage, StringFormat={}{0:F1}%}" />
|
|
</Grid>
|
|
</Border>
|
|
|
|
<!-- Temperatures Row -->
|
|
<UniformGrid Columns="3" Margin="0,4,0,0">
|
|
<Border Style="{StaticResource Card}" Margin="0,0,8,0">
|
|
<StackPanel>
|
|
<TextBlock Text="CPU Temperature" Style="{StaticResource MetricLabel}" />
|
|
<TextBlock Style="{StaticResource MetricValue}" FontSize="22"
|
|
Foreground="{StaticResource AccentOrangeBrush}"
|
|
Text="{Binding Main.CpuTemp, StringFormat={}{0:F0}°C}" />
|
|
</StackPanel>
|
|
</Border>
|
|
<Border Style="{StaticResource Card}" Margin="4,0,4,0">
|
|
<StackPanel>
|
|
<TextBlock Text="GPU Temperature" Style="{StaticResource MetricLabel}" />
|
|
<TextBlock Style="{StaticResource MetricValue}" FontSize="22"
|
|
Foreground="{StaticResource AccentOrangeBrush}"
|
|
Text="{Binding Main.GpuTemp, StringFormat={}{0:F0}°C}" />
|
|
</StackPanel>
|
|
</Border>
|
|
<Border Style="{StaticResource Card}" Margin="8,0,0,0">
|
|
<StackPanel>
|
|
<TextBlock Text="Network Ping" Style="{StaticResource MetricLabel}" />
|
|
<TextBlock Style="{StaticResource MetricValue}" FontSize="22"
|
|
Foreground="{StaticResource AccentCyanBrush}"
|
|
Text="{Binding Main.PingMs, StringFormat={}{0:F0} ms}" />
|
|
</StackPanel>
|
|
</Border>
|
|
</UniformGrid>
|
|
</StackPanel>
|
|
</UserControl>
|