<Page
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    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:viewModels="using:ModernKeePass.ViewModels"
    xmlns:converters="using:ModernKeePass.Converters" 
    xmlns:local="using:ModernKeePass.Controls"
    xmlns:interactivity="using:Microsoft.Xaml.Interactivity" 
    xmlns:core="using:Microsoft.Xaml.Interactions.Core"
    xmlns:actions="using:ModernKeePass.Actions"
    x:Name="PageRoot"
    x:Class="ModernKeePass.Views.EntryDetailPage"
    mc:Ignorable="d"
    SizeChanged="EntryDetailPage_OnSizeChanged">
    <Page.Resources>
        <converters:BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter"/>
        <converters:InverseBooleanToVisibilityConverter x:Key="InverseBooleanToVisibilityConverter"/>
        <converters:ProgressBarLegalValuesConverter x:Key="ProgressBarLegalValuesConverter"/>
        <converters:DoubleToSolidColorBrushConverter x:Key="DoubleToForegroungBrushComplexityConverter"/>
        <converters:NullToBooleanConverter x:Key="NullToBooleanConverter"/>
        <Style TargetType="PasswordBox" x:Name="PasswordBoxWithButtonStyle">
            <Setter Property="MinWidth" Value="{ThemeResource TextControlThemeMinWidth}" />
            <Setter Property="MinHeight" Value="{ThemeResource TextControlThemeMinHeight}" />
            <Setter Property="Foreground" Value="{ThemeResource TextBoxForegroundThemeBrush}" />
            <Setter Property="Background" Value="{ThemeResource TextBoxBackgroundThemeBrush}" />
            <Setter Property="SelectionHighlightColor" Value="{ThemeResource TextSelectionHighlightColorThemeBrush}" />
            <Setter Property="BorderBrush" Value="{ThemeResource TextBoxBorderThemeBrush}" />
            <Setter Property="BorderThickness" Value="{ThemeResource TextControlBorderThemeThickness}" />
            <Setter Property="FontFamily" Value="{ThemeResource ContentControlThemeFontFamily}" />
            <Setter Property="FontSize" Value="{ThemeResource ControlContentThemeFontSize}" />
            <Setter Property="ScrollViewer.HorizontalScrollBarVisibility" Value="Hidden" />
            <Setter Property="ScrollViewer.VerticalScrollBarVisibility" Value="Hidden" />
            <Setter Property="Padding" Value="{ThemeResource TextControlThemePadding}"/>
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="PasswordBox">
                        <Grid>
                            <Grid.Resources>
                                <Style x:Name="RevealButtonStyle" TargetType="Button">
                                    <Setter Property="Template">
                                        <Setter.Value>
                                            <ControlTemplate TargetType="Button">
                                                <Grid>
                                                    <VisualStateManager.VisualStateGroups>
                                                        <VisualStateGroup x:Name="CommonStates">
                                                            <VisualState x:Name="Normal" />
                                                            <VisualState x:Name="PointerOver">
                                                                <Storyboard>
                                                                    <ObjectAnimationUsingKeyFrames Storyboard.TargetName="BorderElement"
                                                                                               Storyboard.TargetProperty="BorderBrush">
                                                                        <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource TextBoxButtonPointerOverBorderThemeBrush}" />
                                                                    </ObjectAnimationUsingKeyFrames>
                                                                    <ObjectAnimationUsingKeyFrames Storyboard.TargetName="GlyphElement"
                                                                                               Storyboard.TargetProperty="Foreground">
                                                                        <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource TextBoxButtonPointerOverBackgroundThemeBrush}" />
                                                                    </ObjectAnimationUsingKeyFrames>
                                                                </Storyboard>
                                                            </VisualState>
                                                            <VisualState x:Name="Pressed">
                                                                <Storyboard>
                                                                    <ObjectAnimationUsingKeyFrames Storyboard.TargetName="BorderElement"
                                                                                               Storyboard.TargetProperty="BorderBrush">
                                                                        <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource TextBoxButtonPressedBorderThemeBrush}" />
                                                                    </ObjectAnimationUsingKeyFrames>
                                                                    <ObjectAnimationUsingKeyFrames Storyboard.TargetName="GlyphElement"
                                                                                               Storyboard.TargetProperty="Foreground">
                                                                        <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource TextBoxButtonPointerOverForegroundThemeBrush}" />
                                                                    </ObjectAnimationUsingKeyFrames>
                                                                </Storyboard>
                                                            </VisualState>
                                                            <VisualState x:Name="Disabled">
                                                                <Storyboard>
                                                                    <DoubleAnimation Storyboard.TargetName="BackgroundElement"
                                                                                 Storyboard.TargetProperty="Opacity"
                                                                                 To="0"
                                                                                 Duration="0" />
                                                                    <DoubleAnimation Storyboard.TargetName="BorderElement"
                                                                                 Storyboard.TargetProperty="Opacity"
                                                                                 To="0"
                                                                                 Duration="0" />
                                                                </Storyboard>
                                                            </VisualState>
                                                        </VisualStateGroup>
                                                    </VisualStateManager.VisualStateGroups>
                                                    <Border x:Name="BorderElement"
                                                        BorderBrush="{ThemeResource TextBoxButtonBorderThemeBrush}"
                                                        BorderThickness="{TemplateBinding BorderThickness}"/>
                                                    <Border x:Name="BackgroundElement"
                                                        Background="{ThemeResource TextBoxButtonBackgroundThemeBrush}"
                                                        Margin="{TemplateBinding BorderThickness}">
                                                        <TextBlock x:Name="GlyphElement"
                                                               Foreground="{ThemeResource TextBoxButtonForegroundThemeBrush}"
                                                               VerticalAlignment="Center"
                                                               HorizontalAlignment="Center"
                                                               FontStyle="Normal"
                                                               Text="&#xE052;"
                                                               FontFamily="{ThemeResource SymbolThemeFontFamily}"
                                                               AutomationProperties.AccessibilityView="Raw"/>
                                                    </Border>
                                                </Grid>
                                            </ControlTemplate>
                                        </Setter.Value>
                                    </Setter>
                                </Style>

                                <Style x:Name="GeneratorButtonStyle" TargetType="Button">
                                    <Setter Property="Template">
                                        <Setter.Value>
                                            <ControlTemplate TargetType="Button">
                                                <Grid>
                                                    <VisualStateManager.VisualStateGroups>
                                                        <VisualStateGroup x:Name="CommonStates">
                                                            <VisualState x:Name="Normal" >
                                                                <Storyboard>
                                                                    <ObjectAnimationUsingKeyFrames Storyboard.TargetName="BackgroundElement"
                                                                                               Storyboard.TargetProperty="Background">
                                                                        <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource MainColor}" />
                                                                    </ObjectAnimationUsingKeyFrames>
                                                                    <ObjectAnimationUsingKeyFrames Storyboard.TargetName="BorderElement"
                                                                                               Storyboard.TargetProperty="BorderBrush">
                                                                        <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource TextBoxButtonPressedBorderThemeBrush}" />
                                                                    </ObjectAnimationUsingKeyFrames>
                                                                    <ObjectAnimationUsingKeyFrames Storyboard.TargetName="GlyphElement"
                                                                                               Storyboard.TargetProperty="Foreground">
                                                                        <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource TextBoxButtonPressedForegroundThemeBrush}" />
                                                                    </ObjectAnimationUsingKeyFrames>
                                                                </Storyboard>
                                                            </VisualState>
                                                            <VisualState x:Name="PointerOver">
                                                                <Storyboard>
                                                                    <ObjectAnimationUsingKeyFrames Storyboard.TargetName="BackgroundElement"
                                                                                               Storyboard.TargetProperty="Background">
                                                                        <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource TextBoxButtonPointerOverBackgroundThemeBrush}" />
                                                                    </ObjectAnimationUsingKeyFrames>
                                                                    <ObjectAnimationUsingKeyFrames Storyboard.TargetName="BorderElement"
                                                                                               Storyboard.TargetProperty="BorderBrush">
                                                                        <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource TextBoxButtonPointerOverBorderThemeBrush}" />
                                                                    </ObjectAnimationUsingKeyFrames>
                                                                    <ObjectAnimationUsingKeyFrames Storyboard.TargetName="GlyphElement"
                                                                                               Storyboard.TargetProperty="Foreground">
                                                                        <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource TextBoxButtonPointerOverForegroundThemeBrush}" />
                                                                    </ObjectAnimationUsingKeyFrames>
                                                                </Storyboard>
                                                            </VisualState>
                                                            <VisualState x:Name="Pressed">
                                                                <Storyboard>
                                                                    <ObjectAnimationUsingKeyFrames Storyboard.TargetName="BackgroundElement"
                                                                                               Storyboard.TargetProperty="Background">
                                                                        <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource TextBoxButtonPressedBackgroundThemeBrush}" />
                                                                    </ObjectAnimationUsingKeyFrames>
                                                                    <ObjectAnimationUsingKeyFrames Storyboard.TargetName="BorderElement"
                                                                                               Storyboard.TargetProperty="BorderBrush">
                                                                        <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource TextBoxButtonPressedBorderThemeBrush}" />
                                                                    </ObjectAnimationUsingKeyFrames>
                                                                    <ObjectAnimationUsingKeyFrames Storyboard.TargetName="GlyphElement"
                                                                                               Storyboard.TargetProperty="Foreground">
                                                                        <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource TextBoxButtonPressedForegroundThemeBrush}" />
                                                                    </ObjectAnimationUsingKeyFrames>
                                                                </Storyboard>
                                                            </VisualState>
                                                            <VisualState x:Name="Disabled">
                                                                <Storyboard>
                                                                    <DoubleAnimation Storyboard.TargetName="BackgroundElement"
                                                                                 Storyboard.TargetProperty="Opacity"
                                                                                 To="0"
                                                                                 Duration="0" />
                                                                    <DoubleAnimation Storyboard.TargetName="BorderElement"
                                                                                 Storyboard.TargetProperty="Opacity"
                                                                                 To="0"
                                                                                 Duration="0" />
                                                                </Storyboard>
                                                            </VisualState>
                                                        </VisualStateGroup>
                                                    </VisualStateManager.VisualStateGroups>
                                                    <Border x:Name="BorderElement"
                                                        BorderBrush="{ThemeResource TextBoxButtonBorderThemeBrush}"
                                                        BorderThickness="{TemplateBinding BorderThickness}"/>
                                                    <Border x:Name="BackgroundElement"
                                                        Background="{ThemeResource TextBoxButtonBackgroundThemeBrush}"
                                                        Margin="{TemplateBinding BorderThickness}">
                                                        <TextBlock x:Name="GlyphElement"
                                                               Foreground="{ThemeResource TextBoxButtonForegroundThemeBrush}"
                                                               VerticalAlignment="Center"
                                                               HorizontalAlignment="Center"
                                                               FontStyle="Normal"
                                                               Text="&#xE15E;"
                                                               Padding="4,0,4,0"
                                                               FontFamily="{ThemeResource SymbolThemeFontFamily}"
                                                               AutomationProperties.AccessibilityView="Raw"/>
                                                    </Border>
                                                </Grid>
                                            </ControlTemplate>
                                        </Setter.Value>
                                    </Setter>
                                </Style>
                            </Grid.Resources>
                            <VisualStateManager.VisualStateGroups>
                                <VisualStateGroup x:Name="CommonStates">
                                    <VisualState x:Name="Disabled">
                                        <Storyboard>
                                            <ObjectAnimationUsingKeyFrames Storyboard.TargetName="BackgroundElement"
                                                                       Storyboard.TargetProperty="Background">
                                                <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource TextBoxDisabledBackgroundThemeBrush}" />
                                            </ObjectAnimationUsingKeyFrames>
                                            <ObjectAnimationUsingKeyFrames Storyboard.TargetName="BorderElement"
                                                                       Storyboard.TargetProperty="BorderBrush">
                                                <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource TextBoxDisabledBorderThemeBrush}" />
                                            </ObjectAnimationUsingKeyFrames>
                                            <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ContentElement"
                                                                       Storyboard.TargetProperty="Foreground">
                                                <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource TextBoxDisabledForegroundThemeBrush}" />
                                            </ObjectAnimationUsingKeyFrames>
                                            <ObjectAnimationUsingKeyFrames Storyboard.TargetName="PlaceholderTextContentPresenter"
                                                                       Storyboard.TargetProperty="Foreground">
                                                <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource TextBoxDisabledForegroundThemeBrush}" />
                                            </ObjectAnimationUsingKeyFrames>
                                        </Storyboard>
                                    </VisualState>
                                    <VisualState x:Name="Normal">
                                        <Storyboard>
                                            <DoubleAnimation Storyboard.TargetName="BackgroundElement"
                                                         Storyboard.TargetProperty="Opacity"
                                                         Duration="0"
                                                         To="{ThemeResource TextControlBackgroundThemeOpacity}" />
                                            <DoubleAnimation Storyboard.TargetName="BorderElement"
                                                         Storyboard.TargetProperty="Opacity"
                                                         Duration="0"
                                                         To="{ThemeResource TextControlBorderThemeOpacity}" />
                                        </Storyboard>
                                    </VisualState>
                                    <VisualState x:Name="PointerOver">
                                        <Storyboard>
                                            <DoubleAnimation Storyboard.TargetName="BackgroundElement"
                                                         Storyboard.TargetProperty="Opacity"
                                                         Duration="0"
                                                         To="{ThemeResource TextControlPointerOverBackgroundThemeOpacity}" />
                                            <DoubleAnimation Storyboard.TargetName="BorderElement"
                                                         Storyboard.TargetProperty="Opacity"
                                                         Duration="0"
                                                         To="{ThemeResource TextControlPointerOverBorderThemeOpacity}" />
                                        </Storyboard>
                                    </VisualState>
                                    <VisualState x:Name="Focused" />
                                </VisualStateGroup>
                                <VisualStateGroup x:Name="ButtonStates">
                                    <VisualState x:Name="ButtonVisible">
                                        <Storyboard>
                                            <ObjectAnimationUsingKeyFrames Storyboard.TargetName="RevealButton"
                                                                       Storyboard.TargetProperty="Visibility">
                                                <DiscreteObjectKeyFrame KeyTime="0">
                                                    <DiscreteObjectKeyFrame.Value>
                                                        <Visibility>Visible</Visibility>
                                                    </DiscreteObjectKeyFrame.Value>
                                                </DiscreteObjectKeyFrame>
                                            </ObjectAnimationUsingKeyFrames>
                                        </Storyboard>
                                    </VisualState>
                                    <VisualState x:Name="ButtonCollapsed" />
                                </VisualStateGroup>
                            </VisualStateManager.VisualStateGroups>
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition Width="*" />
                                <ColumnDefinition Width="Auto" />
                                <ColumnDefinition Width="Auto" />
                            </Grid.ColumnDefinitions>
                            <Grid.RowDefinitions>
                                <RowDefinition Height="Auto" />
                                <RowDefinition Height="*" />
                            </Grid.RowDefinitions>
                            <Border x:Name="BackgroundElement"
                                Grid.Row="1"
                                Background="{TemplateBinding Background}"
                                Margin="{TemplateBinding BorderThickness}"
                                Grid.ColumnSpan="3"
                                Grid.RowSpan="1"/>
                            <Border x:Name="BorderElement"
                                Grid.Row="1"
                                BorderBrush="{TemplateBinding BorderBrush}"
                                BorderThickness="{TemplateBinding BorderThickness}"
                                Grid.ColumnSpan="3"
                                Grid.RowSpan="1"/>
                            <ContentPresenter x:Name="HeaderContentPresenter"
                                          Grid.Row="0"
                                          Foreground="{ThemeResource TextBoxForegroundHeaderThemeBrush}"
                                          Margin="0,4,0,4"
                                          Grid.ColumnSpan="3"
                                          Content="{TemplateBinding Header}"
                                          ContentTemplate="{TemplateBinding HeaderTemplate}"
                                          FontWeight="Semilight" />
                            <ScrollViewer x:Name="ContentElement"
                                Grid.Row="1"
                                      HorizontalScrollMode="{TemplateBinding ScrollViewer.HorizontalScrollMode}"
                                      HorizontalScrollBarVisibility="{TemplateBinding ScrollViewer.HorizontalScrollBarVisibility}"
                                      VerticalScrollMode="{TemplateBinding ScrollViewer.VerticalScrollMode}"
                                      VerticalScrollBarVisibility="{TemplateBinding ScrollViewer.VerticalScrollBarVisibility}"
                                      IsHorizontalRailEnabled="{TemplateBinding ScrollViewer.IsHorizontalRailEnabled}"
                                      IsVerticalRailEnabled="{TemplateBinding ScrollViewer.IsVerticalRailEnabled}"
                                      Margin="{TemplateBinding BorderThickness}"
                                      Padding="{TemplateBinding Padding}"
                                      IsTabStop="False"
                                      ZoomMode="Disabled"
                                      AutomationProperties.AccessibilityView="Raw"/>
                            <ContentControl x:Name="PlaceholderTextContentPresenter"
                                      Grid.Row="1"
                                      Foreground="{ThemeResource TextBoxPlaceholderTextThemeBrush}"
                                      Margin="{TemplateBinding BorderThickness}"
                                      Padding="{TemplateBinding Padding}"
                                      IsTabStop="False"
                                      Grid.ColumnSpan="3"
                                      Content="{TemplateBinding PlaceholderText}" 
                                      IsHitTestVisible="False"/>
                            <Button x:Name="RevealButton"
                                Grid.Row="1"
                                Style="{StaticResource RevealButtonStyle}"
                                BorderThickness="{TemplateBinding BorderThickness}"
                                IsTabStop="False"
                                Grid.Column="1"
                                Visibility="Collapsed"
                                FontSize="{TemplateBinding FontSize}"
                                VerticalAlignment="Stretch"/>
                            <Button
                                Grid.Row="1"
                                Style="{StaticResource GeneratorButtonStyle}"
                                BorderThickness="{TemplateBinding BorderThickness}"
                                IsTabStop="False"
                                Grid.Column="2"
                                Visibility="Visible"
                                FontSize="{TemplateBinding FontSize}"
                                VerticalAlignment="Stretch" >
                                <Button.Flyout>
                                    <Flyout>
                                        <interactivity:Interaction.Behaviors>
                                            <core:DataTriggerBehavior Binding="{Binding Password}" ComparisonCondition="NotEqual" Value="" >
                                                <!--<actions:CloseFlyoutAction />-->
                                                <core:CallMethodAction MethodName="Hide" />
                                            </core:DataTriggerBehavior>
                                        </interactivity:Interaction.Behaviors>
                                        <StackPanel>
                                            <TextBlock>
                                                <Run x:Uid="PasswordGeneratorLength" />
                                                <Run Text="{Binding PasswordLength}" />
                                            </TextBlock>
                                            <Slider Value="{Binding PasswordLength, Mode=TwoWay}" Margin="0,-10,0,-20" />
                                            <CheckBox IsChecked="{Binding UpperCasePatternSelected, Mode=TwoWay}" x:Uid="PasswordGeneratorUpper" />
                                            <CheckBox IsChecked="{Binding LowerCasePatternSelected, Mode=TwoWay}" x:Uid="PasswordGeneratorLower" />
                                            <CheckBox IsChecked="{Binding DigitsPatternSelected, Mode=TwoWay}" x:Uid="PasswordGeneratorDigits" />
                                            <CheckBox IsChecked="{Binding MinusPatternSelected, Mode=TwoWay}" x:Uid="PasswordGeneratorMinus" />
                                            <CheckBox IsChecked="{Binding UnderscorePatternSelected, Mode=TwoWay}" x:Uid="PasswordGeneratorUnderscore" />
                                            <CheckBox IsChecked="{Binding SpacePatternSelected, Mode=TwoWay}" x:Uid="PasswordGeneratorSpace" />
                                            <CheckBox IsChecked="{Binding SpecialPatternSelected, Mode=TwoWay}" x:Uid="PasswordGeneratorSpecial" />
                                            <CheckBox IsChecked="{Binding BracketsPatternSelected, Mode=TwoWay}" x:Uid="PasswordGeneratorBrackets" />
                                            <TextBlock  x:Uid="PasswordGeneratorAlso" Margin="0,5,0,0"/>
                                            <TextBox Text="{Binding CustomChars, Mode=TwoWay}" />
                                            <Button x:Uid="PasswordGeneratorButton">
                                                <interactivity:Interaction.Behaviors>
                                                    <core:EventTriggerBehavior EventName="Click">
                                                        <core:CallMethodAction TargetObject="{Binding}" MethodName="GeneratePassword"/>
                                                    </core:EventTriggerBehavior>
                                                </interactivity:Interaction.Behaviors>
                                            </Button>
                                        </StackPanel>
                                    </Flyout>
                                </Button.Flyout>
                                <ToolTipService.ToolTip>
                                    <ToolTip x:Uid="PasswordGeneratorTooltip" />
                                </ToolTipService.ToolTip>
                            </Button>
                        </Grid>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>
    </Page.Resources>
    <Page.DataContext>
        <viewModels:EntryVm />
    </Page.DataContext>
    <Page.BottomAppBar>
        <CommandBar x:Name="CommandBar" VerticalAlignment="Center">
            <CommandBar.SecondaryCommands>
                <AppBarButton Icon="Home" x:Uid="AppBarHome">
                    <interactivity:Interaction.Behaviors>
                        <core:EventTriggerBehavior EventName="Click">
                            <core:NavigateToPageAction TargetPage="ModernKeePass.Views.MainPage" />
                        </core:EventTriggerBehavior>
                    </interactivity:Interaction.Behaviors>
                </AppBarButton>
                <AppBarButton Icon="Save" x:Uid="AppBarSave">
                    <interactivity:Interaction.Behaviors>
                        <core:EventTriggerBehavior EventName="Click">
                            <core:CallMethodAction TargetObject="{Binding}" MethodName="Save"/>
                            <core:ChangePropertyAction TargetObject="{Binding ElementName=CommandBar}" PropertyName="IsOpen" Value="False" />
                        </core:EventTriggerBehavior>
                    </interactivity:Interaction.Behaviors>
                </AppBarButton>
                <AppBarButton Icon="Setting" x:Uid="AppBarSettings">
                    <interactivity:Interaction.Behaviors>
                        <core:EventTriggerBehavior EventName="Click">
                            <core:NavigateToPageAction TargetPage="ModernKeePass.Views.SettingsPage" />
                        </core:EventTriggerBehavior>
                    </interactivity:Interaction.Behaviors>
                </AppBarButton>
            </CommandBar.SecondaryCommands>
            <AppBarToggleButton Icon="Edit" x:Uid="AppBarEdit" IsChecked="{Binding IsEditMode, Mode=TwoWay}">
                <interactivity:Interaction.Behaviors>
                    <core:EventTriggerBehavior EventName="Click">
                        <core:ChangePropertyAction TargetObject="{Binding ElementName=CommandBar}" PropertyName="IsOpen" Value="False" />
                    </core:EventTriggerBehavior>
                </interactivity:Interaction.Behaviors>
            </AppBarToggleButton>
            <AppBarButton Icon="Undo" x:Uid="AppBarRestore" Visibility="{Binding ParentGroup.IsSelected, Converter={StaticResource BooleanToVisibilityConverter}}" IsEnabled="{Binding PreviousGroup, Converter={StaticResource NullToBooleanConverter}}" Click="RestoreButton_Click">
                <interactivity:Interaction.Behaviors>
                    <core:EventTriggerBehavior EventName="Click">
                        <core:CallMethodAction MethodName="UndoDelete" TargetObject="{Binding}" />
                    </core:EventTriggerBehavior>
                </interactivity:Interaction.Behaviors>
            </AppBarButton>
            <AppBarButton Icon="Delete" x:Uid="AppBarDelete" Click="DeleteButton_Click" />
        </CommandBar>
    </Page.BottomAppBar>
    <Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
        <Grid.ChildrenTransitions>
            <TransitionCollection>
                <EntranceThemeTransition/>
            </TransitionCollection>
        </Grid.ChildrenTransitions>
        <Grid.RowDefinitions>
            <RowDefinition Height="50"/>
            <RowDefinition Height="*"/>
        </Grid.RowDefinitions>

        <StackPanel Grid.Row="1" Margin="20,0,0,0" >
            <StackPanel.Resources>
                <Style TargetType="TextBlock">
                    <Setter Property="Margin" Value="0,20,0,0"/>
                </Style>
                <Style TargetType="CheckBox">
                    <Setter Property="Margin" Value="0,20,0,0"/>
                </Style>
            </StackPanel.Resources>
            <TextBlock x:Uid="EntryLogin" TextWrapping="Wrap" FontSize="18"/>
            <local:TextBoxWithButton HorizontalAlignment="Left" Text="{Binding UserName, Mode=TwoWay}" Width="350" Height="32" Style="{StaticResource TextBoxWithButtonStyle}" ButtonSymbol="&#xE16F;" ButtonTooltip="Copy">
                <interactivity:Interaction.Behaviors>
                    <core:EventTriggerBehavior EventName="ButtonClick">
                        <actions:ClipboardAction Text="{Binding UserName}" />
                    </core:EventTriggerBehavior>
                </interactivity:Interaction.Behaviors>
            </local:TextBoxWithButton>
            <TextBlock x:Uid="EntryPassword" TextWrapping="Wrap" FontSize="18"/>
            <PasswordBox HorizontalAlignment="Left" Password="{Binding Password, Mode=TwoWay}" Width="350" Height="32" IsPasswordRevealButtonEnabled="True" Visibility="{Binding IsRevealPassword, Converter={StaticResource InverseBooleanToVisibilityConverter}}" Style="{StaticResource PasswordBoxWithButtonStyle}" />
            <local:TextBoxWithButton HorizontalAlignment="Left" Text="{Binding Password, Mode=TwoWay}" Width="350" Height="32" Visibility="{Binding IsRevealPassword, Converter={StaticResource BooleanToVisibilityConverter}}" Style="{StaticResource TextBoxWithButtonStyle}" ButtonSymbol="&#xE16F;" ButtonTooltip="Copy">
                <interactivity:Interaction.Behaviors>
                    <core:EventTriggerBehavior EventName="ButtonClick">
                        <actions:ClipboardAction Text="{Binding Password}" />
                    </core:EventTriggerBehavior>
                </interactivity:Interaction.Behaviors>
            </local:TextBoxWithButton>
            <ProgressBar Value="{Binding PasswordComplexityIndicator, ConverterParameter=0\,128, Converter={StaticResource ProgressBarLegalValuesConverter}}" Maximum="128" Width="350" HorizontalAlignment="Left" Foreground="{Binding PasswordComplexityIndicator, ConverterParameter=128, Converter={StaticResource DoubleToForegroungBrushComplexityConverter}}" />
            <CheckBox x:Uid="EntryShowPassword" HorizontalAlignment="Left" Margin="-3,0,0,0" IsChecked="{Binding IsRevealPassword, Mode=TwoWay}" IsEnabled="{Binding IsRevealPasswordEnabled}" />
            <TextBlock TextWrapping="Wrap" Text="URL" FontSize="18"/>
            <local:TextBoxWithButton x:Name="UrlTextBox" HorizontalAlignment="Left" Text="{Binding Url, Mode=TwoWay}" Height="32" Width="350" MaxLength="256" Style="{StaticResource TextBoxWithButtonStyle}" ButtonSymbol="&#xE111;" ButtonTooltip="Navigate to URL">
                <interactivity:Interaction.Behaviors>
                    <core:EventTriggerBehavior EventName="ButtonClick">
                        <actions:NavigateToUrlAction Url="{Binding Url}" />
                    </core:EventTriggerBehavior>
                </interactivity:Interaction.Behaviors>
            </local:TextBoxWithButton>
            <TextBlock x:Uid="EntryNotes" TextWrapping="Wrap" FontSize="18" />
            <TextBox HorizontalAlignment="Left" TextWrapping="Wrap" Text="{Binding Notes, Mode=TwoWay}" Width="350" Height="200" AcceptsReturn="True" IsSpellCheckEnabled="True" />
            <CheckBox  x:Uid="EntryExpirationDate" FontSize="18" IsChecked="{Binding HasExpirationDate, Mode=TwoWay}" />
            <Grid>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="Auto" />
                    <ColumnDefinition Width="*" />
                </Grid.ColumnDefinitions>
                <SymbolIcon Grid.Column="0" Symbol="Important" Foreground="DarkRed" Visibility="{Binding HasExpired, Converter={StaticResource BooleanToVisibilityConverter}}">
                    <ToolTipService.ToolTip>
                        <ToolTip x:Uid="EntryExpirationTooltip" />
                    </ToolTipService.ToolTip>
                </SymbolIcon>
                <StackPanel Grid.Column="1" x:Name="ExpirationDatePanel" Orientation="Horizontal" Visibility="{Binding HasExpirationDate, Converter={StaticResource BooleanToVisibilityConverter}}">
                    <DatePicker Margin="0,0,20,0" Date="{Binding ExpiryDate, Mode=TwoWay}" Style="{StaticResource MainColorDatePicker}" />
                <TimePicker Time="{Binding ExpiryTime, Mode=TwoWay}"/>
            </StackPanel>
            </Grid>
        </StackPanel>

        <!-- Bouton Précédent et titre de la page -->
        <Grid Grid.Row="0" Background="{ThemeResource AppBarBackgroundThemeBrush}">
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="60"/>
                <ColumnDefinition Width="*"/>
            </Grid.ColumnDefinitions>
            <Button Grid.Column="0" 
                    Command="{Binding NavigationHelper.GoBackCommand, ElementName=PageRoot}"
                    Height="50"
                    Width="50"
                    AutomationProperties.Name="Back"
                    AutomationProperties.AutomationId="BackButton"
                    AutomationProperties.ItemType="Navigation Button"
                    Style="{StaticResource NoBorderButtonStyle}">
                <SymbolIcon Symbol="Back" />
            </Button>
            <StackPanel Grid.Column="1" >
                <TextBox  
                    x:Name="TitleTextBox"
                    Text="{Binding Name, Mode=TwoWay}" 
                    Foreground="{ThemeResource DefaultTextForegroundThemeBrush}"
                    Background="Transparent"
                    IsHitTestVisible="{Binding IsEditMode}" 
                    BorderThickness="0" 
                    FontSize="20"
                    FontWeight="SemiBold"
                    TextWrapping="NoWrap" 
                    VerticalAlignment="Center" 
                    PlaceholderText="New entry name...">
                    <interactivity:Interaction.Behaviors>
                        <core:DataTriggerBehavior Binding="{Binding IsEditMode}" Value="True">
                            <actions:SetupFocusAction TargetObject="{Binding ElementName=TitleTextBox}" />
                        </core:DataTriggerBehavior>
                    </interactivity:Interaction.Behaviors>
                </TextBox>
                <TextBlock FontSize="12" Text="{Binding Path}" />
            </StackPanel>
        </Grid>
        <VisualStateManager.VisualStateGroups>
            <VisualStateGroup>
                <VisualState x:Name="Large">
                    <Storyboard>
                        <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ExpirationDatePanel" Storyboard.TargetProperty="Orientation">
                            <DiscreteObjectKeyFrame KeyTime="0" Value="Horizontal"/>
                        </ObjectAnimationUsingKeyFrames>
                    </Storyboard>
                </VisualState>
                <VisualState x:Name="Small">
                    <Storyboard>
                        <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ExpirationDatePanel" Storyboard.TargetProperty="Orientation">
                            <DiscreteObjectKeyFrame KeyTime="0" Value="Vertical"/>
                        </ObjectAnimationUsingKeyFrames>
                    </Storyboard>
                </VisualState>
            </VisualStateGroup>
        </VisualStateManager.VisualStateGroups>
    </Grid>
</Page>