Skip to content

Commit 1296471

Browse files
Refactor simple / classic mode selection UI
1 parent ca6f9a8 commit 1296471

2 files changed

Lines changed: 48 additions & 10 deletions

File tree

Modern/MainWindow.xaml

Lines changed: 40 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -41,12 +41,46 @@
4141
</StatusBarItem>
4242
<StatusBarItem Grid.Column="1">
4343
<StackPanel Orientation="Horizontal">
44-
<TextBlock Text="Mode:" VerticalAlignment="Center" Margin="8,0,4,0" FontSize="11" Opacity="0.7"/>
45-
<RadioButton x:Name="WizardRadio" Content="Simple" VerticalAlignment="Center" Margin="0,0,6,0" FontSize="11"
46-
GroupName="ViewMode" Checked="WizardRadio_Checked"/>
47-
<RadioButton x:Name="ClassicRadio" Content="Classic" VerticalAlignment="Center" Margin="0,0,8,0" FontSize="11"
48-
GroupName="ViewMode" Checked="ClassicRadio_Checked"/>
49-
<Border Width="1" Background="{DynamicResource SystemControlForegroundBaseMediumLowBrush}" Margin="2,2,6,2"/>
44+
<!-- Segmented mode toggle -->
45+
<Border CornerRadius="4" BorderThickness="1" Margin="8,0,0,0"
46+
BorderBrush="{DynamicResource SystemControlForegroundBaseMediumLowBrush}"
47+
Background="{DynamicResource SystemControlBackgroundListLowBrush}">
48+
<StackPanel Orientation="Horizontal">
49+
<ToggleButton x:Name="WizardToggle" Content="Simple" FontSize="11" Padding="8,2"
50+
Click="WizardToggle_Click" BorderThickness="0"
51+
ToolTip="Guided wizard mode">
52+
<ToggleButton.Style>
53+
<Style TargetType="ToggleButton" BasedOn="{StaticResource {x:Type ToggleButton}}">
54+
<Setter Property="Background" Value="Transparent"/>
55+
<Setter Property="Opacity" Value="0.6"/>
56+
<Style.Triggers>
57+
<Trigger Property="IsChecked" Value="True">
58+
<Setter Property="Background" Value="{DynamicResource SystemControlHighlightListAccentLowBrush}"/>
59+
<Setter Property="Opacity" Value="1"/>
60+
</Trigger>
61+
</Style.Triggers>
62+
</Style>
63+
</ToggleButton.Style>
64+
</ToggleButton>
65+
<ToggleButton x:Name="ClassicToggle" Content="Classic" FontSize="11" Padding="8,2"
66+
Click="ClassicToggle_Click" BorderThickness="0"
67+
ToolTip="All-in-one classic mode">
68+
<ToggleButton.Style>
69+
<Style TargetType="ToggleButton" BasedOn="{StaticResource {x:Type ToggleButton}}">
70+
<Setter Property="Background" Value="Transparent"/>
71+
<Setter Property="Opacity" Value="0.6"/>
72+
<Style.Triggers>
73+
<Trigger Property="IsChecked" Value="True">
74+
<Setter Property="Background" Value="{DynamicResource SystemControlHighlightListAccentLowBrush}"/>
75+
<Setter Property="Opacity" Value="1"/>
76+
</Trigger>
77+
</Style.Triggers>
78+
</Style>
79+
</ToggleButton.Style>
80+
</ToggleButton>
81+
</StackPanel>
82+
</Border>
83+
<Border Width="1" Background="{DynamicResource SystemControlForegroundBaseMediumLowBrush}" Margin="6,2,6,2"/>
5084
<ToggleButton x:Name="ThemeToggle" Click="ThemeToggle_Click" Padding="4,2"
5185
ToolTip="Toggle dark/light theme" Background="Transparent" BorderThickness="0">
5286
<TextBlock x:Name="ThemeIcon" Text="&#xE708;" FontFamily="Segoe MDL2 Assets" FontSize="14"/>

Modern/MainWindow.xaml.cs

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@ public MainWindow() {
1313
InitializeComponent();
1414
DataContext = _viewModel;
1515
_viewModel.PropertyChanged += ViewModel_PropertyChanged;
16-
WizardRadio.IsChecked = _viewModel.IsWizardMode;
17-
ClassicRadio.IsChecked = !_viewModel.IsWizardMode;
16+
WizardToggle.IsChecked = _viewModel.IsWizardMode;
17+
ClassicToggle.IsChecked = !_viewModel.IsWizardMode;
1818

1919
// Initialize theme from system setting
2020
bool isDark = DwmInterop.IsSystemDarkTheme();
@@ -129,12 +129,16 @@ private void ThemeToggle_Click(object sender, RoutedEventArgs e) {
129129
ApplyTheme(isDark);
130130
}
131131

132-
private void WizardRadio_Checked(object sender, RoutedEventArgs e) {
132+
private void WizardToggle_Click(object sender, RoutedEventArgs e) {
133133
if (_viewModel != null) _viewModel.IsWizardMode = true;
134+
WizardToggle.IsChecked = true;
135+
ClassicToggle.IsChecked = false;
134136
}
135137

136-
private void ClassicRadio_Checked(object sender, RoutedEventArgs e) {
138+
private void ClassicToggle_Click(object sender, RoutedEventArgs e) {
137139
if (_viewModel != null) _viewModel.IsWizardMode = false;
140+
ClassicToggle.IsChecked = true;
141+
WizardToggle.IsChecked = false;
138142
}
139143

140144
private async void HelpAbout_Click(object sender, RoutedEventArgs e) {

0 commit comments

Comments
 (0)