implement About menu item on Application menu.
MODIFY
WalletWasabi.Gui/App.xaml
WalletWasabi.Gui/App.xaml
<cont:ViewModelViewHost DataContext="{Binding Context}" />
</DataTemplate>
</Application.DataTemplates>
+ <NativeMenu.Menu>
+ <NativeMenu>
+ <NativeMenuItem Header="About Wasabi Wallet" Command="{Binding AboutCommand}" />
+ </NativeMenu>
+ </NativeMenu.Menu>
</Application>

MODIFY
WalletWasabi.Gui/App.xaml.cs
WalletWasabi.Gui/App.xaml.cs
@@ -17,6 +17,11 @@ namespace WalletWasabi.Gui
AvaloniaXamlLoader.Load(this);
}
+ public void SetDataContext (Global global)
+ {
+ DataContext = new ApplicationViewModel(global);
+ }
+
public override void OnFrameworkInitializationCompleted()
{
if (ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop)

MODIFY
WalletWasabi.Gui/Program.cs
WalletWasabi.Gui/Program.cs
@@ -66,6 +66,7 @@ namespace WalletWasabi.Gui
private static async void AppMainAsync(string[] args)
{
+ (Application.Current as App).SetDataContext(Global);
AvalonStudio.Extensibility.Theme.ColorTheme.LoadTheme(AvalonStudio.Extensibility.Theme.ColorTheme.VisualStudioDark);
MainWindowViewModel.Instance = new MainWindowViewModel { Global = Global };
StatusBar = new StatusBarViewModel(Global);

ADD
WalletWasabi.Gui/ViewModels/ApplicationViewModel.cs
+using AvalonStudio.Extensibility;
+using AvalonStudio.Shell;
+using ReactiveUI;
+using System;
+using System.Collections.Generic;
+using System.Composition;
+using System.Reactive;
+using System.Text;
+using WalletWasabi.Gui.Tabs;
+
+namespace WalletWasabi.Gui.ViewModels
+{
+ public class ApplicationViewModel : ViewModelBase
+ {
+ public ApplicationViewModel(Global global)
+ {
+ AboutCommand = ReactiveCommand.Create(() =>
+ {
+ IoC.Get<IShell>().AddOrSelectDocument(() => new AboutViewModel(global));
+ });
+ }
+
+ public ReactiveCommand<Unit, Unit> AboutCommand { get; }
+ }
+}

implement About menu item on Application menu.