Make password box un-editable

This commit is contained in:
Tyrrrz 2023-07-16 21:37:40 +03:00
parent 81a6d363d1
commit 0ee1107638
2 changed files with 4 additions and 17 deletions

View file

@ -12,13 +12,13 @@
<TextBox
materialDesign:TextFieldAssist.DecorationVisibility="Hidden"
BorderThickness="{Binding BorderThickness, ElementName=Root}"
Text="{Binding Password, ElementName=Root}"
Text="{Binding Password, ElementName=Root, UpdateSourceTrigger=PropertyChanged}"
Visibility="{Binding IsRevealed, ElementName=Root, Converter={x:Static s:BoolToVisibilityConverter.Instance}}" />
<PasswordBox
x:Name="PasswordBox"
materialDesign:PasswordBoxAssist.Password="{Binding Password, ElementName=Root, UpdateSourceTrigger=PropertyChanged}"
materialDesign:TextFieldAssist.DecorationVisibility="Hidden"
BorderThickness="{Binding BorderThickness, ElementName=Root}"
PasswordChanged="PasswordBox_OnPasswordChanged"
IsEnabled="False"
Visibility="{Binding IsRevealed, ElementName=Root, Converter={x:Static s:BoolToVisibilityConverter.InverseInstance}}" />
</Grid>
</UserControl>

View file

@ -8,17 +8,7 @@ public partial class RevealablePasswordBox
nameof(Password),
typeof(string),
typeof(RevealablePasswordBox),
new FrameworkPropertyMetadata(
string.Empty,
FrameworkPropertyMetadataOptions.BindsTwoWayByDefault,
(sender, args) =>
{
var revealablePasswordBox = (RevealablePasswordBox)sender;
var password = (string)args.NewValue;
revealablePasswordBox.PasswordBox.Password = password;
}
)
new FrameworkPropertyMetadata(string.Empty, FrameworkPropertyMetadataOptions.BindsTwoWayByDefault)
);
public static readonly DependencyProperty IsRevealedProperty = DependencyProperty.Register(
@ -44,7 +34,4 @@ public partial class RevealablePasswordBox
{
InitializeComponent();
}
private void PasswordBox_OnPasswordChanged(object sender, RoutedEventArgs args) =>
Password = PasswordBox.Password;
}