mirror of
https://github.com/2dust/v2rayN.git
synced 2025-10-13 11:59:13 +00:00
481 lines
23 KiB
XML
481 lines
23 KiB
XML
<Window
|
|
x:Class="v2rayN.Desktop.Views.DNSSettingWindow"
|
|
xmlns="https://github.com/avaloniaui"
|
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
|
xmlns:ctrls="clr-namespace:v2rayN.Desktop.Controls"
|
|
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
|
xmlns:resx="clr-namespace:ServiceLib.Resx;assembly=ServiceLib"
|
|
xmlns:vms="clr-namespace:ServiceLib.ViewModels;assembly=ServiceLib"
|
|
Title="{x:Static resx:ResUI.menuDNSSetting}"
|
|
Width="900"
|
|
Height="600"
|
|
x:DataType="vms:DNSSettingViewModel"
|
|
ShowInTaskbar="False"
|
|
WindowStartupLocation="CenterScreen"
|
|
mc:Ignorable="d">
|
|
<DockPanel Margin="{StaticResource Margin8}">
|
|
<StackPanel
|
|
Margin="{StaticResource Margin4}"
|
|
HorizontalAlignment="Center"
|
|
DockPanel.Dock="Bottom"
|
|
Orientation="Horizontal">
|
|
<Button
|
|
x:Name="btnSave"
|
|
Width="100"
|
|
Content="{x:Static resx:ResUI.TbConfirm}"
|
|
IsDefault="True" />
|
|
<Button
|
|
x:Name="btnCancel"
|
|
Width="100"
|
|
Margin="{StaticResource MarginLr8}"
|
|
Content="{x:Static resx:ResUI.TbCancel}"
|
|
IsCancel="True" />
|
|
</StackPanel>
|
|
|
|
<TabControl HorizontalContentAlignment="Stretch">
|
|
<TabItem Header="{x:Static resx:ResUI.ThBasicDNSSettings}">
|
|
<ScrollViewer VerticalScrollBarVisibility="Visible">
|
|
<Grid
|
|
x:Name="gridBasicDNSSettings"
|
|
Margin="{StaticResource Margin8}"
|
|
ColumnDefinitions="Auto,Auto,*"
|
|
RowDefinitions="Auto,Auto,Auto,Auto,Auto,Auto,Auto,Auto,Auto">
|
|
|
|
<TextBlock
|
|
x:Name="txtBasicDNSSettingsInvalid"
|
|
Grid.Row="0"
|
|
Grid.Column="0"
|
|
Margin="{StaticResource Margin4}"
|
|
VerticalAlignment="Center"
|
|
Text="{x:Static resx:ResUI.TbCustomDNSEnabledPageInvalid}" />
|
|
|
|
<TextBlock
|
|
Grid.Row="1"
|
|
Grid.Column="0"
|
|
Margin="{StaticResource Margin4}"
|
|
VerticalAlignment="Center"
|
|
Text="{x:Static resx:ResUI.TbDomesticDNS}" />
|
|
<ctrls:AutoCompleteBox
|
|
x:Name="cmbDirectDNS"
|
|
Grid.Row="1"
|
|
Grid.Column="1"
|
|
Width="300"
|
|
Margin="{StaticResource Margin4}"
|
|
Text="{Binding DirectDNS, Mode=TwoWay}" />
|
|
|
|
<TextBlock
|
|
Grid.Row="2"
|
|
Grid.Column="0"
|
|
Margin="{StaticResource Margin4}"
|
|
VerticalAlignment="Center"
|
|
Text="{x:Static resx:ResUI.TbRemoteDNS}" />
|
|
<ctrls:AutoCompleteBox
|
|
x:Name="cmbRemoteDNS"
|
|
Grid.Row="2"
|
|
Grid.Column="1"
|
|
Width="300"
|
|
Margin="{StaticResource Margin4}"
|
|
Text="{Binding RemoteDNS, Mode=TwoWay}" />
|
|
|
|
<TextBlock
|
|
Grid.Row="3"
|
|
Grid.Column="0"
|
|
Margin="{StaticResource Margin4}"
|
|
VerticalAlignment="Center"
|
|
Text="{x:Static resx:ResUI.TbSBOutboundsResolverDNS}" />
|
|
<ctrls:AutoCompleteBox
|
|
x:Name="cmbSBResolverDNS"
|
|
Grid.Row="3"
|
|
Grid.Column="1"
|
|
Width="300"
|
|
Margin="{StaticResource Margin4}"
|
|
Text="{Binding SingboxOutboundsResolveDNS, Mode=TwoWay}" />
|
|
<TextBlock
|
|
Grid.Row="3"
|
|
Grid.Column="2"
|
|
Margin="{StaticResource Margin4}"
|
|
VerticalAlignment="Center"
|
|
Text="{x:Static resx:ResUI.TbSBOutboundDomainResolve}"
|
|
TextWrapping="Wrap" />
|
|
|
|
<TextBlock
|
|
Grid.Row="4"
|
|
Grid.Column="0"
|
|
Margin="{StaticResource Margin4}"
|
|
VerticalAlignment="Center"
|
|
Text="{x:Static resx:ResUI.TbSBBootstrapDNS}" />
|
|
<ctrls:AutoCompleteBox
|
|
x:Name="cmbSBFinalResolverDNS"
|
|
Grid.Row="4"
|
|
Grid.Column="1"
|
|
Width="300"
|
|
Margin="{StaticResource Margin4}"
|
|
Text="{Binding SingboxFinalResolveDNS, Mode=TwoWay}" />
|
|
<TextBlock
|
|
Grid.Row="4"
|
|
Grid.Column="2"
|
|
Margin="{StaticResource Margin4}"
|
|
VerticalAlignment="Center"
|
|
Text="{x:Static resx:ResUI.TbSBFallbackDNSResolve}"
|
|
TextWrapping="Wrap" />
|
|
|
|
<TextBlock
|
|
Grid.Row="5"
|
|
Grid.Column="0"
|
|
Margin="{StaticResource Margin4}"
|
|
VerticalAlignment="Center"
|
|
Text="{x:Static resx:ResUI.TbXrayFreedomResolveStrategy}" />
|
|
<ComboBox
|
|
x:Name="cmbRayFreedomDNSStrategy"
|
|
Grid.Row="5"
|
|
Grid.Column="1"
|
|
Width="200"
|
|
Margin="{StaticResource Margin4}"
|
|
PlaceholderText="Default" />
|
|
|
|
<TextBlock
|
|
Grid.Row="6"
|
|
Grid.Column="0"
|
|
Margin="{StaticResource Margin4}"
|
|
VerticalAlignment="Center"
|
|
Text="{x:Static resx:ResUI.TbSBDirectResolveStrategy}" />
|
|
<ComboBox
|
|
x:Name="cmbSBDirectDNSStrategy"
|
|
Grid.Row="6"
|
|
Grid.Column="1"
|
|
Width="200"
|
|
Margin="{StaticResource Margin4}"
|
|
PlaceholderText="Default" />
|
|
|
|
<TextBlock
|
|
Grid.Row="7"
|
|
Grid.Column="0"
|
|
Margin="{StaticResource Margin4}"
|
|
VerticalAlignment="Center"
|
|
Text="{x:Static resx:ResUI.TbSBRemoteResolveStrategy}" />
|
|
<ComboBox
|
|
x:Name="cmbSBRemoteDNSStrategy"
|
|
Grid.Row="7"
|
|
Grid.Column="1"
|
|
Width="200"
|
|
Margin="{StaticResource Margin4}"
|
|
PlaceholderText="Default" />
|
|
|
|
<TextBlock
|
|
Grid.Row="8"
|
|
Grid.Column="0"
|
|
Margin="{StaticResource Margin4}"
|
|
VerticalAlignment="Center"
|
|
Text="{x:Static resx:ResUI.TbAddCommonDNSHosts}" />
|
|
<ToggleSwitch
|
|
x:Name="togAddCommonHosts"
|
|
Grid.Row="8"
|
|
Grid.Column="1"
|
|
Margin="{StaticResource Margin4}"
|
|
HorizontalAlignment="Left" />
|
|
<TextBlock
|
|
Grid.Row="8"
|
|
Grid.Column="2"
|
|
Margin="{StaticResource Margin4}"
|
|
VerticalAlignment="Center"
|
|
Text="{x:Static resx:ResUI.TbSBDoHOverride}"
|
|
TextWrapping="Wrap" />
|
|
</Grid>
|
|
</ScrollViewer>
|
|
</TabItem>
|
|
|
|
<TabItem Header="{x:Static resx:ResUI.ThAdvancedDNSSettings}">
|
|
<ScrollViewer VerticalScrollBarVisibility="Visible">
|
|
<Grid
|
|
x:Name="gridAdvancedDNSSettings"
|
|
Margin="{StaticResource Margin8}"
|
|
ColumnDefinitions="Auto,Auto,*"
|
|
RowDefinitions="Auto,Auto,Auto,Auto,Auto,Auto,*">
|
|
|
|
<TextBlock
|
|
x:Name="txtAdvancedDNSSettingsInvalid"
|
|
Grid.Row="0"
|
|
Grid.Column="0"
|
|
Margin="{StaticResource Margin4}"
|
|
VerticalAlignment="Center"
|
|
Text="{x:Static resx:ResUI.TbCustomDNSEnabledPageInvalid}" />
|
|
|
|
<TextBlock
|
|
Grid.Row="1"
|
|
Grid.Column="0"
|
|
Margin="{StaticResource Margin4}"
|
|
VerticalAlignment="Center"
|
|
Text="{x:Static resx:ResUI.TbSettingsUseSystemHosts}" />
|
|
<ToggleSwitch
|
|
x:Name="togUseSystemHosts"
|
|
Grid.Row="1"
|
|
Grid.Column="1"
|
|
Margin="{StaticResource Margin4}"
|
|
HorizontalAlignment="Left" />
|
|
|
|
<TextBlock
|
|
Grid.Row="2"
|
|
Grid.Column="0"
|
|
Margin="{StaticResource Margin4}"
|
|
VerticalAlignment="Center"
|
|
Text="{x:Static resx:ResUI.TbFakeIP}" />
|
|
<ToggleSwitch
|
|
x:Name="togFakeIP"
|
|
Grid.Row="2"
|
|
Grid.Column="1"
|
|
Margin="{StaticResource Margin4}"
|
|
HorizontalAlignment="Left" />
|
|
<TextBlock
|
|
Grid.Row="2"
|
|
Grid.Column="2"
|
|
Margin="{StaticResource Margin4}"
|
|
VerticalAlignment="Center"
|
|
Text="{x:Static resx:ResUI.TbFakeIPTips}"
|
|
TextWrapping="Wrap" />
|
|
|
|
<TextBlock
|
|
Grid.Row="3"
|
|
Grid.Column="0"
|
|
Margin="{StaticResource Margin4}"
|
|
VerticalAlignment="Center"
|
|
Text="{x:Static resx:ResUI.TbBlockSVCBHTTPSQueries}" />
|
|
<ToggleSwitch
|
|
x:Name="togBlockBindingQuery"
|
|
Grid.Row="3"
|
|
Grid.Column="1"
|
|
Margin="{StaticResource Margin4}"
|
|
HorizontalAlignment="Left" />
|
|
<TextBlock
|
|
Grid.Row="3"
|
|
Grid.Column="2"
|
|
Margin="{StaticResource Margin4}"
|
|
VerticalAlignment="Center"
|
|
Text="{x:Static resx:ResUI.TbBlockSVCBHTTPSQueriesTips}"
|
|
TextWrapping="Wrap" />
|
|
|
|
<TextBlock
|
|
Grid.Row="4"
|
|
Grid.Column="0"
|
|
Margin="{StaticResource Margin4}"
|
|
VerticalAlignment="Center"
|
|
Text="{x:Static resx:ResUI.TbValidateDirectExpectedIPs}" />
|
|
<ctrls:AutoCompleteBox
|
|
x:Name="cmbDirectExpectedIPs"
|
|
Grid.Row="4"
|
|
Grid.Column="1"
|
|
Width="200"
|
|
Margin="{StaticResource Margin4}"
|
|
Text="{Binding DirectExpectedIPs, Mode=TwoWay}" />
|
|
<TextBlock
|
|
Grid.Row="4"
|
|
Grid.Column="2"
|
|
Margin="{StaticResource Margin4}"
|
|
VerticalAlignment="Center"
|
|
Text="{x:Static resx:ResUI.TbValidateDirectExpectedIPsDesc}"
|
|
TextWrapping="Wrap" />
|
|
|
|
<TextBlock
|
|
Grid.Row="5"
|
|
Grid.Column="0"
|
|
Grid.ColumnSpan="3"
|
|
Margin="{StaticResource Margin4}"
|
|
VerticalAlignment="Center"
|
|
Text="{x:Static resx:ResUI.TbDNSHostsConfig}" />
|
|
|
|
<TextBox
|
|
x:Name="txtHosts"
|
|
Grid.Row="6"
|
|
Grid.Column="0"
|
|
Grid.ColumnSpan="3"
|
|
Margin="{StaticResource Margin4}"
|
|
VerticalAlignment="Stretch"
|
|
BorderThickness="1"
|
|
Classes="TextArea"
|
|
TextWrapping="Wrap"
|
|
Watermark="{x:Static resx:ResUI.TbDNSHostsConfig}" />
|
|
</Grid>
|
|
</ScrollViewer>
|
|
</TabItem>
|
|
|
|
<TabItem Header="{x:Static resx:ResUI.TbSettingsCoreDns}">
|
|
<DockPanel Margin="{StaticResource Margin8}">
|
|
<Grid DockPanel.Dock="Top">
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="Auto" />
|
|
<RowDefinition Height="Auto" />
|
|
</Grid.RowDefinitions>
|
|
|
|
<StackPanel Grid.Row="0" Orientation="Horizontal">
|
|
<TextBlock
|
|
Margin="{StaticResource Margin4}"
|
|
VerticalAlignment="Center"
|
|
Text="{x:Static resx:ResUI.TbCustomDNSEnable}" />
|
|
<ToggleSwitch
|
|
x:Name="togRayCustomDNSEnableCompatible"
|
|
Margin="{StaticResource Margin4}"
|
|
HorizontalAlignment="Left" />
|
|
</StackPanel>
|
|
|
|
<StackPanel Grid.Row="1" Orientation="Horizontal">
|
|
<TextBlock
|
|
Margin="{StaticResource Margin4}"
|
|
VerticalAlignment="Center"
|
|
Text="{x:Static resx:ResUI.TbSettingsRemoteDNS}" />
|
|
|
|
<TextBlock Margin="{StaticResource Margin4}" VerticalAlignment="Center">
|
|
<HyperlinkButton Classes="WithIcon" Click="linkDnsObjectDoc_Click">
|
|
<TextBlock Text="{x:Static resx:ResUI.TbDnsObjectDoc}" />
|
|
</HyperlinkButton>
|
|
</TextBlock>
|
|
<Button
|
|
x:Name="btnImportDefConfig4V2rayCompatible"
|
|
Margin="{StaticResource Margin4}"
|
|
Content="{x:Static resx:ResUI.TbSettingDnsImportDefConfig}" />
|
|
</StackPanel>
|
|
</Grid>
|
|
|
|
<WrapPanel DockPanel.Dock="Bottom" Orientation="Horizontal">
|
|
<StackPanel Orientation="Horizontal">
|
|
<TextBlock
|
|
Margin="{StaticResource Margin4}"
|
|
VerticalAlignment="Center"
|
|
Text="{x:Static resx:ResUI.TbSettingsUseSystemHosts}" />
|
|
<ToggleSwitch
|
|
x:Name="togUseSystemHostsCompatible"
|
|
Margin="{StaticResource Margin4}"
|
|
HorizontalAlignment="Left" />
|
|
</StackPanel>
|
|
|
|
<StackPanel Orientation="Horizontal">
|
|
<TextBlock
|
|
Margin="{StaticResource Margin4}"
|
|
VerticalAlignment="Center"
|
|
Text="{x:Static resx:ResUI.TbSettingsDomainStrategy4Freedom}" />
|
|
<ComboBox
|
|
x:Name="cmbdomainStrategy4FreedomCompatible"
|
|
Width="150"
|
|
Margin="{StaticResource Margin4}" />
|
|
</StackPanel>
|
|
|
|
<StackPanel Orientation="Horizontal">
|
|
<TextBlock
|
|
Margin="{StaticResource Margin4}"
|
|
VerticalAlignment="Center"
|
|
Text="{x:Static resx:ResUI.TbSettingsDomainDNSAddress}" />
|
|
<ctrls:AutoCompleteBox
|
|
x:Name="cmbdomainDNSAddressCompatible"
|
|
Width="150"
|
|
Margin="{StaticResource Margin4}"
|
|
Text="{Binding DomainDNSAddressCompatible, Mode=TwoWay}" />
|
|
</StackPanel>
|
|
</WrapPanel>
|
|
|
|
<HeaderedContentControl
|
|
Margin="{StaticResource Margin4}"
|
|
BorderBrush="Gray"
|
|
BorderThickness="1"
|
|
Header="HTTP/SOCKS">
|
|
<TextBox
|
|
Name="txtnormalDNSCompatible"
|
|
VerticalAlignment="Stretch"
|
|
Classes="TextArea"
|
|
MinLines="10"
|
|
TextWrapping="Wrap" />
|
|
</HeaderedContentControl>
|
|
</DockPanel>
|
|
</TabItem>
|
|
|
|
<TabItem Header="{x:Static resx:ResUI.TbSettingsCoreDnsSingbox}">
|
|
<DockPanel Margin="{StaticResource Margin8}">
|
|
<Grid DockPanel.Dock="Top">
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="Auto" />
|
|
<RowDefinition Height="Auto" />
|
|
</Grid.RowDefinitions>
|
|
|
|
<StackPanel Grid.Row="0" Orientation="Horizontal">
|
|
<TextBlock
|
|
Margin="{StaticResource Margin4}"
|
|
VerticalAlignment="Center"
|
|
Text="{x:Static resx:ResUI.TbCustomDNSEnable}" />
|
|
<ToggleSwitch
|
|
x:Name="togSBCustomDNSEnableCompatible"
|
|
Margin="{StaticResource Margin4}"
|
|
HorizontalAlignment="Left" />
|
|
</StackPanel>
|
|
|
|
<StackPanel Grid.Row="1" Orientation="Horizontal">
|
|
<TextBlock Margin="{StaticResource Margin4}" VerticalAlignment="Center">
|
|
<HyperlinkButton Classes="WithIcon" Click="linkDnsSingboxObjectDoc_Click">
|
|
<TextBlock Text="{x:Static resx:ResUI.TbDnsSingboxObjectDoc}" />
|
|
</HyperlinkButton>
|
|
</TextBlock>
|
|
<Button
|
|
x:Name="btnImportDefConfig4SingboxCompatible"
|
|
Margin="{StaticResource Margin4}"
|
|
Content="{x:Static resx:ResUI.TbSettingDnsImportDefConfig}" />
|
|
</StackPanel>
|
|
</Grid>
|
|
|
|
<WrapPanel DockPanel.Dock="Bottom" Orientation="Horizontal">
|
|
<StackPanel Orientation="Horizontal">
|
|
<TextBlock
|
|
Margin="{StaticResource Margin4}"
|
|
VerticalAlignment="Center"
|
|
Text="{x:Static resx:ResUI.TbSettingsDomainStrategy4Out}" />
|
|
<ComboBox
|
|
x:Name="cmbdomainStrategy4OutCompatible"
|
|
Width="150"
|
|
Margin="{StaticResource Margin4}" />
|
|
</StackPanel>
|
|
|
|
<StackPanel Orientation="Horizontal">
|
|
<TextBlock
|
|
Margin="{StaticResource Margin4}"
|
|
VerticalAlignment="Center"
|
|
Text="{x:Static resx:ResUI.TbSettingsDomainDNSAddress}" />
|
|
<ctrls:AutoCompleteBox
|
|
x:Name="cmbdomainDNSAddress2Compatible"
|
|
Width="150"
|
|
Margin="{StaticResource Margin4}"
|
|
Text="{Binding DomainDNSAddress2Compatible, Mode=TwoWay}" />
|
|
</StackPanel>
|
|
</WrapPanel>
|
|
|
|
<Grid Margin="{StaticResource Margin4}" ColumnDefinitions="*,10,*">
|
|
|
|
<HeaderedContentControl
|
|
Grid.Column="0"
|
|
BorderBrush="Gray"
|
|
BorderThickness="1"
|
|
Header="HTTP/SOCKS">
|
|
<TextBox
|
|
Name="txtnormalDNS2Compatible"
|
|
VerticalAlignment="Stretch"
|
|
Classes="TextArea"
|
|
MinLines="10"
|
|
TextWrapping="Wrap" />
|
|
</HeaderedContentControl>
|
|
|
|
<GridSplitter Grid.Column="1" HorizontalAlignment="Stretch" />
|
|
|
|
<HeaderedContentControl
|
|
Grid.Column="2"
|
|
BorderBrush="Gray"
|
|
BorderThickness="1"
|
|
Header="{x:Static resx:ResUI.TbSettingsTunMode}">
|
|
<TextBox
|
|
Name="txttunDNS2Compatible"
|
|
VerticalAlignment="Stretch"
|
|
Classes="TextArea"
|
|
MinLines="10"
|
|
TextWrapping="Wrap" />
|
|
</HeaderedContentControl>
|
|
|
|
</Grid>
|
|
</DockPanel>
|
|
</TabItem>
|
|
</TabControl>
|
|
</DockPanel>
|
|
</Window>
|