From e6cb146671ab409beea2f768b0f13e537f4e0928 Mon Sep 17 00:00:00 2001
From: 2dust <31833384+2dust@users.noreply.github.com>
Date: Sun, 9 Nov 2025 11:11:23 +0800
Subject: [PATCH] Refactor UI platform visibility to use ViewModel properties
---
.../ViewModels/MainWindowViewModel.cs | 3 ++
.../ViewModels/OptionSettingViewModel.cs | 13 +++++++++
v2rayN/v2rayN.Desktop/Views/MainWindow.axaml | 6 ++--
.../v2rayN.Desktop/Views/MainWindow.axaml.cs | 4 ---
.../Views/OptionSettingWindow.axaml | 21 +++++++-------
.../Views/OptionSettingWindow.axaml.cs | 28 -------------------
6 files changed, 30 insertions(+), 45 deletions(-)
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 @@
-
+
-
-
+
+