| 1 | <Page |
| 2 | x:Class="WslSettings.Views.Settings.NetworkingPage" |
| 3 | xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" |
| 4 | xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" |
| 5 | xmlns:ctControls="using:CommunityToolkit.WinUI.Controls" |
| 6 | xmlns:behaviors="using:WslSettings.Behaviors" |
| 7 | behaviors:NavigationViewHeaderBehavior.HeaderMode="Never"> |
| 8 | |
| 9 | <Grid Margin="{ThemeResource ContentPageMargin}" |
| 10 | IsTabStop="True" |
| 11 | AutomationProperties.LandmarkType="Main" |
| 12 | x:Name="NetworkingPageRoot"> |
| 13 | <Grid.RowDefinitions> |
| 14 | <RowDefinition Height="Auto" /> |
| 15 | <RowDefinition Height="Auto" /> |
| 16 | <RowDefinition Height="*" /> |
| 17 | </Grid.RowDefinitions> |
| 18 | <TextBlock x:Uid="Settings_NetworkingPageTitle" Style="{ThemeResource PageHeaderTextBlockStyle}" Margin="{StaticResource MediumSmallBottomMargin}" HorizontalAlignment="Left" AutomationProperties.HeadingLevel="Level1"/> |
| 19 | <TextBlock x:Uid="Settings_ErrorTryAgainLater" x:Name="Settings_ErrorTryAgainLater" Grid.Row="1" HorizontalAlignment="Left" AutomationProperties.LiveSetting="Assertive" |
| 20 | Visibility="{x:Bind ViewModel.ErrorVisibility, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, Converter={StaticResource BooleanToVisibilityConverter}}"/> |
| 21 | <ScrollViewer Grid.Row="2" VerticalScrollBarVisibility="Auto" |
| 22 | Visibility="{x:Bind ViewModel.SettingsContentVisibility, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, Converter={StaticResource BooleanToVisibilityConverter}}"> |
| 23 | <StackPanel Spacing="{StaticResource SettingsCardSpacing}"> |
| 24 | <ctControls:SettingsCard x:Uid="Settings_NetworkingMode"> |
| 25 | <ComboBox x:Uid="Settings_NetworkingModeComboBox" Style="{StaticResource ComboBoxSettingStyle}" HorizontalAlignment="Right" |
| 26 | ItemsSource="{x:Bind ViewModel.NetworkingModes}" SelectedIndex="{x:Bind ViewModel.NetworkingModeSelected, Mode=TwoWay}"/> |
| 27 | </ctControls:SettingsCard> |
| 28 | <ctControls:SettingsCard x:Uid="Settings_HyperVFirewall"> |
| 29 | <ToggleSwitch x:Uid="Settings_HyperVFirewallToggleSwitch" HorizontalAlignment="Right" MinWidth="0" IsOn="{x:Bind ViewModel.IsOnHyperVFirewall, Mode=TwoWay}"/> |
| 30 | </ctControls:SettingsCard> |
| 31 | <ctControls:SettingsExpander x:Name="IgnoredPortsExpander" x:Uid="Settings_IgnoredPorts"> |
| 32 | <TextBlock Style="{StaticResource TextBlockSettingStyle}" Text="{x:Bind ViewModel.IgnoredPorts, Mode=OneWay}"/> |
| 33 | <ctControls:SettingsExpander.Items> |
| 34 | <ctControls:SettingsCard HorizontalContentAlignment="Left" ContentAlignment="Left" Margin="{StaticResource SettingsExpanderItemMargin}"> |
| 35 | <StackPanel Orientation="Horizontal"> |
| 36 | <TextBox x:Name="IgnoredPortsTextBox" x:Uid="Settings_IgnoredPortsTextBox" Style="{StaticResource TextBoxSettingStyle}" Margin="{StaticResource InputControlSpacingMargin}" |
| 37 | Text="{x:Bind ViewModel.IgnoredPorts, Mode=TwoWay, UpdateSourceTrigger=LostFocus}"/> |
| 38 | <Button x:Uid="Settings_IgnoredPortsResetButton" Style="{StaticResource ButtonSettingStyle}" Margin="{StaticResource InputControlSpacingMargin}" |
| 39 | Command="{x:Bind ViewModel.IgnoredPorts_ResetCommand}" IsEnabled="{x:Bind ViewModel.IgnoredPorts_ResetEnabled, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" |
| 40 | Click="Settings_ResetButton_Click"/> |
| 41 | </StackPanel> |
| 42 | </ctControls:SettingsCard> |
| 43 | </ctControls:SettingsExpander.Items> |
| 44 | </ctControls:SettingsExpander> |
| 45 | <ctControls:SettingsCard x:Uid="Settings_LocalhostForwarding"> |
| 46 | <ToggleSwitch x:Uid="Settings_LocalhostForwardingToggleSwitch" HorizontalAlignment="Right" MinWidth="0" IsOn="{x:Bind ViewModel.IsOnLocalhostForwarding, Mode=TwoWay}"/> |
| 47 | </ctControls:SettingsCard> |
| 48 | <ctControls:SettingsCard x:Uid="Settings_HostAddressLoopback"> |
| 49 | <ToggleSwitch x:Uid="Settings_HostAddressLoopbackToggleSwitch" HorizontalAlignment="Right" MinWidth="0" IsOn="{x:Bind ViewModel.IsOnHostAddressLoopback, Mode=TwoWay}"/> |
| 50 | </ctControls:SettingsCard> |
| 51 | <ctControls:SettingsCard x:Uid="Settings_AutoProxy"> |
| 52 | <ToggleSwitch x:Uid="Settings_AutoProxyToggleSwitch" HorizontalAlignment="Right" MinWidth="0" IsOn="{x:Bind ViewModel.IsOnAutoProxy, Mode=TwoWay}"/> |
| 53 | </ctControls:SettingsCard> |
| 54 | <ctControls:SettingsExpander x:Name="InitialAutoProxyTimeoutExpander" x:Uid="Settings_InitialAutoProxyTimeout"> |
| 55 | <TextBlock Style="{StaticResource TextBlockSettingStyle}" Text="{x:Bind ViewModel.InitialAutoProxyTimeout, Mode=OneWay, Converter={StaticResource MillisecondsStringConverter}}"/> |
| 56 | <ctControls:SettingsExpander.Items> |
| 57 | <ctControls:SettingsCard HorizontalContentAlignment="Left" ContentAlignment="Left" Margin="{StaticResource SettingsExpanderItemMargin}"> |
| 58 | <StackPanel Orientation="Horizontal"> |
| 59 | <TextBox x:Name="InitialAutoProxyTimeoutTextBox" x:Uid="Settings_InitialAutoProxyTimeoutTextBox" Style="{StaticResource TextBoxSettingStyle}" Margin="{StaticResource InputControlSpacingMargin}" |
| 60 | Text="{x:Bind ViewModel.InitialAutoProxyTimeout, Mode=TwoWay, UpdateSourceTrigger=LostFocus}" TextChanged="InitialAutoProxyTimeoutTextBox_TextChanged"/> |
| 61 | <Button x:Uid="Settings_InitialAutoProxyTimeoutResetButton" Style="{StaticResource ButtonSettingStyle}" Margin="{StaticResource InputControlSpacingMargin}" |
| 62 | Command="{x:Bind ViewModel.InitialAutoProxyTimeout_ResetCommand}" IsEnabled="{x:Bind ViewModel.InitialAutoProxyTimeout_ResetEnabled, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" |
| 63 | Click="Settings_ResetButton_Click"/> |
| 64 | </StackPanel> |
| 65 | </ctControls:SettingsCard> |
| 66 | </ctControls:SettingsExpander.Items> |
| 67 | </ctControls:SettingsExpander> |
| 68 | <ctControls:SettingsCard x:Uid="Settings_DNSProxy"> |
| 69 | <ToggleSwitch x:Uid="Settings_DNSProxyToggleSwitch" HorizontalAlignment="Right" MinWidth="0" IsOn="{x:Bind ViewModel.IsOnDNSProxy, Mode=TwoWay}"/> |
| 70 | </ctControls:SettingsCard> |
| 71 | <ctControls:SettingsCard x:Uid="Settings_DNSTunneling"> |
| 72 | <ToggleSwitch x:Uid="Settings_DNSTunnelingToggleSwitch" HorizontalAlignment="Right" MinWidth="0" IsOn="{x:Bind ViewModel.IsOnDNSTunneling, Mode=TwoWay}"/> |
| 73 | </ctControls:SettingsCard> |
| 74 | <ctControls:SettingsCard x:Uid="Settings_BestEffortDNS"> |
| 75 | <ToggleSwitch x:Uid="Settings_BestEffortDNSToggleSwitch" HorizontalAlignment="Right" MinWidth="0" IsOn="{x:Bind ViewModel.IsOnBestEffortDNS, Mode=TwoWay}"/> |
| 76 | </ctControls:SettingsCard> |
| 77 | </StackPanel> |
| 78 | </ScrollViewer> |
| 79 | </Grid> |
| 80 | </Page> |