add PrivacyContentControl
MODIFY
WalletWasabi.Fluent/App.axaml
WalletWasabi.Fluent/App.axaml
<StyleInclude Source="avares://WalletWasabi.Fluent/Controls/AdorningContentControl.axaml" />
<StyleInclude Source="avares://WalletWasabi.Fluent/Controls/TileControl.axaml" />
<StyleInclude Source="avares://WalletWasabi.Fluent/Controls/StatusItem.axaml" />
+ <StyleInclude Source="avares://WalletWasabi.Fluent/Controls/PrivacyContentControl.axaml" />
</Application.Styles>
<NativeMenu.Menu>
<NativeMenu>

ADD
WalletWasabi.Fluent/Controls/PrivacyContentControl.axaml
+<Styles xmlns="https://github.com/avaloniaui"
+ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+ xmlns:controls="using:WalletWasabi.Fluent.Controls"
+ xmlns:conv="clr-namespace:WalletWasabi.Fluent.Converters">
+ <Design.PreviewWith>
+ <controls:PrivacyContentControl />
+ </Design.PreviewWith>
+
+ <Style Selector="controls|PrivacyContentControl">
+ <Setter Property="Template">
+ <ControlTemplate>
+ <Panel Background="Transparent">
+ <ContentPresenter Name="PART_Content"
+ Opacity="{Binding !#PART_PrivacyIconViewBox.IsVisible, Converter={x:Static conv:BoolOpacityConverters.BoolToOpacity}}"
+ IsVisible="{Binding $self.Opacity, Converter={x:Static conv:BoolOpacityConverters.OpacityToBool}}"
+ ContentTemplate="{TemplateBinding ContentTemplate}"
+ Content="{TemplateBinding Content}"
+ VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}"
+ HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}" />
+ <Viewbox Opacity="{TemplateBinding PrivacyModeEnabled, Converter={x:Static conv:BoolOpacityConverters.BoolToOpacity}}"
+ IsVisible="{Binding $self.Opacity, Converter={x:Static conv:BoolOpacityConverters.OpacityToBool}}"
+ Name="PART_PrivacyIconViewBox" Margin="25">
+ <PathIcon Data="{StaticResource incognito_filled}" Opacity="0.15"/>
+ </Viewbox>
+ </Panel>
+ </ControlTemplate>
+ </Setter>
+ </Style>
+
+ <Style Selector="controls|PrivacyContentControl /template/ Viewbox#PART_PrivacyIconViewBox">
+ <Setter Property="Transitions">
+ <Transitions>
+ <DoubleTransition Property="Opacity" Duration="0:0:0.3" />
+ </Transitions>
+ </Setter>
+ </Style>
+
+ <Style Selector="controls|PrivacyContentControl /template/ ContentPresenter#PART_Content">
+ <Setter Property="Transitions">
+ <Transitions>
+ <DoubleTransition Property="Opacity" Duration="0:0:0.3" />
+ </Transitions>
+ </Setter>
+ </Style>
+
+</Styles>

ADD
WalletWasabi.Fluent/Controls/PrivacyContentControl.axaml.cs
+using Avalonia;
+using System;
+using System.Reactive.Disposables;
+using System.Reactive.Linq;
+using Avalonia.Controls;
+using ReactiveUI;
+
+namespace WalletWasabi.Fluent.Controls
+{
+ public class PrivacyContentControl : ContentControl
+ {
+ public static readonly StyledProperty<bool> PrivacyModeEnabledProperty =
+ AvaloniaProperty.Register<PrivacyContentControl, bool>(nameof(PrivacyModeEnabled));
+
+ private bool PrivacyModeEnabled
+ {
+ get => GetValue(PrivacyModeEnabledProperty);
+ set => SetValue(PrivacyModeEnabledProperty, value);
+ }
+
+ private CompositeDisposable? _disposable;
+
+ protected override void OnAttachedToVisualTree(VisualTreeAttachmentEventArgs e)
+ {
+ base.OnAttachedToVisualTree(e);
+
+ _disposable = new CompositeDisposable();
+
+ Services.UiConfig
+ .WhenAnyValue(x => x.PrivacyMode)
+ .ObserveOn(RxApp.MainThreadScheduler)
+ .Subscribe(value => PrivacyModeEnabled = value)
+ .DisposeWith(_disposable);
+ }
+
+ protected override void OnDetachedFromVisualTree(VisualTreeAttachmentEventArgs e)
+ {
+ base.OnDetachedFromVisualTree(e);
+
+ _disposable?.Dispose();
+ _disposable = null;
+ }
+ }
+}

