diff --git a/v2rayN/ServiceLib/ViewModels/MainWindowViewModel.cs b/v2rayN/ServiceLib/ViewModels/MainWindowViewModel.cs
index 48792a0c..c3bb0fe3 100644
--- a/v2rayN/ServiceLib/ViewModels/MainWindowViewModel.cs
+++ b/v2rayN/ServiceLib/ViewModels/MainWindowViewModel.cs
@@ -62,6 +62,8 @@ public class MainWindowViewModel : MyReactiveObject
[Reactive]
public int TabMainSelectedIndex { get; set; }
+ [Reactive] public bool BlIsWindows { get; set; }
+
#endregion Menu
#region Init
@@ -70,6 +72,7 @@ public class MainWindowViewModel : MyReactiveObject
{
_config = AppManager.Instance.Config;
_updateView = updateView;
+ BlIsWindows = Utils.IsWindows();
#region WhenAnyValue && ReactiveCommand
diff --git a/v2rayN/ServiceLib/ViewModels/OptionSettingViewModel.cs b/v2rayN/ServiceLib/ViewModels/OptionSettingViewModel.cs
index 81f63d00..4012e663 100644
--- a/v2rayN/ServiceLib/ViewModels/OptionSettingViewModel.cs
+++ b/v2rayN/ServiceLib/ViewModels/OptionSettingViewModel.cs
@@ -69,6 +69,15 @@ public class OptionSettingViewModel : MyReactiveObject
#endregion UI
+ #region UI visibility
+
+ [Reactive] public bool BlIsWindows { get; set; }
+ [Reactive] public bool BlIsLinux { get; set; }
+ [Reactive] public bool BlIsIsMacOS { get; set; }
+ [Reactive] public bool BlIsNonWindows { get; set; }
+
+ #endregion UI visibility
+
#region System proxy
[Reactive] public bool notProxyLocalAddress { get; set; }
@@ -108,6 +117,10 @@ public class OptionSettingViewModel : MyReactiveObject
{
_config = AppManager.Instance.Config;
_updateView = updateView;
+ BlIsWindows = Utils.IsWindows();
+ BlIsLinux = Utils.IsLinux();
+ BlIsIsMacOS = Utils.IsMacOS();
+ BlIsNonWindows = Utils.IsNonWindows();
SaveCmd = ReactiveCommand.CreateFromTask(async () =>
{
diff --git a/v2rayN/v2rayN.Desktop/Views/MainWindow.axaml b/v2rayN/v2rayN.Desktop/Views/MainWindow.axaml
index e02d0ba5..5a391134 100644
--- a/v2rayN/v2rayN.Desktop/Views/MainWindow.axaml
+++ b/v2rayN/v2rayN.Desktop/Views/MainWindow.axaml
@@ -75,10 +75,10 @@
-
+
-
-
+
+