Files
SpdUp/Views/DashboardView.xaml
T
Phil-icyou 19ba425e79 Initial commit: SpdUp Windows Gaming Booster v1.0.0
- .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
2026-03-08 17:34:45 +01:00

148 lines
7.7 KiB
XML

<UserControl x:Class="SpdUp.Views.DashboardView"
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" />
<conv:FloatFormatConverter x:Key="FmtFloat" />
<conv:BoostButtonTextConverter x:Key="BoostText" />
<conv:BoostButtonColorConverter x:Key="BoostColor" />
</UserControl.Resources>
<StackPanel>
<!-- Quick Actions -->
<Border Style="{StaticResource Card}">
<DockPanel>
<TextBlock DockPanel.Dock="Top" Text="Quick Actions" FontSize="14" FontWeight="Bold"
Foreground="{StaticResource TextPrimaryBrush}" Margin="0,0,0,12" />
<WrapPanel>
<Button Style="{StaticResource PrimaryButton}" Margin="0,0,10,0"
Content="{Binding Main.IsBoosted, Converter={StaticResource BoostText}}"
Background="{Binding Main.IsBoosted, Converter={StaticResource BoostColor}}"
Command="{Binding Main.BoostCommand}" MinWidth="180" />
<Button Style="{StaticResource SecondaryButton}" Content="🧹 Clean RAM"
Command="{Binding Main.CleanRamCommand}" Margin="0,0,10,0" />
<Button Style="{StaticResource SecondaryButton}" Content="🗑 Clean Shader Cache"
Command="{Binding Main.CleanShaderCacheCommand}" Margin="0,0,10,0" />
<Button Style="{StaticResource SecondaryButton}" Content="🖥 Toggle Widget"
Command="{Binding Main.ToggleWidgetCommand}" />
</WrapPanel>
</DockPanel>
</Border>
<!-- System Metrics -->
<TextBlock Text="System Overview" FontSize="14" FontWeight="Bold"
Foreground="{StaticResource TextPrimaryBrush}" Margin="0,4,0,12" />
<UniformGrid Columns="3" Rows="2">
<!-- CPU -->
<Border Style="{StaticResource Card}" Margin="0,0,8,8">
<StackPanel>
<TextBlock Text="CPU Usage" Style="{StaticResource MetricLabel}" />
<TextBlock Style="{StaticResource MetricValue}"
Foreground="{Binding Main.CpuUsage, Converter={StaticResource PctColor}}">
<TextBlock.Text>
<MultiBinding StringFormat="{}{0:F1}%">
<Binding Path="Main.CpuUsage" />
</MultiBinding>
</TextBlock.Text>
</TextBlock>
<ProgressBar Height="6" Margin="0,8,0,0" Maximum="100"
Value="{Binding Main.CpuUsage, Mode=OneWay}"
Foreground="{Binding Main.CpuUsage, Converter={StaticResource PctColor}}"
Background="{StaticResource BgPanelBrush}" />
</StackPanel>
</Border>
<!-- RAM -->
<Border Style="{StaticResource Card}" Margin="4,0,4,8">
<StackPanel>
<TextBlock Text="RAM Usage" Style="{StaticResource MetricLabel}" />
<TextBlock Style="{StaticResource MetricValue}"
Foreground="{Binding Main.RamUsagePercent, Converter={StaticResource PctColor}}">
<TextBlock.Text>
<MultiBinding StringFormat="{}{0:F1}%">
<Binding Path="Main.RamUsagePercent" />
</MultiBinding>
</TextBlock.Text>
</TextBlock>
<TextBlock FontSize="11" Foreground="{StaticResource TextSecondaryBrush}" Margin="0,2,0,0">
<TextBlock.Text>
<MultiBinding StringFormat="{}{0:F0} / {1:F0} MB">
<Binding Path="Main.RamUsedMB" />
<Binding Path="Main.RamTotalMB" />
</MultiBinding>
</TextBlock.Text>
</TextBlock>
<ProgressBar Height="6" Margin="0,6,0,0" Maximum="100"
Value="{Binding Main.RamUsagePercent, Mode=OneWay}"
Foreground="{Binding Main.RamUsagePercent, Converter={StaticResource PctColor}}"
Background="{StaticResource BgPanelBrush}" />
</StackPanel>
</Border>
<!-- GPU -->
<Border Style="{StaticResource Card}" Margin="8,0,0,8">
<StackPanel>
<TextBlock Text="GPU Usage" Style="{StaticResource MetricLabel}" />
<TextBlock Style="{StaticResource MetricValue}"
Foreground="{StaticResource AccentPurpleBrush}">
<TextBlock.Text>
<MultiBinding StringFormat="{}{0:F1}%">
<Binding Path="Main.GpuUsage" />
</MultiBinding>
</TextBlock.Text>
</TextBlock>
<ProgressBar Height="6" Margin="0,8,0,0" Maximum="100"
Value="{Binding Main.GpuUsage, Mode=OneWay}"
Foreground="{StaticResource AccentPurpleBrush}"
Background="{StaticResource BgPanelBrush}" />
</StackPanel>
</Border>
<!-- CPU Temp -->
<Border Style="{StaticResource Card}" Margin="0,0,8,0">
<StackPanel>
<TextBlock Text="CPU Temperature" Style="{StaticResource MetricLabel}" />
<TextBlock Style="{StaticResource MetricValue}" Foreground="{StaticResource AccentOrangeBrush}">
<TextBlock.Text>
<MultiBinding StringFormat="{}{0:F0}°C">
<Binding Path="Main.CpuTemp" />
</MultiBinding>
</TextBlock.Text>
</TextBlock>
</StackPanel>
</Border>
<!-- GPU Temp -->
<Border Style="{StaticResource Card}" Margin="4,0,4,0">
<StackPanel>
<TextBlock Text="GPU Temperature" Style="{StaticResource MetricLabel}" />
<TextBlock Style="{StaticResource MetricValue}" Foreground="{StaticResource AccentOrangeBrush}">
<TextBlock.Text>
<MultiBinding StringFormat="{}{0:F0}°C">
<Binding Path="Main.GpuTemp" />
</MultiBinding>
</TextBlock.Text>
</TextBlock>
</StackPanel>
</Border>
<!-- Ping -->
<Border Style="{StaticResource Card}" Margin="8,0,0,0">
<StackPanel>
<TextBlock Text="Network Ping" Style="{StaticResource MetricLabel}" />
<TextBlock Style="{StaticResource MetricValue}" Foreground="{StaticResource AccentCyanBrush}">
<TextBlock.Text>
<MultiBinding StringFormat="{}{0:F0} ms">
<Binding Path="Main.PingMs" />
</MultiBinding>
</TextBlock.Text>
</TextBlock>
</StackPanel>
</Border>
</UniformGrid>
</StackPanel>
</UserControl>