MODIFY
WalletWasabi.Fluent/Icons/Icons.axaml
WalletWasabi.Fluent/Icons/Icons.axaml
<PathIcon Data="{StaticResource arrow_clockwise_with_elipse}" />
<PathIcon Data="{StaticResource critical_update}" />
<PathIcon Data="{StaticResource arrow_sync_regular}" />
+ <PathIcon Data="{StaticResource incognito_filled}" />
<!-- Wallet icons -->
<PathIcon Data="{StaticResource default_wallet_icon}" />
<PathIcon Data="{StaticResource Ledger}" />
<StreamGeometry x:Key="arrow_clockwise_with_elipse">M3.83865 7.42979C4.15346 5.13166 6.27167 3.52385 8.5698 3.83865C9.73545 3.99833 10.7231 4.62151 11.3731 5.49759L11.4489 5.59979H9.49926C9.33357 5.59979 9.19926 5.7341 9.19926 5.89979C9.19926 6.06547 9.33357 6.19979 9.49926 6.19979H11.8993C12.0649 6.19979 12.1993 6.06547 12.1993 5.89979V3.49979C12.1993 3.3341 12.0649 3.19979 11.8993 3.19979C11.7336 3.19979 11.5993 3.3341 11.5993 3.49979V4.82418C10.8647 3.99089 9.83839 3.40683 8.65123 3.24421C6.02479 2.88443 3.60398 4.72192 3.24421 7.34836C2.88443 9.9748 4.72192 12.3956 7.34836 12.7554C9.9748 13.1152 12.3956 11.2777 12.7554 8.65123C12.7999 8.32646 12.8108 8.00454 12.7906 7.68906C12.78 7.52371 12.6374 7.39823 12.4721 7.40879C12.3068 7.41935 12.1813 7.56195 12.1918 7.7273C12.2094 8.00307 12.2 8.2849 12.1609 8.5698C11.8461 10.8679 9.72792 12.4757 7.42979 12.1609C5.13166 11.8461 3.52385 9.72792 3.83865 7.42979Z M16 8C16 12.4183 12.4183 16 8 16C3.58172 16 0 12.4183 0 8C0 3.58172 3.58172 0 8 0C12.4183 0 16 3.58172 16 8Z</StreamGeometry>
<StreamGeometry x:Key="critical_update">M8.67649 2.81836H7.32422L7.42365 10.1365H8.57706L8.67649 2.81836ZM8.00036 13.0797C8.49254 13.0797 8.89524 12.677 8.89524 12.1848C8.89524 11.6926 8.49254 11.29 8.00036 11.29C7.50817 11.29 7.10547 11.6926 7.10547 12.1848C7.10547 12.677 7.50817 13.0797 8.00036 13.0797Z M16 8C16 12.4183 12.4183 16 8 16C3.58172 16 0 12.4183 0 8C0 3.58172 3.58172 0 8 0C12.4183 0 16 3.58172 16 8Z</StreamGeometry>
<StreamGeometry x:Key="arrow_sync_regular">M7.74944331,5.18010908 C8.0006303,5.50946902 7.93725859,5.9800953 7.60789865,6.23128229 C5.81957892,7.59514774 4.75,9.70820889 4.75,12 C4.75,15.7359812 7.57583716,18.8119527 11.2066921,19.2070952 L10.5303301,18.5303301 C10.2374369,18.2374369 10.2374369,17.7625631 10.5303301,17.4696699 C10.7965966,17.2034034 11.2132603,17.1791973 11.5068718,17.3970518 L11.5909903,17.4696699 L13.5909903,19.4696699 C13.8572568,19.7359365 13.8814629,20.1526002 13.6636084,20.4462117 L13.5909903,20.5303301 L11.5909903,22.5303301 C11.298097,22.8232233 10.8232233,22.8232233 10.5303301,22.5303301 C10.2640635,22.2640635 10.2398575,21.8473998 10.4577119,21.5537883 L10.5303301,21.4696699 L11.280567,20.7208479 C6.78460951,20.3549586 3.25,16.5902554 3.25,12 C3.25,9.23526399 4.54178532,6.68321165 6.6982701,5.03856442 C7.02763004,4.78737743 7.49825632,4.85074914 7.74944331,5.18010908 Z M13.4696699,1.46966991 C13.7625631,1.76256313 13.7625631,2.23743687 13.4696699,2.53033009 L12.7204313,3.27923335 C17.2159137,3.64559867 20.75,7.4100843 20.75,12 C20.75,14.6444569 19.5687435,17.0974104 17.5691913,18.7491089 C17.2498402,19.0129038 16.7771069,18.9678666 16.513312,18.6485156 C16.2495171,18.3291645 16.2945543,17.8564312 16.6139054,17.5926363 C18.2720693,16.2229363 19.25,14.1922015 19.25,12 C19.25,8.26436254 16.4246828,5.18861329 12.7943099,4.7930139 L13.4696699,5.46966991 C13.7625631,5.76256313 13.7625631,6.23743687 13.4696699,6.53033009 C13.1767767,6.8232233 12.701903,6.8232233 12.4090097,6.53033009 L10.4090097,4.53033009 C10.1161165,4.23743687 10.1161165,3.76256313 10.4090097,3.46966991 L12.4090097,1.46966991 C12.701903,1.1767767 13.1767767,1.1767767 13.4696699,1.46966991 Z</StreamGeometry>
+ <StreamGeometry x:Key="incognito_filled">M17.5 12C19.9853 12 22 14.0147 22 16.5C22 18.9853 19.9853 21 17.5 21C15.3592 21 13.5674 19.505 13.112 17.502H10.8881C10.4326 19.505 8.64094 21 6.50005 21C4.01477 21 2.00005 18.9853 2.00005 16.5C2.00005 14.0147 4.01477 12 6.50005 12C8.81643 12 10.724 13.7502 10.9726 16.0003H13.0275C13.2761 13.7502 15.1837 12 17.5 12ZM6.50005 13.5C4.84319 13.5 3.50005 14.8431 3.50005 16.5C3.50005 18.1569 4.84319 19.5 6.50005 19.5C8.1569 19.5 9.50005 18.1569 9.50005 16.5C9.50005 14.8431 8.1569 13.5 6.50005 13.5ZM17.5 13.5C15.8432 13.5 14.5 14.8431 14.5 16.5C14.5 18.1569 15.8432 19.5 17.5 19.5C19.1569 19.5 20.5 18.1569 20.5 16.5C20.5 14.8431 19.1569 13.5 17.5 13.5ZM12 9.25C15.3894 9.25 18.5301 9.58954 21.4218 10.2699C21.825 10.3648 22.075 10.7686 21.9801 11.1718C21.8852 11.575 21.4815 11.8249 21.0783 11.7301C18.3033 11.0771 15.2774 10.75 12 10.75C8.72272 10.75 5.69681 11.0771 2.92183 11.7301C2.51862 11.8249 2.11486 11.575 2.01998 11.1718C1.92511 10.7686 2.17507 10.3648 2.57827 10.2699C5.46995 9.58954 8.61071 9.25 12 9.25ZM15.7003 3.25C16.7231 3.25 17.6557 3.81694 18.1298 4.71159L18.2133 4.88312L19.6854 8.1954C19.8536 8.57391 19.6832 9.01713 19.3047 9.18536C18.9577 9.33957 18.5563 9.20918 18.3623 8.89482L18.3147 8.8046L16.8426 5.49233C16.6602 5.08195 16.2736 4.80422 15.8337 4.75711L15.7003 4.75H8.29979C7.85072 4.75 7.43993 4.99043 7.21822 5.37329L7.15753 5.49233L5.68541 8.8046C5.51718 9.18312 5.07396 9.35359 4.69544 9.18536C4.34847 9.03115 4.17632 8.64587 4.27961 8.29118L4.31469 8.1954L5.78681 4.88312C6.20223 3.94843 7.09904 3.32652 8.10916 3.25659L8.29979 3.25H15.7003Z</StreamGeometry>
<!-- Wallet icons -->
<StreamGeometry x:Key="default_wallet_icon">M18.75,3 C20.5449254,3 22,4.45507456 22,6.25 L22,17.75 C22,19.5449254 20.5449254,21 18.75,21 L5.25,21 C3.45507456,21 2,19.5449254 2,17.75 L2,6.25 C2,4.45507456 3.45507456,3 5.25,3 L18.75,3 Z M18.75,4.5 L5.25,4.5 C4.28350169,4.5 3.5,5.28350169 3.5,6.25 L3.5,17.75 C3.5,18.7164983 4.28350169,19.5 5.25,19.5 L18.75,19.5 C19.7164983,19.5 20.5,18.7164983 20.5,17.75 L20.5,6.25 C20.5,5.28350169 19.7164983,4.5 18.75,4.5 Z M6.74835407,6.5 L17.2543007,6.5 C17.6685143,6.5 18.0043007,6.83578644 18.0043007,7.25 C18.0043007,7.62969577 17.7221468,7.94349096 17.3560713,7.99315338 L17.2543007,8 L6.74835407,8 C6.33414051,8 5.99835407,7.66421356 5.99835407,7.25 C5.99835407,6.87030423 6.28050795,6.55650904 6.64658351,6.50684662 L6.74835407,6.5 L17.2543007,6.5 L6.74835407,6.5 Z</StreamGeometry>

add PrivacyContentControl