mirror of
https://github.com/wismna/ModernKeePass.git
synced 2025-10-03 15:40:18 -04:00
142 lines
8.2 KiB
XML
142 lines
8.2 KiB
XML
<UserControl x:Name="UserControl"
|
|
x:Class="ModernKeePass.Views.UserControls.SetCredentialsUserControl"
|
|
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:interactivity="using:Microsoft.Xaml.Interactivity"
|
|
xmlns:core="using:Microsoft.Xaml.Interactions.Core"
|
|
xmlns:converters="using:ModernKeePass.Converters"
|
|
xmlns:userControls="using:ModernKeePass.Views.UserControls"
|
|
mc:Ignorable="d">
|
|
<UserControl.Resources>
|
|
<!--<converters:ProgressBarLegalValuesConverter x:Key="ProgressBarLegalValuesConverter"/>
|
|
<converters:DoubleToSolidColorBrushConverter x:Key="DoubleToSolidColorBrushConverter"/>-->
|
|
<converters:InverseBooleanToVisibilityConverter x:Key="InverseBooleanToVisibilityConverter"/>
|
|
</UserControl.Resources>
|
|
<Grid DataContext="{Binding Source={StaticResource Locator}, Path=SetCredentials}">
|
|
<Grid.Resources>
|
|
<SolidColorBrush x:Key="ErrorBrush" Color="Red" />
|
|
<SolidColorBrush x:Key="ValidBrush" Color="Green" />
|
|
</Grid.Resources>
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="50" />
|
|
<ColumnDefinition Width="*" />
|
|
</Grid.ColumnDefinitions>
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition Height="Auto" />
|
|
<RowDefinition Height="Auto" />
|
|
<RowDefinition Height="Auto" />
|
|
<RowDefinition Height="40" />
|
|
<RowDefinition Height="Auto" />
|
|
<RowDefinition Height="40" />
|
|
</Grid.RowDefinitions>
|
|
<CheckBox Grid.Row="0" Grid.Column="0" IsChecked="{Binding HasPassword, Mode=TwoWay}" />
|
|
<!--<PasswordBox Grid.Row="0" Grid.Column="1" Height="30"
|
|
x:Uid="CompositeKeyPassword"
|
|
x:Name="PasswordBox"
|
|
Password="{Binding Password, Mode=TwoWay}"
|
|
IsEnabled="{Binding HasPassword}"
|
|
IsPasswordRevealButtonEnabled="True" />-->
|
|
<userControls:PasswordGenerationBox Grid.Row="0" Grid.Column="1"
|
|
x:Uid="CompositeKeyPassword"
|
|
x:Name="PasswordBox"
|
|
Password="{Binding Password, Mode=TwoWay}"
|
|
IsEnabled="{Binding HasPassword}" />
|
|
<PasswordBox Grid.Row="1" Grid.Column="1"
|
|
x:Uid="CompositeKeyConfirmPassword"
|
|
x:Name="ConfirmPasswordBox"
|
|
Margin="0,5,0,0"
|
|
Password="{Binding ConfirmPassword, Mode=TwoWay}"
|
|
IsEnabled="{Binding HasPassword}"
|
|
IsPasswordRevealButtonEnabled="True" />
|
|
<!--<ProgressBar Grid.Row="1" Grid.Column="1"
|
|
Maximum="128" VerticalAlignment="Bottom"
|
|
Value="{Binding PasswordComplexityIndicator, ConverterParameter=0\,128, Converter={StaticResource ProgressBarLegalValuesConverter}}"
|
|
Foreground="{Binding PasswordComplexityIndicator, ConverterParameter=128, Converter={StaticResource DoubleToSolidColorBrushConverter}}"/>-->
|
|
<TextBlock Grid.Row="2" Grid.Column="1"
|
|
FontSize="14" FontWeight="Light"
|
|
x:Uid="SetCredentialsControlMatchingPasswords"
|
|
Foreground="{StaticResource ErrorBrush}"
|
|
Visibility="{Binding IsPasswordValid, Converter={StaticResource InverseBooleanToVisibilityConverter}}" />
|
|
|
|
<CheckBox Grid.Row="3" Grid.Column="0" IsChecked="{Binding HasKeyFile, Mode=TwoWay}" />
|
|
<HyperlinkButton Grid.Row="3" Grid.Column="1" Margin="-15,0,0,0"
|
|
x:Name="HyperlinkButton"
|
|
Content="{Binding KeyFileText}"
|
|
Command="{Binding OpenKeyFileCommand}" />
|
|
<HyperlinkButton Grid.Row="3" Grid.Column="1" HorizontalAlignment="Right"
|
|
Command="{Binding CreateKeyFileCommand}">
|
|
<SymbolIcon Symbol="Add">
|
|
<ToolTipService.ToolTip>
|
|
<ToolTip x:Uid="CompositeKeyNewKeyFileTooltip" />
|
|
</ToolTipService.ToolTip>
|
|
</SymbolIcon>
|
|
</HyperlinkButton>
|
|
<TextBlock Grid.Row="4" Grid.Column="1" FontSize="14" FontWeight="Light"
|
|
x:Uid="SetCredentialsControlMissingKeyFile"
|
|
Foreground="{StaticResource ErrorBrush}"
|
|
Visibility="{Binding IsKeyFileValid, Converter={StaticResource InverseBooleanToVisibilityConverter}}" />
|
|
|
|
<Button Grid.Column="0" Grid.ColumnSpan="2" Grid.Row="5"
|
|
Command="{Binding GenerateCredentialsCommand}"
|
|
Content="{Binding ButtonLabel, ElementName=UserControl}" />
|
|
|
|
<VisualStateManager.VisualStateGroups>
|
|
<VisualStateGroup x:Name="CredentialStatus">
|
|
<VisualState x:Name="PasswordError">
|
|
<Storyboard>
|
|
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="PasswordBox" Storyboard.TargetProperty="BorderBrush">
|
|
<DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource ErrorBrush}"/>
|
|
</ObjectAnimationUsingKeyFrames>
|
|
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="ConfirmPasswordBox" Storyboard.TargetProperty="BorderBrush">
|
|
<DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource ErrorBrush}"/>
|
|
</ObjectAnimationUsingKeyFrames>
|
|
</Storyboard>
|
|
</VisualState>
|
|
<VisualState x:Name="PasswordValid">
|
|
<Storyboard>
|
|
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="PasswordBox" Storyboard.TargetProperty="BorderBrush">
|
|
<DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource ValidBrush}"/>
|
|
</ObjectAnimationUsingKeyFrames>
|
|
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="ConfirmPasswordBox" Storyboard.TargetProperty="BorderBrush">
|
|
<DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource ValidBrush}"/>
|
|
</ObjectAnimationUsingKeyFrames>
|
|
</Storyboard>
|
|
</VisualState>
|
|
<VisualState x:Name="KeyFileError">
|
|
<Storyboard>
|
|
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="HyperlinkButton" Storyboard.TargetProperty="Foreground">
|
|
<DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource ErrorBrush}"/>
|
|
</ObjectAnimationUsingKeyFrames>
|
|
</Storyboard>
|
|
</VisualState>
|
|
<VisualState x:Name="KeyFileValid">
|
|
<Storyboard>
|
|
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="HyperlinkButton" Storyboard.TargetProperty="Foreground">
|
|
<DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource ValidBrush}"/>
|
|
</ObjectAnimationUsingKeyFrames>
|
|
</Storyboard>
|
|
</VisualState>
|
|
</VisualStateGroup>
|
|
</VisualStateManager.VisualStateGroups>
|
|
<interactivity:Interaction.Behaviors>
|
|
<core:DataTriggerBehavior Binding="{Binding IsPasswordValid}" Value="False">
|
|
<core:GoToStateAction StateName="PasswordError"/>
|
|
</core:DataTriggerBehavior>
|
|
<core:DataTriggerBehavior Binding="{Binding IsPasswordValid}" Value="True">
|
|
<core:GoToStateAction StateName="PasswordValid"/>
|
|
</core:DataTriggerBehavior>
|
|
<core:DataTriggerBehavior Binding="{Binding IsKeyFileValid}" Value="False">
|
|
<core:GoToStateAction StateName="KeyFileError"/>
|
|
</core:DataTriggerBehavior>
|
|
<core:DataTriggerBehavior Binding="{Binding IsKeyFileValid}" Value="True">
|
|
<core:GoToStateAction StateName="KeyFileValid"/>
|
|
</core:DataTriggerBehavior>
|
|
<core:EventTriggerBehavior EventName="Unloaded">
|
|
<core:CallMethodAction TargetObject="{Binding}" MethodName="Cleanup"/>
|
|
</core:EventTriggerBehavior>
|
|
</interactivity:Interaction.Behaviors>
|
|
</Grid>
|
|
</UserControl>
|