<local:MyPageRight
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="clr-namespace:PCL" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
    mc:Ignorable="d" x:Class="PageLinkSetup"
    PanScroll="{Binding ElementName=PanBack}">
    <local:MyScrollViewer VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Disabled" x:Name="PanBack">
        <StackPanel x:Name="PanMain" Margin="25,10">
            <local:MyCard Margin="0,10,0,0" Title="Natayark ID" x:Name="CardLogged">
                <StackPanel Margin="25,40,25,20" Orientation="Vertical">
                    <Grid>
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="Auto" SharedSizeGroup="Name" />
                            <ColumnDefinition Width="1*" />
                        </Grid.ColumnDefinitions>
                        <Grid.RowDefinitions>
                            <RowDefinition Height="30" />
                            <RowDefinition Height="10" />
                            <RowDefinition Height="30" />
                        </Grid.RowDefinitions>
                        <TextBlock x:Name="TextUsername" Grid.Row="0" VerticalAlignment="Center" HorizontalAlignment="Left" 
                                   Text="已以 玩家 的身份登录至 Natayark Network" />
                        <local:MyButton x:Name="BtnLogout" Grid.Row="0" Grid.Column="1" VerticalAlignment="Stretch" HorizontalAlignment="Right" 
                                        Width="100" ColorType="Highlight" Text="退出登录"/>
                        <local:MyButton x:Name="BtnManage" Grid.Row="2" Grid.Column="1" VerticalAlignment="Stretch" HorizontalAlignment="Right" 
                            Width="100" ColorType="Normal" Text="账号管理" EventType="打开网页" EventData="https://account.naids.com/dashboard"/>
                        <TextBlock x:Name="TextStatus" Grid.Row="2" VerticalAlignment="Center" HorizontalAlignment="Left" 
                            Text="账号状态：正常 / 已完成实名验证" />
                    </Grid>
                </StackPanel>
            </local:MyCard>
            <local:MyCard Margin="0,10,0,0" Title="Natayark ID" x:Name="CardNotLogged">
                <StackPanel Margin="25,40,25,20" Orientation="Vertical">
                    <Grid>
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="Auto" SharedSizeGroup="Name" />
                            <ColumnDefinition Width="1*" />
                            <ColumnDefinition Width="100" />
                            <ColumnDefinition Width="10" />
                            <ColumnDefinition Width="100" />
                        </Grid.ColumnDefinitions>
                        <Grid.RowDefinitions>
                            <RowDefinition Height="30" />
                        </Grid.RowDefinitions>
                        <TextBlock x:Name="TextLogin" Grid.Row="0" VerticalAlignment="Center" HorizontalAlignment="Left" Text="登录 Natayark ID 或在下方填写用户名以使用大厅" />
                        <local:MyButton x:Name="BtnLogin" Grid.Row="0" Grid.Column="2" VerticalAlignment="Stretch" HorizontalAlignment="Right" 
                            Width="100" ColorType="Highlight" Text="登录"/>
                        <local:MyButton x:Name="BtnRegister" Grid.Row="0" Grid.Column="4" VerticalAlignment="Stretch" HorizontalAlignment="Right" 
                            Width="100" ColorType="Normal" Text="注册" EventType="打开网页" EventData="https://account.naids.com/register"/>
                        <local:MyButton x:Name="BtnCancel" Grid.Row="0" Grid.Column="4" VerticalAlignment="Stretch" HorizontalAlignment="Right" Width="100" ColorType="Normal" Text="取消登录" Visibility="Collapsed"/>
                    </Grid>
                </StackPanel>
            </local:MyCard>
            <local:MyCard Margin="0,10,0,0" Title="EasyTier">
                <StackPanel Margin="25,40,25,15" Orientation="Vertical">
                    <local:MyHint Text="修改此处的设置后，需要重新启动大厅以使设置生效。" Theme="Yellow" Margin="0,0,0,10"/>
                    <Grid>
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="Auto" SharedSizeGroup="TextBlock"/>
                            <ColumnDefinition Width="8" />
                            <ColumnDefinition Width="1*" />
                        </Grid.ColumnDefinitions>
                        <Grid.RowDefinitions>
                            <RowDefinition Height="28" />
                            <RowDefinition Height="8" />
                            <RowDefinition Height="28" />
                            <RowDefinition Height="8" />
                            <RowDefinition Height="Auto" MinHeight="28"/>
                            <RowDefinition Height="8" />
                            <RowDefinition Height="28" />
                            <RowDefinition Height="8" />
                            <RowDefinition Height="28" />
                            <RowDefinition Height="8" />
                            <RowDefinition Height="28" />
                            <RowDefinition Height="4" />
                            <RowDefinition Height="28" />
                            <RowDefinition Height="28" />
                            <RowDefinition Height="28" />
                        </Grid.RowDefinitions>
                        <TextBlock Grid.Row="0" VerticalAlignment="Center" HorizontalAlignment="Left" Text="用户名" Margin="0,0,25,0" />
                        <local:MyTextBox x:Name="TextLinkUsername" Grid.Row="0" Grid.ColumnSpan="2" Tag="LinkUsername" Grid.Column="2" ToolTip="PCL CE 会尽可能使用此处的用户名用于大厅信息展示。&#xa;若留空，则使用 Natayark ID 的用户名。&#xa;&#xa;部分情况下可能始终展示 Natayark ID 用户名，而非此处设置的名称。"/>
                        <TextBlock Grid.Row="2" VerticalAlignment="Center" HorizontalAlignment="Left" Text="自定义节点" Margin="0,0,25,0" />
                        <local:MyTextBox x:Name="TextLinkRelay" Grid.Row="2" Grid.ColumnSpan="2" Tag="LinkRelayServer" Grid.Column="2" HintText="一般应以 tcp:// 或 udp:// 开头；若有多个，请使用英文分号分割">
                            <local:MyTextBox.ValidateRules>
                                <local:ValidateNullable />
                                <local:ValidateNullOrWhiteSpace />
                            </local:MyTextBox.ValidateRules>
                        </local:MyTextBox>
                        <TextBlock Grid.Row="4" VerticalAlignment="Center" HorizontalAlignment="Left" Text="预设节点"/>
                        <TextBlock x:Name="TextRelays" Grid.Row="4" Grid.Column="2" Grid.ColumnSpan="2" VerticalAlignment="Center" HorizontalAlignment="Left" Text="正在获取..." TextWrapping="WrapWithOverflow"/>
                        <TextBlock Grid.Row="6" VerticalAlignment="Center" HorizontalAlignment="Left" Text="中继行为"/>
                        <local:MyComboBox x:Name="ComboRelayType" Tag="LinkRelayType" Grid.Row="6" Grid.Column="2">
                            <local:MyComboBoxItem Content="自动决定（推荐）" ToolTip="让 EasyTier 自行决定连接方式，适用于绝大多数用户。&#xa;EasyTier 将会尽可能建立 P2P 连接，仅在 P2P 连接未能建立时使用中继。"/>
                            <local:MyComboBoxItem Content="仅中继" ToolTip="数据将仅通过中继节点进行转发，仅推荐在完全无法连接或极端卡顿的情况下尝试。"/>
                        </local:MyComboBox>
                        <TextBlock Grid.Row="8" VerticalAlignment="Center" HorizontalAlignment="Left" Text="节点行为"/>
                        <local:MyComboBox x:Name="ComboServerType" Tag="LinkServerType" Grid.Row="8" Grid.Column="2">
                            <local:MyComboBoxItem Content="仅自有节点协助中继" ToolTip="仅通过 PCL CE 自有节点通信。&#xa;自有节点由 PCL CE 官方部署，一般情况下此选项已经足够使用。"/>
                            <local:MyComboBoxItem Content="自有节点 + 社区节点 协助中继" ToolTip="除自有节点外，添加由 PCL CE 挑选的部分 EasyTier 社区提供的节点。&#xa;这些节点由社区志愿者部署，可能可以提供更快的连接速度。"/>
                            <local:MyComboBoxItem Content="不使用预设节点中继 (谨慎选择)" ToolTip="不使用任何预设节点中继数据。&#xa;联机双方将需要添加至少一个相同的自定义节点才可以连接。&#xa;这要求你具备一定技术能力且有特殊需要，在绝大多数情况下不要选择此选项！"/>
                        </local:MyComboBox>
                        <TextBlock Grid.Row="10" VerticalAlignment="Center" HorizontalAlignment="Left" Text="协议偏好"/>
                        <local:MyComboBox x:Name="ComboPreferProtocol" Tag="LinkProtocolPreference" Grid.Row="10" Grid.Column="2">
                            <local:MyComboBoxItem Content="TCP" ToolTip="让 EasyTier 优先使用 TCP 进行通信，TCP 通常能带来更好的稳定性"/>
                            <local:MyComboBoxItem Content="UDP" ToolTip="让 EasyTier 优先使用 UDP 进行通信，UDP 通常能带来更低的通信时延"/>
                        </local:MyComboBox>
                        <local:MyCheckBox x:Name="CheckLatencyFirstMode" Tag="LinkLatencyFirstMode" Grid.Row="12" Grid.ColumnSpan="3" Text="选择最低延迟路径而不是最短路径" ToolTip="启用后，EasyTier 将在通信时选择延迟最低的路径，而不是路由跳数最少的路径。&#xa;启用此选项在部分情况下能降低联机时的延迟，但可能会提高丢包率。"/>
                        <local:MyCheckBox x:Name="CheckTryPaunchSym" Tag="LinkTryPunchSym" Grid.Row="13" Grid.ColumnSpan="3" Text="尝试在对称型 NAT 下打洞" ToolTip="让 EasyTier 尝试打通对称型 NAT。&#xa;这也许可以改善联机体验，但在部分情况下也可能导致一些问题。&#xa;一般保持开启即可。"/>
                        <local:MyCheckBox x:Name="CheckEnableIPv6" Tag="LinkEnableIPv6" Grid.Row="14" Grid.ColumnSpan="3" Text="允许使用 IPv6 通信" ToolTip="IPv6 相比于 IPv4 更加容易进行 P2P 通信，能极大改善联机体验，除有特殊原因外不建议关闭。"/>
                    </Grid>
                </StackPanel>
            </local:MyCard>
            <local:MyCard Margin="0,10,0,0" Title="停止使用">
                <StackPanel Margin="25,40,25,15" Orientation="Vertical">
                    <Grid>
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="Auto"/>
                        </Grid.ColumnDefinitions>
                        <Grid.RowDefinitions>
                            <RowDefinition Height="Auto"/>
                            <RowDefinition Height="10"/>
                            <RowDefinition Height="Auto"/>
                        </Grid.RowDefinitions>
                        <TextBlock Text="若要撤回协议授权并停止使用 PCL CE 联机大厅，请点击下面的按钮。&#xa;PCL CE 将会从 Natayark Network 登出，并关闭联机功能。&#xa;&#xa;需要注意，Natayark ID 注销需要前往其用户中心操作。" Grid.Row="0" VerticalAlignment="Stretch" HorizontalAlignment="Left" TextWrapping="Wrap"/>
                        <local:MyButton x:Name="BtnQuit" Text="撤回授权并停止使用" Grid.Row="2" Width="180" Height="30" VerticalAlignment="Center" HorizontalAlignment="Left" ColorType="Red"/>
                    </Grid>
                </StackPanel>
            </local:MyCard>
        </StackPanel>
    </local:MyScrollViewer>
</local:MyPageRight>
