mirror of
https://github.com/wismna/ModernKeePass.git
synced 2025-10-03 15:40:18 -04:00
New Save button in the AppBar EntryPage now uses the same AppBar as GroupPage (but not shared...) Some new Symbol mappings
469 lines
38 KiB
XML
469 lines
38 KiB
XML
<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.Pages.EntryDetailPage"
|
|
mc:Ignorable="d">
|
|
<Page.Resources>
|
|
<converters:BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter"/>
|
|
<converters:InverseBooleanToVisibilityConverter x:Key="InverseBooleanToVisibilityConverter"/>
|
|
<converters:ProgressBarLegalValuesConverter x:Key="ProgressBarLegalValuesConverter"/>
|
|
<converters:DoubleToForegroungBrushComplexityConverter x:Key="DoubleToForegroungBrushComplexityConverter"/>
|
|
<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=""
|
|
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 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="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=""
|
|
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 Text="Password Length: "/>
|
|
<Run Text="{Binding PasswordLength}" />
|
|
</TextBlock>
|
|
<Slider Value="{Binding PasswordLength, Mode=TwoWay}" Margin="0,-10,0,-20" />
|
|
<CheckBox IsChecked="{Binding UpperCasePatternSelected, Mode=TwoWay}" Content="Upper case (A, B, C, ...)"/>
|
|
<CheckBox IsChecked="{Binding LowerCasePatternSelected, Mode=TwoWay}" Content="Lower case (a, b, c, ...)"/>
|
|
<CheckBox IsChecked="{Binding DigitsPatternSelected, Mode=TwoWay}" Content="Digits (0, 1, 2, ...)"/>
|
|
<CheckBox IsChecked="{Binding MinusPatternSelected, Mode=TwoWay}" Content="Minus (-)"/>
|
|
<CheckBox IsChecked="{Binding UnderscorePatternSelected, Mode=TwoWay}" Content="Underscore (_)"/>
|
|
<CheckBox IsChecked="{Binding SpacePatternSelected, Mode=TwoWay}" Content="Space ( )"/>
|
|
<CheckBox IsChecked="{Binding SpecialPatternSelected, Mode=TwoWay}" Content="Special (!, $, %, ...)"/>
|
|
<CheckBox IsChecked="{Binding BracketsPatternSelected, Mode=TwoWay}" Content="Brackets ([], {}, (), ...)"/>
|
|
<Button Content="Generate">
|
|
<interactivity:Interaction.Behaviors>
|
|
<core:EventTriggerBehavior EventName="Click">
|
|
<core:CallMethodAction TargetObject="{Binding}" MethodName="GeneratePassword"/>
|
|
</core:EventTriggerBehavior>
|
|
</interactivity:Interaction.Behaviors>
|
|
</Button>
|
|
</StackPanel>
|
|
</Flyout>
|
|
</Button.Flyout>
|
|
</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="Save" Label="Save">
|
|
<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" Label="Settings" />
|
|
</CommandBar.SecondaryCommands>
|
|
<AppBarToggleButton Icon="Edit" Label="Edit" 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="Delete" Label="Delete" Click="DeleteButton_Click" />
|
|
</CommandBar>
|
|
</Page.BottomAppBar>
|
|
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
|
|
<Grid.ChildrenTransitions>
|
|
<TransitionCollection>
|
|
<EntranceThemeTransition/>
|
|
</TransitionCollection>
|
|
</Grid.ChildrenTransitions>
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="140"/>
|
|
<RowDefinition Height="*"/>
|
|
</Grid.RowDefinitions>
|
|
|
|
<StackPanel x:Name="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 TextWrapping="Wrap" Text="User name or login" FontSize="18"/>
|
|
<TextBox HorizontalAlignment="Left" TextWrapping="Wrap" Text="{Binding UserName, Mode=TwoWay}" Width="350" Height="32" />
|
|
<TextBlock TextWrapping="Wrap" Text="Password" 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}" />
|
|
<TextBox HorizontalAlignment="Left" TextWrapping="Wrap" Text="{Binding Password, Mode=TwoWay}" Width="350" Height="32" Visibility="{Binding IsRevealPassword, Converter={StaticResource BooleanToVisibilityConverter}}" />
|
|
<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 HorizontalAlignment="Left" Margin="-3,0,0,0" Content="Show password" 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}" GotoClick="UrlButton_Click" />
|
|
<TextBlock TextWrapping="Wrap" Text="Notes" FontSize="18"/>
|
|
<TextBox HorizontalAlignment="Left" TextWrapping="Wrap" Text="{Binding Notes, Mode=TwoWay}" Width="350" Height="200" AcceptsReturn="True" IsSpellCheckEnabled="True" />
|
|
<CheckBox FontSize="18" IsChecked="{Binding HasExpirationDate, Mode=TwoWay}" Content="Expiration date"/>
|
|
<StackPanel Orientation="Horizontal" IsHitTestVisible="{Binding HasExpirationDate}">
|
|
<SymbolIcon Symbol="Important" Foreground="DarkRed" Visibility="{Binding HasExpired, Converter={StaticResource BooleanToVisibilityConverter}}">
|
|
<ToolTipService.ToolTip>
|
|
<ToolTip Content="Password has expired" />
|
|
</ToolTipService.ToolTip>
|
|
</SymbolIcon>
|
|
<DatePicker Margin="0,0,20,0" Date="{Binding ExpiryDate, Mode=TwoWay}" />
|
|
<TimePicker Time="{Binding ExpiryTime, Mode=TwoWay}"/>
|
|
</StackPanel>
|
|
</StackPanel>
|
|
|
|
<!-- Bouton Précédent et titre de la page -->
|
|
<Grid Grid.Row="0">
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="120"/>
|
|
<ColumnDefinition Width="*"/>
|
|
<ColumnDefinition Width="200"/>
|
|
</Grid.ColumnDefinitions>
|
|
<Button Margin="39,0,39,0" Command="{Binding NavigationHelper.GoBackCommand, ElementName=PageRoot}"
|
|
Style="{StaticResource NavigationBackButtonNormalStyle}"
|
|
VerticalAlignment="Center"
|
|
AutomationProperties.Name="Back"
|
|
AutomationProperties.AutomationId="BackButton"
|
|
AutomationProperties.ItemType="Navigation Button"/>
|
|
<TextBox
|
|
Grid.Column="1"
|
|
x:Name="TitleTextBox"
|
|
Text="{Binding Name, Mode=TwoWay}"
|
|
Style="{StaticResource HeaderTextBoxStyle}"
|
|
Foreground="{ThemeResource DefaultTextForegroundThemeBrush}"
|
|
IsHitTestVisible="{Binding IsEditMode}"
|
|
TextWrapping="NoWrap"
|
|
VerticalAlignment="Center"
|
|
Margin="0,0,30,0"
|
|
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>
|
|
</Grid>
|
|
</Grid>
|
|
</Page> |