Settings dialog
MODIFY
WalletWasabi.Fluent/Styles/SettingsLayout.axaml
WalletWasabi.Fluent/Styles/SettingsLayout.axaml
<Styles xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Style Selector="StackPanel.settingsLayout">
- <Setter Property="Spacing" Value="20"/>
+ <Setter Property="Spacing" Value="15" />
<Setter Property="MinWidth" Value="360" />
<Setter Property="MaxWidth" Value="650" />
<Setter Property="HorizontalAlignment" Value="Left" />

MODIFY
WalletWasabi.Fluent/ViewModels/Settings/SettingsPageViewModel.cs
WalletWasabi.Fluent/ViewModels/Settings/SettingsPageViewModel.cs
+using System.Reactive;
using System.Reactive.Disposables;
using System.Windows.Input;
using ReactiveUI;
using WalletWasabi.Fluent.Helpers;
using WalletWasabi.Fluent.Models;
+using WalletWasabi.Fluent.ViewModels.Dialogs.Base;
using WalletWasabi.Fluent.ViewModels.NavBar;
namespace WalletWasabi.Fluent.ViewModels.Settings;
@@ -16,8 +18,9 @@ namespace WalletWasabi.Fluent.ViewModels.Settings;
IconName = "nav_settings_24_regular",
IconNameFocused = "nav_settings_24_filled",
Searchable = false,
- NavBarPosition = NavBarPosition.Bottom)]
-public partial class SettingsPageViewModel : NavBarItemViewModel
+ NavBarPosition = NavBarPosition.Bottom,
+ NavigationTarget = NavigationTarget.DialogScreen)]
+public partial class SettingsPageViewModel : DialogViewModelBase<Unit>
{
[AutoNotify] private bool _isModified;
[AutoNotify] private int _selectedTab;
@@ -26,10 +29,14 @@ public partial class SettingsPageViewModel : NavBarItemViewModel
{
_selectedTab = 0;
+ SelectionMode = NavBarItemSelectionMode.Button;
+
GeneralSettingsTab = new GeneralSettingsTabViewModel();
BitcoinTabSettings = new BitcoinTabSettingsViewModel();
RestartCommand = ReactiveCommand.Create(AppLifetimeHelper.Restart);
+
+ NextCommand = CancelCommand;
}
public ICommand RestartCommand { get; }
@@ -46,6 +53,8 @@ public partial class SettingsPageViewModel : NavBarItemViewModel
{
base.OnNavigatedTo(isInHistory, disposables);
+ IsModified = SettingsTabViewModelBase.CheckIfRestartIsNeeded();
+
SettingsTabViewModelBase.RestartNeeded += OnRestartNeeded;
disposables.Add(

MODIFY
WalletWasabi.Fluent/Views/Settings/SettingsPageView.axaml
WalletWasabi.Fluent/Views/Settings/SettingsPageView.axaml
<Setter Property="Padding" Value="0" />
</Style>
</UserControl.Styles>
+
+ <c:ContentArea Title="{Binding Title}"
+ Caption="Manage appearance, privacy and other settings"
+ EnableNext="True"
+ NextContent="Close"
+ ScrollViewer.VerticalScrollBarVisibility="Disabled">
<DockPanel LastChildFill="True">
+
<c:InfoMessage Foreground="{StaticResource WarningMessageForeground}"
- Margin="0,16"
+ Margin="0,16,0,0"
HorizontalAlignment="Center"
Opacity="{Binding IsModified, Converter={x:Static conv:BoolOpacityConverters.BoolToOpacity}}"
DockPanel.Dock="Bottom">
</StackPanel>
</c:InfoMessage>
- <c:ContentArea Title="{Binding Title}"
- Caption="Manage appearance, privacy and other settings">
- <DockPanel LastChildFill="True">
-
<TabControl SelectedIndex="{Binding SelectedTab, Mode=TwoWay}">
<TabItem Header="General">
+ <ScrollViewer HorizontalScrollBarVisibility="Disabled" VerticalScrollBarVisibility="Auto">
<v:GeneralSettingsTabView DataContext="{Binding GeneralSettingsTab}" />
+ </ScrollViewer>
</TabItem>
<TabItem Header="Bitcoin">
+ <ScrollViewer HorizontalScrollBarVisibility="Disabled" VerticalScrollBarVisibility="Auto">
<v:BitcoinTabSettingsView DataContext="{Binding BitcoinTabSettings}" />
+ </ScrollViewer>
</TabItem>
</TabControl>
</DockPanel>
</c:ContentArea>
- </DockPanel>
</UserControl>

Settings dialog