mirror of
https://github.com/2dust/v2rayN.git
synced 2025-10-13 20:09:12 +00:00
Compare commits
2 commits
6fd5cae6b0
...
878c209218
Author | SHA1 | Date | |
---|---|---|---|
![]() |
878c209218 | ||
![]() |
e970372a9f |
14 changed files with 63 additions and 55 deletions
20
v2rayN/ServiceLib/Resx/ResUI.Designer.cs
generated
20
v2rayN/ServiceLib/Resx/ResUI.Designer.cs
generated
|
@ -3057,6 +3057,15 @@ namespace ServiceLib.Resx {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 查找类似 Bootstrap DNS (sing-box) 的本地化字符串。
|
||||||
|
/// </summary>
|
||||||
|
public static string TbSBBootstrapDNS {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("TbSBBootstrapDNS", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 查找类似 sing-box Direct Resolution Strategy 的本地化字符串。
|
/// 查找类似 sing-box Direct Resolution Strategy 的本地化字符串。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -3076,16 +3085,7 @@ namespace ServiceLib.Resx {
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 查找类似 sing-box DoH Resolver Server 的本地化字符串。
|
/// 查找类似 Fallback DNS Resolution, Require IP 的本地化字符串。
|
||||||
/// </summary>
|
|
||||||
public static string TbSBDoHResolverServer {
|
|
||||||
get {
|
|
||||||
return ResourceManager.GetString("TbSBDoHResolverServer", resourceCulture);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 查找类似 Fallback DNS Resolution, Suggest IP 的本地化字符串。
|
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public static string TbSBFallbackDNSResolve {
|
public static string TbSBFallbackDNSResolve {
|
||||||
get {
|
get {
|
||||||
|
|
|
@ -1425,11 +1425,11 @@
|
||||||
<data name="TbSBOutboundDomainResolve" xml:space="preserve">
|
<data name="TbSBOutboundDomainResolve" xml:space="preserve">
|
||||||
<value>Resolve Outbound Domains</value>
|
<value>Resolve Outbound Domains</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="TbSBDoHResolverServer" xml:space="preserve">
|
<data name="TbSBBootstrapDNS" xml:space="preserve">
|
||||||
<value>sing-box DoH Resolver Server</value>
|
<value>Bootstrap DNS (sing-box)</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="TbSBFallbackDNSResolve" xml:space="preserve">
|
<data name="TbSBFallbackDNSResolve" xml:space="preserve">
|
||||||
<value>Fallback DNS Resolution, Suggest IP</value>
|
<value>Fallback DNS Resolution, Require IP</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="TbXrayFreedomResolveStrategy" xml:space="preserve">
|
<data name="TbXrayFreedomResolveStrategy" xml:space="preserve">
|
||||||
<value>xray Freedom Resolution Strategy</value>
|
<value>xray Freedom Resolution Strategy</value>
|
||||||
|
|
|
@ -1425,11 +1425,11 @@
|
||||||
<data name="TbSBOutboundDomainResolve" xml:space="preserve">
|
<data name="TbSBOutboundDomainResolve" xml:space="preserve">
|
||||||
<value>Resolve Outbound Domains</value>
|
<value>Resolve Outbound Domains</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="TbSBDoHResolverServer" xml:space="preserve">
|
<data name="TbSBBootstrapDNS" xml:space="preserve">
|
||||||
<value>sing-box DoH Resolver Server</value>
|
<value>Bootstrap DNS (sing-box)</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="TbSBFallbackDNSResolve" xml:space="preserve">
|
<data name="TbSBFallbackDNSResolve" xml:space="preserve">
|
||||||
<value>Fallback DNS Resolution, Suggest IP</value>
|
<value>Fallback DNS Resolution, Require IP</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="TbXrayFreedomResolveStrategy" xml:space="preserve">
|
<data name="TbXrayFreedomResolveStrategy" xml:space="preserve">
|
||||||
<value>xray Freedom Resolution Strategy</value>
|
<value>xray Freedom Resolution Strategy</value>
|
||||||
|
|
|
@ -1425,11 +1425,11 @@
|
||||||
<data name="TbSBOutboundDomainResolve" xml:space="preserve">
|
<data name="TbSBOutboundDomainResolve" xml:space="preserve">
|
||||||
<value>Resolve Outbound Domains</value>
|
<value>Resolve Outbound Domains</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="TbSBDoHResolverServer" xml:space="preserve">
|
<data name="TbSBBootstrapDNS" xml:space="preserve">
|
||||||
<value>sing-box DoH Resolver Server</value>
|
<value>Bootstrap DNS (sing-box)</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="TbSBFallbackDNSResolve" xml:space="preserve">
|
<data name="TbSBFallbackDNSResolve" xml:space="preserve">
|
||||||
<value>Fallback DNS Resolution, Suggest IP</value>
|
<value>Fallback DNS Resolution, Require IP</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="TbXrayFreedomResolveStrategy" xml:space="preserve">
|
<data name="TbXrayFreedomResolveStrategy" xml:space="preserve">
|
||||||
<value>xray Freedom Resolution Strategy</value>
|
<value>xray Freedom Resolution Strategy</value>
|
||||||
|
|
|
@ -1425,11 +1425,11 @@
|
||||||
<data name="TbSBOutboundDomainResolve" xml:space="preserve">
|
<data name="TbSBOutboundDomainResolve" xml:space="preserve">
|
||||||
<value>Разрешать домены для исходящих соединений</value>
|
<value>Разрешать домены для исходящих соединений</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="TbSBDoHResolverServer" xml:space="preserve">
|
<data name="TbSBBootstrapDNS" xml:space="preserve">
|
||||||
<value>Сервер DoH-резолвера (sing-box)</value>
|
<value>Bootstrap DNS (sing-box)</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="TbSBFallbackDNSResolve" xml:space="preserve">
|
<data name="TbSBFallbackDNSResolve" xml:space="preserve">
|
||||||
<value>Резервное DNS-разрешение (рекомендуется указывать IP)</value>
|
<value>Fallback DNS Resolution, Require IP</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="TbXrayFreedomResolveStrategy" xml:space="preserve">
|
<data name="TbXrayFreedomResolveStrategy" xml:space="preserve">
|
||||||
<value>Стратегия резолвинга Freedom (Xray)</value>
|
<value>Стратегия резолвинга Freedom (Xray)</value>
|
||||||
|
|
|
@ -1422,11 +1422,11 @@
|
||||||
<data name="TbSBOutboundDomainResolve" xml:space="preserve">
|
<data name="TbSBOutboundDomainResolve" xml:space="preserve">
|
||||||
<value>解析出站域名</value>
|
<value>解析出站域名</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="TbSBDoHResolverServer" xml:space="preserve">
|
<data name="TbSBBootstrapDNS" xml:space="preserve">
|
||||||
<value>sing-box DoH 解析服务器</value>
|
<value>Bootstrap DNS (sing-box)</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="TbSBFallbackDNSResolve" xml:space="preserve">
|
<data name="TbSBFallbackDNSResolve" xml:space="preserve">
|
||||||
<value>兜底解析其他 DNS 域名,建议设为 ip</value>
|
<value>回退 DNS 解析,需指定为 IP</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="TbXrayFreedomResolveStrategy" xml:space="preserve">
|
<data name="TbXrayFreedomResolveStrategy" xml:space="preserve">
|
||||||
<value>xray freedom 解析策略</value>
|
<value>xray freedom 解析策略</value>
|
||||||
|
|
|
@ -1422,11 +1422,11 @@
|
||||||
<data name="TbSBOutboundDomainResolve" xml:space="preserve">
|
<data name="TbSBOutboundDomainResolve" xml:space="preserve">
|
||||||
<value>Resolve Outbound Domains</value>
|
<value>Resolve Outbound Domains</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="TbSBDoHResolverServer" xml:space="preserve">
|
<data name="TbSBBootstrapDNS" xml:space="preserve">
|
||||||
<value>sing-box DoH Resolver Server</value>
|
<value>Bootstrap DNS (sing-box)</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="TbSBFallbackDNSResolve" xml:space="preserve">
|
<data name="TbSBFallbackDNSResolve" xml:space="preserve">
|
||||||
<value>Fallback DNS Resolution, Suggest IP</value>
|
<value>Fallback DNS Resolution, Require IP</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="TbXrayFreedomResolveStrategy" xml:space="preserve">
|
<data name="TbXrayFreedomResolveStrategy" xml:space="preserve">
|
||||||
<value>xray Freedom Resolution Strategy</value>
|
<value>xray Freedom Resolution Strategy</value>
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
using System.Reactive;
|
using System.Reactive;
|
||||||
|
using System.Reactive.Linq;
|
||||||
using ReactiveUI;
|
using ReactiveUI;
|
||||||
using ReactiveUI.Fody.Helpers;
|
using ReactiveUI.Fody.Helpers;
|
||||||
|
|
||||||
|
@ -32,6 +33,8 @@ public class DNSSettingViewModel : MyReactiveObject
|
||||||
[Reactive] public bool RayCustomDNSEnableCompatible { get; set; }
|
[Reactive] public bool RayCustomDNSEnableCompatible { get; set; }
|
||||||
[Reactive] public bool SBCustomDNSEnableCompatible { get; set; }
|
[Reactive] public bool SBCustomDNSEnableCompatible { get; set; }
|
||||||
|
|
||||||
|
[ObservableAsProperty] public bool IsSimpleDNSEnabled { get; }
|
||||||
|
|
||||||
public ReactiveCommand<Unit, Unit> SaveCmd { get; }
|
public ReactiveCommand<Unit, Unit> SaveCmd { get; }
|
||||||
public ReactiveCommand<Unit, Unit> ImportDefConfig4V2rayCompatibleCmd { get; }
|
public ReactiveCommand<Unit, Unit> ImportDefConfig4V2rayCompatibleCmd { get; }
|
||||||
public ReactiveCommand<Unit, Unit> ImportDefConfig4SingboxCompatibleCmd { get; }
|
public ReactiveCommand<Unit, Unit> ImportDefConfig4SingboxCompatibleCmd { get; }
|
||||||
|
@ -55,6 +58,10 @@ public class DNSSettingViewModel : MyReactiveObject
|
||||||
await Task.CompletedTask;
|
await Task.CompletedTask;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
this.WhenAnyValue(x => x.RayCustomDNSEnableCompatible, x => x.SBCustomDNSEnableCompatible)
|
||||||
|
.Select(x => !(x.Item1 && x.Item2))
|
||||||
|
.ToPropertyEx(this, x => x.IsSimpleDNSEnabled);
|
||||||
|
|
||||||
_ = Init();
|
_ = Init();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -37,6 +37,7 @@
|
||||||
<TabItem Header="{x:Static resx:ResUI.ThBasicDNSSettings}">
|
<TabItem Header="{x:Static resx:ResUI.ThBasicDNSSettings}">
|
||||||
<ScrollViewer VerticalScrollBarVisibility="Visible">
|
<ScrollViewer VerticalScrollBarVisibility="Visible">
|
||||||
<Grid
|
<Grid
|
||||||
|
x:Name="gridBasicDNSSettings"
|
||||||
Margin="{StaticResource Margin8}"
|
Margin="{StaticResource Margin8}"
|
||||||
ColumnDefinitions="Auto,Auto,*"
|
ColumnDefinitions="Auto,Auto,*"
|
||||||
RowDefinitions="Auto,Auto,Auto,Auto,Auto,Auto,Auto,Auto,Auto">
|
RowDefinitions="Auto,Auto,Auto,Auto,Auto,Auto,Auto,Auto,Auto">
|
||||||
|
@ -103,7 +104,7 @@
|
||||||
Grid.Column="0"
|
Grid.Column="0"
|
||||||
Margin="{StaticResource Margin4}"
|
Margin="{StaticResource Margin4}"
|
||||||
VerticalAlignment="Center"
|
VerticalAlignment="Center"
|
||||||
Text="{x:Static resx:ResUI.TbSBDoHResolverServer}" />
|
Text="{x:Static resx:ResUI.TbSBBootstrapDNS}" />
|
||||||
<ctrls:AutoCompleteBox
|
<ctrls:AutoCompleteBox
|
||||||
x:Name="cmbSBFinalResolverDNS"
|
x:Name="cmbSBFinalResolverDNS"
|
||||||
Grid.Row="4"
|
Grid.Row="4"
|
||||||
|
@ -187,6 +188,7 @@
|
||||||
<TabItem Header="{x:Static resx:ResUI.ThAdvancedDNSSettings}">
|
<TabItem Header="{x:Static resx:ResUI.ThAdvancedDNSSettings}">
|
||||||
<ScrollViewer VerticalScrollBarVisibility="Visible">
|
<ScrollViewer VerticalScrollBarVisibility="Visible">
|
||||||
<Grid
|
<Grid
|
||||||
|
x:Name="gridAdvancedDNSSettings"
|
||||||
Margin="{StaticResource Margin8}"
|
Margin="{StaticResource Margin8}"
|
||||||
ColumnDefinitions="Auto,Auto,*"
|
ColumnDefinitions="Auto,Auto,*"
|
||||||
RowDefinitions="Auto,Auto,Auto,Auto,Auto,Auto,*">
|
RowDefinitions="Auto,Auto,Auto,Auto,Auto,Auto,*">
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
using System.Reactive.Disposables;
|
using System.Reactive.Disposables;
|
||||||
|
using System.Reactive.Linq;
|
||||||
using Avalonia.Controls;
|
using Avalonia.Controls;
|
||||||
using Avalonia.Interactivity;
|
using Avalonia.Interactivity;
|
||||||
using ReactiveUI;
|
using ReactiveUI;
|
||||||
|
@ -67,16 +68,14 @@ public partial class DNSSettingWindow : WindowBase<DNSSettingViewModel>
|
||||||
this.BindCommand(ViewModel, vm => vm.ImportDefConfig4V2rayCompatibleCmd, v => v.btnImportDefConfig4V2rayCompatible).DisposeWith(disposables);
|
this.BindCommand(ViewModel, vm => vm.ImportDefConfig4V2rayCompatibleCmd, v => v.btnImportDefConfig4V2rayCompatible).DisposeWith(disposables);
|
||||||
this.BindCommand(ViewModel, vm => vm.ImportDefConfig4SingboxCompatibleCmd, v => v.btnImportDefConfig4SingboxCompatible).DisposeWith(disposables);
|
this.BindCommand(ViewModel, vm => vm.ImportDefConfig4SingboxCompatibleCmd, v => v.btnImportDefConfig4SingboxCompatible).DisposeWith(disposables);
|
||||||
|
|
||||||
this.WhenAnyValue(
|
this.WhenAnyValue(x => x.ViewModel.IsSimpleDNSEnabled)
|
||||||
x => x.ViewModel.RayCustomDNSEnableCompatible,
|
.Select(b => !b)
|
||||||
x => x.ViewModel.SBCustomDNSEnableCompatible,
|
.BindTo(this.FindControl<TextBlock>("txtBasicDNSSettingsInvalid"), t => t.IsVisible);
|
||||||
(ray, sb) => ray && sb
|
this.WhenAnyValue(x => x.ViewModel.IsSimpleDNSEnabled)
|
||||||
).BindTo(this.FindControl<TextBlock>("txtBasicDNSSettingsInvalid"), t => t.IsVisible);
|
.Select(b => !b)
|
||||||
this.WhenAnyValue(
|
.BindTo(this.FindControl<TextBlock>("txtAdvancedDNSSettingsInvalid"), t => t.IsVisible);
|
||||||
x => x.ViewModel.RayCustomDNSEnableCompatible,
|
this.Bind(ViewModel, vm => vm.IsSimpleDNSEnabled, v => v.gridBasicDNSSettings.IsEnabled).DisposeWith(disposables);
|
||||||
x => x.ViewModel.SBCustomDNSEnableCompatible,
|
this.Bind(ViewModel, vm => vm.IsSimpleDNSEnabled, v => v.gridAdvancedDNSSettings.IsEnabled).DisposeWith(disposables);
|
||||||
(ray, sb) => ray && sb
|
|
||||||
).BindTo(this.FindControl<TextBlock>("txtAdvancedDNSSettingsInvalid"), t => t.IsVisible);
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -75,6 +75,7 @@
|
||||||
Width="{StaticResource IconButtonWidth}"
|
Width="{StaticResource IconButtonWidth}"
|
||||||
Height="{StaticResource IconButtonHeight}"
|
Height="{StaticResource IconButtonHeight}"
|
||||||
Margin="{StaticResource MarginLr8}"
|
Margin="{StaticResource MarginLr8}"
|
||||||
|
HorizontalAlignment="Left"
|
||||||
Theme="{DynamicResource BorderlessButton}">
|
Theme="{DynamicResource BorderlessButton}">
|
||||||
<Button.Content>
|
<Button.Content>
|
||||||
<PathIcon Data="{StaticResource building_more}" Foreground="{DynamicResource ButtonDefaultTertiaryForeground}" />
|
<PathIcon Data="{StaticResource building_more}" Foreground="{DynamicResource ButtonDefaultTertiaryForeground}" />
|
||||||
|
@ -208,8 +209,8 @@
|
||||||
Grid.Row="9"
|
Grid.Row="9"
|
||||||
Grid.Column="2"
|
Grid.Column="2"
|
||||||
Margin="{StaticResource Margin4}"
|
Margin="{StaticResource Margin4}"
|
||||||
Content="{x:Static resx:ResUI.TbSelectProfile}"
|
Click="BtnSelectPrevProfile_Click"
|
||||||
Click="BtnSelectPrevProfile_Click" />
|
Content="{x:Static resx:ResUI.TbSelectProfile}" />
|
||||||
|
|
||||||
<TextBlock
|
<TextBlock
|
||||||
Grid.Row="10"
|
Grid.Row="10"
|
||||||
|
@ -228,8 +229,8 @@
|
||||||
Grid.Row="10"
|
Grid.Row="10"
|
||||||
Grid.Column="2"
|
Grid.Column="2"
|
||||||
Margin="{StaticResource Margin4}"
|
Margin="{StaticResource Margin4}"
|
||||||
Content="{x:Static resx:ResUI.TbSelectProfile}"
|
Click="BtnSelectNextProfile_Click"
|
||||||
Click="BtnSelectNextProfile_Click" />
|
Content="{x:Static resx:ResUI.TbSelectProfile}" />
|
||||||
|
|
||||||
<TextBlock
|
<TextBlock
|
||||||
Grid.Row="11"
|
Grid.Row="11"
|
||||||
|
|
|
@ -41,7 +41,7 @@
|
||||||
<TabControl HorizontalContentAlignment="Left">
|
<TabControl HorizontalContentAlignment="Left">
|
||||||
<TabItem Header="{x:Static resx:ResUI.ThBasicDNSSettings}">
|
<TabItem Header="{x:Static resx:ResUI.ThBasicDNSSettings}">
|
||||||
<ScrollViewer VerticalScrollBarVisibility="Visible">
|
<ScrollViewer VerticalScrollBarVisibility="Visible">
|
||||||
<Grid Margin="{StaticResource Margin8}">
|
<Grid x:Name="gridBasicDNSSettings" Margin="{StaticResource Margin8}">
|
||||||
<Grid.RowDefinitions>
|
<Grid.RowDefinitions>
|
||||||
<RowDefinition Height="Auto" />
|
<RowDefinition Height="Auto" />
|
||||||
<RowDefinition Height="Auto" />
|
<RowDefinition Height="Auto" />
|
||||||
|
@ -131,7 +131,7 @@
|
||||||
Margin="{StaticResource Margin8}"
|
Margin="{StaticResource Margin8}"
|
||||||
VerticalAlignment="Center"
|
VerticalAlignment="Center"
|
||||||
Style="{StaticResource ToolbarTextBlock}"
|
Style="{StaticResource ToolbarTextBlock}"
|
||||||
Text="{x:Static resx:ResUI.TbSBDoHResolverServer}" />
|
Text="{x:Static resx:ResUI.TbSBBootstrapDNS}" />
|
||||||
<ComboBox
|
<ComboBox
|
||||||
x:Name="cmbSBFinalResolverDNS"
|
x:Name="cmbSBFinalResolverDNS"
|
||||||
Grid.Row="4"
|
Grid.Row="4"
|
||||||
|
@ -222,7 +222,7 @@
|
||||||
</TabItem>
|
</TabItem>
|
||||||
<TabItem Header="{x:Static resx:ResUI.ThAdvancedDNSSettings}">
|
<TabItem Header="{x:Static resx:ResUI.ThAdvancedDNSSettings}">
|
||||||
<ScrollViewer VerticalScrollBarVisibility="Visible">
|
<ScrollViewer VerticalScrollBarVisibility="Visible">
|
||||||
<Grid Margin="{StaticResource Margin8}">
|
<Grid x:Name="gridAdvancedDNSSettings" Margin="{StaticResource Margin8}">
|
||||||
<Grid.RowDefinitions>
|
<Grid.RowDefinitions>
|
||||||
<RowDefinition Height="Auto" />
|
<RowDefinition Height="Auto" />
|
||||||
<RowDefinition Height="Auto" />
|
<RowDefinition Height="Auto" />
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
using System.Reactive.Disposables;
|
using System.Reactive.Disposables;
|
||||||
|
using System.Reactive.Linq;
|
||||||
using System.Windows;
|
using System.Windows;
|
||||||
using ReactiveUI;
|
using ReactiveUI;
|
||||||
|
|
||||||
|
@ -65,18 +66,16 @@ public partial class DNSSettingWindow
|
||||||
this.BindCommand(ViewModel, vm => vm.ImportDefConfig4V2rayCompatibleCmd, v => v.btnImportDefConfig4V2rayCompatible).DisposeWith(disposables);
|
this.BindCommand(ViewModel, vm => vm.ImportDefConfig4V2rayCompatibleCmd, v => v.btnImportDefConfig4V2rayCompatible).DisposeWith(disposables);
|
||||||
this.BindCommand(ViewModel, vm => vm.ImportDefConfig4SingboxCompatibleCmd, v => v.btnImportDefConfig4SingboxCompatible).DisposeWith(disposables);
|
this.BindCommand(ViewModel, vm => vm.ImportDefConfig4SingboxCompatibleCmd, v => v.btnImportDefConfig4SingboxCompatible).DisposeWith(disposables);
|
||||||
|
|
||||||
this.WhenAnyValue(
|
this.WhenAnyValue(x => x.ViewModel.IsSimpleDNSEnabled)
|
||||||
x => x.ViewModel.RayCustomDNSEnableCompatible,
|
.Select(b => b ? Visibility.Collapsed : Visibility.Visible)
|
||||||
x => x.ViewModel.SBCustomDNSEnableCompatible,
|
|
||||||
(ray, sb) => ray && sb ? Visibility.Visible : Visibility.Collapsed)
|
|
||||||
.BindTo(this, x => x.txtBasicDNSSettingsInvalid.Visibility)
|
.BindTo(this, x => x.txtBasicDNSSettingsInvalid.Visibility)
|
||||||
.DisposeWith(disposables);
|
.DisposeWith(disposables);
|
||||||
this.WhenAnyValue(
|
this.WhenAnyValue(x => x.ViewModel.IsSimpleDNSEnabled)
|
||||||
x => x.ViewModel.RayCustomDNSEnableCompatible,
|
.Select(b => b ? Visibility.Collapsed : Visibility.Visible)
|
||||||
x => x.ViewModel.SBCustomDNSEnableCompatible,
|
|
||||||
(ray, sb) => ray && sb ? Visibility.Visible : Visibility.Collapsed)
|
|
||||||
.BindTo(this, x => x.txtAdvancedDNSSettingsInvalid.Visibility)
|
.BindTo(this, x => x.txtAdvancedDNSSettingsInvalid.Visibility)
|
||||||
.DisposeWith(disposables);
|
.DisposeWith(disposables);
|
||||||
|
this.Bind(ViewModel, vm => vm.IsSimpleDNSEnabled, v => v.gridBasicDNSSettings.IsEnabled).DisposeWith(disposables);
|
||||||
|
this.Bind(ViewModel, vm => vm.IsSimpleDNSEnabled, v => v.gridAdvancedDNSSettings.IsEnabled).DisposeWith(disposables);
|
||||||
});
|
});
|
||||||
WindowsUtils.SetDarkBorder(this, AppManager.Instance.Config.UiItem.CurrentTheme);
|
WindowsUtils.SetDarkBorder(this, AppManager.Instance.Config.UiItem.CurrentTheme);
|
||||||
}
|
}
|
||||||
|
|
|
@ -117,7 +117,7 @@
|
||||||
<materialDesign:PopupBox
|
<materialDesign:PopupBox
|
||||||
Grid.Row="2"
|
Grid.Row="2"
|
||||||
Grid.Column="2"
|
Grid.Column="2"
|
||||||
HorizontalAlignment="Right"
|
HorizontalAlignment="Left"
|
||||||
StaysOpen="True"
|
StaysOpen="True"
|
||||||
Style="{StaticResource MaterialDesignToolForegroundPopupBox}">
|
Style="{StaticResource MaterialDesignToolForegroundPopupBox}">
|
||||||
<StackPanel>
|
<StackPanel>
|
||||||
|
|
Loading…
Reference in a new issue