<v:ChromelessWindow xmlns="https://github.com/avaloniaui"
                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
                    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
                    xmlns:m="using:SourceGit.Models"
                    xmlns:c="using:SourceGit.Converters"
                    xmlns:vm="using:SourceGit.ViewModels"
                    xmlns:v="using:SourceGit.Views"
                    mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
                    x:Class="SourceGit.Views.Preference"
                    x:DataType="vm:Preference"
                    x:Name="ThisControl"
                    Icon="/App.ico"
                    Title="{DynamicResource Text.Preference}"
                    SizeToContent="WidthAndHeight"
                    CanResize="False"
                    WindowStartupLocation="CenterScreen">
  <Grid RowDefinitions="Auto,Auto" MinWidth="600">
    <!-- TitleBar -->
    <Grid Grid.Row="0" ColumnDefinitions="Auto,*,Auto" Height="30" IsVisible="{Binding !#ThisControl.UseSystemWindowFrame}">
      <Border Grid.Column="0" Grid.ColumnSpan="3"
              Background="{DynamicResource Brush.TitleBar}"
              BorderThickness="0,0,0,1" BorderBrush="{DynamicResource Brush.Border0}"
              PointerPressed="BeginMoveWindow"/>

      <Path Grid.Column="0"
            Width="14" Height="14"
            Data="{StaticResource Icons.Settings}"
            Margin="10,0,0,0"
            IsVisible="{OnPlatform True, macOS=False}"/>

      <v:CaptionButtonsMacOS Grid.Column="0"
                             Margin="0,2,0,0"
                             IsCloseButtonOnly="True"
                             IsVisible="{OnPlatform False, macOS=True}"/>

      <TextBlock Grid.Column="0" Grid.ColumnSpan="3"
                 Classes="bold"
                 Text="{DynamicResource Text.Preference}"
                 HorizontalAlignment="Center" VerticalAlignment="Center"
                 IsHitTestVisible="False"/>

      <v:CaptionButtons Grid.Column="2"
                        IsCloseButtonOnly="True"
                        IsVisible="{OnPlatform True, macOS=False}"/>
    </Grid>

    <!-- Body -->
    <Border Grid.Row="1">
      <TabControl>
        <TabItem>
          <TabItem.Header>
            <TextBlock Classes="tab_header" Text="{DynamicResource Text.Preference.General}"/>
          </TabItem.Header>
          <Grid Margin="8" RowDefinitions="32,32,32,32,32" ColumnDefinitions="Auto,*">            
            <TextBlock Grid.Row="0" Grid.Column="0"
                       Text="{DynamicResource Text.Preference.General.Locale}"
                       HorizontalAlignment="Right"
                       Margin="0,0,16,0"/>
            <ComboBox Grid.Row="0" Grid.Column="1"
                      MinHeight="28"
                      Padding="8,0"
                      HorizontalAlignment="Stretch"
                      ItemsSource="{Binding Source={x:Static m:Locale.Supported}}"
                      DisplayMemberBinding="{Binding Name, x:DataType=m:Locale}"
                      SelectedItem="{Binding Locale, Mode=TwoWay, Converter={x:Static c:StringConverters.ToLocale}}"/>

            <TextBlock Grid.Row="1" Grid.Column="0"
                       Text="{DynamicResource Text.Preference.Git.DefaultCloneDir}"
                       HorizontalAlignment="Right"
                       Margin="0,0,16,0"/>
            <TextBox Grid.Row="1" Grid.Column="1"
                     Height="28"
                     CornerRadius="3"
                     Text="{Binding GitDefaultCloneDir, Mode=TwoWay}">
              <TextBox.InnerRightContent>
                <Button Classes="icon_button" Width="30" Height="30" Click="SelectDefaultCloneDir">
                  <Path Data="{StaticResource Icons.Folder.Open}" Fill="{DynamicResource Brush.FG1}"/>
                </Button>
              </TextBox.InnerRightContent>
            </TextBox>

            <TextBlock Grid.Row="2" Grid.Column="0"
                       Text="{DynamicResource Text.Preference.General.SubjectGuideLength}"
                       HorizontalAlignment="Right"
                       Margin="0,0,16,0"/>
            <NumericUpDown Grid.Row="2" Grid.Column="1"
                           Minimum="50" Maximum="1000" Increment="1"
                           Height="28"
                           Padding="4"
                           ShowButtonSpinner="False"
                           BorderThickness="1" BorderBrush="{DynamicResource Brush.Border1}"
                           CornerRadius="3"
                           Value="{Binding SubjectGuideLength, Mode=TwoWay}"/>

            <TextBlock Grid.Row="3" Grid.Column="0"
                       Text="{DynamicResource Text.Preference.General.MaxHistoryCommits}"
                       HorizontalAlignment="Right"
                       Margin="0,0,16,0"/>
            <Grid Grid.Row="3" Grid.Column="1" ColumnDefinitions="*,64">
              <Slider Grid.Column="0"
                      Minimum="5000" Maximum="100000"
                      TickPlacement="BottomRight" TickFrequency="5000"
                      IsSnapToTickEnabled="True"
                      VerticalAlignment="Center"
                      Foreground="{DynamicResource Brush.Border1}"
                      Value="{Binding MaxHistoryCommits, Mode=TwoWay}"/>

              <TextBlock Grid.Column="1"
                         HorizontalAlignment="Right" VerticalAlignment="Center"
                         Foreground="{DynamicResource Brush.FG1}"
                         Text="{Binding MaxHistoryCommits}"/>
            </Grid>

            <CheckBox Grid.Row="4" Grid.Column="1"
                      Height="32"
                      Content="{DynamicResource Text.Preference.General.Check4UpdatesOnStartup}"
                      IsChecked="{Binding Source={x:Static vm:Preference.Instance}, Path=Check4UpdatesOnStartup, Mode=TwoWay}"/>
          </Grid>
        </TabItem>

        <TabItem>
          <TabItem.Header>
            <TextBlock Classes="tab_header" Text="{DynamicResource Text.Preference.Appearance}"/>
          </TabItem.Header>
          <Grid Margin="8" RowDefinitions="32,32,32,32,32,32,32,Auto" ColumnDefinitions="Auto,*">
            <TextBlock Grid.Row="0" Grid.Column="0"
                       Text="{DynamicResource Text.Preference.Appearance.Theme}"
                       HorizontalAlignment="Right"
                       Margin="0,0,16,0"/>
            <ComboBox Grid.Row="0" Grid.Column="1"
                      MinHeight="28"
                      Padding="8,0"
                      HorizontalAlignment="Stretch"
                      DisplayMemberBinding="{Binding Key, x:DataType=ThemeVariant}"
                      SelectedItem="{Binding Theme, Mode=TwoWay, Converter={x:Static c:StringConverters.ToTheme}}">
              <ComboBox.Items>
                <ThemeVariant>Default</ThemeVariant>
                <ThemeVariant>Dark</ThemeVariant>
                <ThemeVariant>Light</ThemeVariant>
              </ComboBox.Items>
            </ComboBox>

            <TextBlock Grid.Row="1" Grid.Column="0"
                       Text="{DynamicResource Text.Preference.Appearance.DefaultFont}"
                       HorizontalAlignment="Right"
                       Margin="0,0,16,0"/>
            <TextBox Grid.Row="1" Grid.Column="1"
                     Height="28"
                     CornerRadius="3"
                     Text="{Binding DefaultFontFamily, Mode=TwoWay}"/>

            <TextBlock Grid.Row="2" Grid.Column="0"
                       Text="{DynamicResource Text.Preference.Appearance.MonospaceFont}"
                       HorizontalAlignment="Right"
                       Margin="0,0,16,0"/>
            <TextBox Grid.Row="2" Grid.Column="1"
                     Height="28"
                     CornerRadius="3"
                     Text="{Binding MonospaceFontFamily, Mode=TwoWay}"/>

            <TextBlock Grid.Row="3" Grid.Column="0"
                       Text="{DynamicResource Text.Preference.Appearance.DefaultFontSize}"
                       HorizontalAlignment="Right"
                       Margin="0,0,16,0"/>
            <NumericUpDown Grid.Row="3" Grid.Column="1"
                           Minimum="10" Maximum="18" Increment="0.5"
                           Height="28"
                           Padding="4"
                           BorderThickness="1" BorderBrush="{DynamicResource Brush.Border1}"
                           CornerRadius="3"
                           Value="{Binding DefaultFontSize, Mode=TwoWay}"/>

            <TextBlock Grid.Row="4" Grid.Column="0"
                       Text="{DynamicResource Text.Preference.Appearance.ThemeOverrides}"
                       HorizontalAlignment="Right"
                       Margin="0,0,16,0"/>
            <TextBox Grid.Row="4" Grid.Column="1"
                     Height="28"
                     CornerRadius="3"
                     Text="{Binding ThemeOverrides, Mode=TwoWay}">
              <TextBox.InnerRightContent>
                <Button Classes="icon_button" Width="30" Height="30" Click="SelectThemeOverrideFile">
                  <Path Data="{StaticResource Icons.Folder.Open}" Fill="{DynamicResource Brush.FG1}"/>
                </Button>
              </TextBox.InnerRightContent>
            </TextBox>

            <CheckBox Grid.Row="5" Grid.Column="1"
                      Content="{DynamicResource Text.Preference.Appearance.OnlyUseMonoFontInEditor}"
                      IsChecked="{Binding OnlyUseMonoFontInEditor, Mode=TwoWay}"/>

            <CheckBox Grid.Row="6" Grid.Column="1"
                      Height="32"
                      Content="{DynamicResource Text.Preference.Appearance.UseFixedTabWidth}"
                      IsChecked="{Binding Source={x:Static vm:Preference.Instance}, Path=UseFixedTabWidth, Mode=TwoWay}"/>

            <CheckBox Grid.Row="7" Grid.Column="1"
                      Height="32"
                      Content="{DynamicResource Text.Preference.Appearance.UseNativeWindowFrame}"
                      IsChecked="{Binding Source={x:Static vm:Preference.Instance}, Path=UseSystemWindowFrame, Mode=OneTime}"
                      IsVisible="{OnPlatform False, Linux=True}"
                      IsCheckedChanged="OnUseNativeWindowFrameChanged"/>
          </Grid>
        </TabItem>

        <TabItem>
          <TabItem.Header>
            <TextBlock Classes="tab_header" Text="{DynamicResource Text.Preference.Git}"/>
          </TabItem.Header>

          <Grid Margin="8" RowDefinitions="32,32,32,32,32" ColumnDefinitions="Auto,*">
            <TextBlock Grid.Row="0" Grid.Column="0"
                       Text="{DynamicResource Text.Preference.Git.Path}"
                       HorizontalAlignment="Right"
                       Margin="0,0,16,0"/>
            <TextBox Grid.Row="0" Grid.Column="1"
                     Height="28"
                     CornerRadius="3"
                     Text="{Binding GitInstallPath, Mode=TwoWay}">
              <TextBox.InnerRightContent>
                <Button Classes="icon_button" Width="30" Height="30" Click="SelectGitExecutable">
                  <Path Data="{StaticResource Icons.Folder.Open}" Fill="{DynamicResource Brush.FG1}"/>
                </Button>
              </TextBox.InnerRightContent>
            </TextBox>

            <TextBlock Grid.Row="1" Grid.Column="0"
                       Text="{DynamicResource Text.Preference.Git.Version}"
                       HorizontalAlignment="Right"
                       Margin="0,0,16,0"/>
            <StackPanel Grid.Row="1" Grid.Column="1" Orientation="Horizontal">
              <TextBlock Margin="0,0,8,0"
                         Text="{Binding #ThisControl.GitVersion}" 
                         IsVisible="{Binding #ThisControl.GitVersion, Converter={x:Static StringConverters.IsNotNullOrEmpty}}"/>

              <Border Background="Transparent"
                      ToolTip.Tip="{DynamicResource Text.Preference.Git.Invalid}"
                      IsVisible="{Binding #ThisControl.GitVersion, Converter={x:Static c:StringConverters.UnderRecommendGitVersion}}">
                <Path Width="14" Height="14" Data="{StaticResource Icons.Error}" Fill="Red"/>
              </Border>
            </StackPanel>

            <TextBlock Grid.Row="2" Grid.Column="0"
                       Text="{DynamicResource Text.Preference.Git.User}"
                       HorizontalAlignment="Right"
                       Margin="0,0,16,0"/>
            <TextBox Grid.Row="2" Grid.Column="1"
                     Height="28"
                     CornerRadius="3"
                     Text="{Binding #ThisControl.DefaultUser, Mode=TwoWay}"
                     Watermark="{DynamicResource Text.Preference.Git.User.Placeholder}"/>

            <TextBlock Grid.Row="3" Grid.Column="0"
                       Text="{DynamicResource Text.Preference.Git.Email}"
                       HorizontalAlignment="Right"
                       Margin="0,0,16,0"/>
            <TextBox Grid.Row="3" Grid.Column="1"
                     Height="28"
                     CornerRadius="3"
                     Text="{Binding #ThisControl.DefaultEmail, Mode=TwoWay}"
                     Watermark="{DynamicResource Text.Preference.Git.Email.Placeholder}"/>

            <TextBlock Grid.Row="4" Grid.Column="0"
                       Text="{DynamicResource Text.Preference.Git.CRLF}"
                       HorizontalAlignment="Right"
                       Margin="0,0,16,0"/>
            <ComboBox Grid.Row="4" Grid.Column="1"
                      MinHeight="28"
                      Padding="8,0"
                      HorizontalAlignment="Stretch"
                      ItemsSource="{Binding Source={x:Static m:CRLFMode.Supported}}"
                      SelectedItem="{Binding #ThisControl.CRLFMode, Mode=TwoWay}">
              <ComboBox.ItemTemplate>
                <DataTemplate x:DataType="{x:Type m:CRLFMode}">
                  <Grid ColumnDefinitions="64,*">
                    <TextBlock Grid.Column="0" Text="{Binding Name}"/>
                    <TextBlock Grid.Column="1" Text="{Binding Desc}" Foreground="{DynamicResource Brush.FG2}" HorizontalAlignment="Right"/>
                  </Grid>
                </DataTemplate>
              </ComboBox.ItemTemplate>
            </ComboBox>
          </Grid>
        </TabItem>

        <TabItem>
          <TabItem.Header>
            <TextBlock Classes="tab_header" Text="{DynamicResource Text.Preference.GPG}"/>
          </TabItem.Header>

          <Grid Margin="8" RowDefinitions="32,Auto,32,32,32" ColumnDefinitions="Auto,*">
            <TextBlock Grid.Row="0" Grid.Column="0"
                       Text="{DynamicResource Text.Preference.GPG.Format}"
                       HorizontalAlignment="Right"
                       Margin="0,0,16,0"/>
            <ComboBox Grid.Row="0" Grid.Column="1"
                      MinHeight="28"
                      Padding="8,0"
                      HorizontalAlignment="Stretch"
                      ItemsSource="{Binding Source={x:Static m:GPGFormat.Supported}}"
                      SelectedItem="{Binding #ThisControl.GPGFormat, Mode=TwoWay}">
              <ComboBox.ItemTemplate>
                <DataTemplate x:DataType="{x:Type m:GPGFormat}">
                  <Grid ColumnDefinitions="Auto,*">
                    <TextBlock Grid.Column="0" Text="{Binding Name}"/>
                    <TextBlock Grid.Column="1" Text="{Binding Desc}" Foreground="{DynamicResource Brush.FG2}" HorizontalAlignment="Right"/>
                  </Grid>
                </DataTemplate>
              </ComboBox.ItemTemplate>
            </ComboBox>

            <TextBlock Grid.Row="1" Grid.Column="0"
                       Text="{DynamicResource Text.Preference.GPG.Path}"
                       HorizontalAlignment="Right"
                       Margin="0,0,16,0"
                       IsVisible="{Binding #ThisControl.GPGFormat.NeedFindProgram}"/>
            <TextBox Grid.Row="1" Grid.Column="1"
                     Height="28"
                     CornerRadius="3"
                     Text="{Binding #ThisControl.GPGExecutableFile, Mode=TwoWay}"
                     Watermark="{DynamicResource Text.Preference.GPG.Path.Placeholder}"
                     IsVisible="{Binding #ThisControl.GPGFormat.NeedFindProgram}">
              <TextBox.InnerRightContent>
                <Button Classes="icon_button" Width="30" Height="30" Click="SelectGPGExecutable">
                  <Path Data="{StaticResource Icons.Folder.Open}" Fill="{DynamicResource Brush.FG1}"/>
                </Button>
              </TextBox.InnerRightContent>
            </TextBox>

            <TextBlock Grid.Row="2" Grid.Column="0"
                       Text="{DynamicResource Text.Preference.GPG.UserKey}"
                       HorizontalAlignment="Right"
                       Margin="0,0,16,0"/>
            <TextBox Grid.Row="2" Grid.Column="1"
                     Height="28"
                     CornerRadius="3"
                     Text="{Binding #ThisControl.GPGUserKey, Mode=TwoWay}"
                     Watermark="{DynamicResource Text.Preference.GPG.UserKey.Placeholder}"/>

            <CheckBox Grid.Row="3" Grid.Column="1"
                      Content="{DynamicResource Text.Preference.GPG.CommitEnabled}"
                      IsChecked="{Binding #ThisControl.EnableGPGCommitSigning, Mode=TwoWay}"/>

            <CheckBox Grid.Row="4" Grid.Column="1"
                      Content="{DynamicResource Text.Preference.GPG.TagEnabled}"
                      IsChecked="{Binding #ThisControl.EnableGPGTagSigning, Mode=TwoWay}"/>
          </Grid>
        </TabItem>

        <TabItem>
          <TabItem.Header>
            <TextBlock Classes="tab_header" Text="{DynamicResource Text.Preference.Integration}"/>
          </TabItem.Header>

          <StackPanel Margin="8" MaxWidth="580" Orientation="Vertical" Grid.IsSharedSizeScope="True">
            <TextBlock Classes="bold" Text="{DynamicResource Text.Preference.Shell}"/>
            <Rectangle Margin="0,8" Fill="{DynamicResource Brush.Border2}" Height=".6" HorizontalAlignment="Stretch"/>
            <Grid Margin="8,0,0,0" RowDefinitions="32,Auto">
              <Grid.ColumnDefinitions>
                <ColumnDefinition Width="Auto" SharedSizeGroup="IntegrationLabel"/>
                <ColumnDefinition Width="*"/>
              </Grid.ColumnDefinitions>
              
              <TextBlock Grid.Row="0" Grid.Column="0"
                         Text="{DynamicResource Text.Preference.Shell.Type}"
                         HorizontalAlignment="Right"
                         Margin="0,0,16,0"/>
              <ComboBox Grid.Row="0" Grid.Column="1"
                        MinHeight="28"
                        Padding="8,0"
                        HorizontalAlignment="Stretch"
                        ItemsSource="{Binding Source={x:Static m:ShellOrTerminal.Supported}}"
                        SelectedIndex="{Binding ShellOrTerminal, Mode=TwoWay}">
                <ComboBox.ItemTemplate>
                  <DataTemplate x:DataType="{x:Type m:ShellOrTerminal}">
                    <Grid ColumnDefinitions="Auto,*">
                      <Image Grid.Column="0" Width="16" Height="16" Source="{Binding Icon}" RenderOptions.BitmapInterpolationMode="HighQuality"/>
                      <TextBlock Grid.Column="1" Text="{Binding Name}" Margin="6,0,0,0"/>
                    </Grid>
                  </DataTemplate>
                </ComboBox.ItemTemplate>
              </ComboBox>

              <TextBlock Grid.Row="1" Grid.Column="0"
                         Text="{DynamicResource Text.Preference.Shell.Path}"
                         HorizontalAlignment="Right"
                         Margin="0,0,16,0"
                         IsVisible="{OnPlatform True, macOS=False}"/>
              <TextBox Grid.Row="1" Grid.Column="1"
                       Height="28"
                       CornerRadius="3"
                       Text="{Binding ShellOrTerminalPath, Mode=TwoWay}"
                       IsVisible="{OnPlatform True, macOS=False}">
                <TextBox.InnerRightContent>
                  <Button Classes="icon_button" Width="30" Height="30" Click="SelectShellOrTerminal">
                    <Path Data="{StaticResource Icons.Folder.Open}" Fill="{DynamicResource Brush.FG1}"/>
                  </Button>
                </TextBox.InnerRightContent>
              </TextBox>
            </Grid>            

            <TextBlock Classes="bold" Margin="0,24,0,0" Text="{DynamicResource Text.Preference.DiffMerge}"/>
            <Rectangle Margin="0,8" Fill="{DynamicResource Brush.Border2}" Height=".6" HorizontalAlignment="Stretch"/>
            <Grid Margin="8,0,0,0" RowDefinitions="32,Auto">
              <Grid.ColumnDefinitions>
                <ColumnDefinition Width="Auto" SharedSizeGroup="IntegrationLabel"/>
                <ColumnDefinition Width="*"/>
              </Grid.ColumnDefinitions>
              
              <TextBlock Grid.Row="0" Grid.Column="0"
                         Text="{DynamicResource Text.Preference.DiffMerge.Type}"
                         HorizontalAlignment="Right"
                         Margin="0,0,16,0"/>
              <ComboBox Grid.Row="0" Grid.Column="1"
                        MinHeight="28"
                        Padding="8,0"
                        HorizontalAlignment="Stretch"
                        HorizontalContentAlignment="Left"
                        RenderOptions.BitmapInterpolationMode="HighQuality"
                        FontSize="{Binding DefaultFontSize}"
                        ItemsSource="{Binding Source={x:Static m:ExternalMerger.Supported}}"
                        SelectedIndex="{Binding ExternalMergeToolType, Mode=TwoWay}">
                <ComboBox.ItemTemplate>
                  <DataTemplate x:DataType="{x:Type m:ExternalMerger}">
                    <Grid ColumnDefinitions="Auto,*">
                      <Image Grid.Column="0" Width="16" Height="16" Source="{Binding IconImage}" RenderOptions.BitmapInterpolationMode="HighQuality"/>
                      <TextBlock Grid.Column="1" Text="{Binding Name}" Margin="6,0,0,0"/>
                    </Grid>
                  </DataTemplate>
                </ComboBox.ItemTemplate>
              </ComboBox>

              <TextBlock Grid.Row="1" Grid.Column="0"
                         Text="{DynamicResource Text.Preference.DiffMerge.Path}"
                         HorizontalAlignment="Right"
                         Margin="0,0,16,0"
                         IsVisible="{Binding ExternalMergeToolType, Converter={x:Static c:IntConverters.IsGreaterThanZero}}"/>
              <TextBox Grid.Row="1" Grid.Column="1"
                       Height="28"
                       CornerRadius="3"
                       Text="{Binding ExternalMergeToolPath, Mode=TwoWay}"
                       Watermark="{DynamicResource Text.Preference.DiffMerge.Path.Placeholder}"
                       IsVisible="{Binding ExternalMergeToolType, Converter={x:Static c:IntConverters.IsGreaterThanZero}}">
                <TextBox.InnerRightContent>
                  <Button Classes="icon_button" Width="30" Height="30" Click="SelectExternalMergeTool">
                    <Path Data="{StaticResource Icons.Folder.Open}" Fill="{DynamicResource Brush.FG1}"/>
                  </Button>
                </TextBox.InnerRightContent>
              </TextBox>
            </Grid>

            <TextBlock Classes="bold" Margin="0,24,0,0" Text="{DynamicResource Text.Preference.AI}"/>
            <Rectangle Margin="0,8" Fill="{DynamicResource Brush.Border2}" Height=".6" HorizontalAlignment="Stretch"/>
            <Grid Margin="8,0,0,0" RowDefinitions="32,32,32">
              <Grid.ColumnDefinitions>
                <ColumnDefinition Width="Auto" SharedSizeGroup="IntegrationLabel"/>
                <ColumnDefinition Width="*"/>
              </Grid.ColumnDefinitions>
              
              <TextBlock Grid.Row="0" Grid.Column="0"
                         Text="{DynamicResource Text.Preference.AI.Server}"
                         HorizontalAlignment="Right"
                         Margin="0,0,16,0"/>
              <TextBox Grid.Row="0" Grid.Column="1"
                       Height="28"
                       CornerRadius="3"
                       Text="{Binding OpenAIServer, Mode=TwoWay}"/>

              <TextBlock Grid.Row="1" Grid.Column="0"
                         Text="{DynamicResource Text.Preference.AI.Model}"
                         HorizontalAlignment="Right"
                         Margin="0,0,16,0"/>
              <TextBox Grid.Row="1" Grid.Column="1"
                       Height="28"
                       CornerRadius="3"
                       Text="{Binding OpenAIModel, Mode=TwoWay}"/>

              <TextBlock Grid.Row="2" Grid.Column="0"
                         Text="{DynamicResource Text.Preference.AI.ApiKey}"
                         HorizontalAlignment="Right"
                         Margin="0,0,16,0"/>
              <TextBox Grid.Row="2" Grid.Column="1"
                       Height="28"
                       CornerRadius="3"
                       Text="{Binding OpenAIApiKey, Mode=TwoWay}"/>
            </Grid>
          </StackPanel>          
        </TabItem>
      </TabControl>
    </Border>    
  </Grid>
</v:ChromelessWindow>
