Themes/MaterialDesignTheme.PasswordBox.xaml
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:behaviors="http://schemas.microsoft.com/xaml/behaviors" xmlns:converters="clr-namespace:MaterialDesignThemes.Wpf.Converters" xmlns:convertersInternal="clr-namespace:MaterialDesignThemes.Wpf.Converters.Internal" xmlns:internal="clr-namespace:MaterialDesignThemes.Wpf.Internal" xmlns:internalbehaviors="clr-namespace:MaterialDesignThemes.Wpf.Behaviors" xmlns:wpf="clr-namespace:MaterialDesignThemes.Wpf" xmlns:system="clr-namespace:System;assembly=System.Runtime"> <ResourceDictionary.MergedDictionaries> <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.ValidationErrorTemplate.xaml" /> <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.Menu.xaml" /> <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.Button.xaml" /> </ResourceDictionary.MergedDictionaries> <Style x:Key="MaterialDesignPasswordBox" TargetType="{x:Type PasswordBox}"> <Style.Resources> <system:Boolean x:Key="TrueValue">True</system:Boolean> <system:Int32 x:Key="One">1</system:Int32> <convertersInternal:TextFieldClearButtonVisibilityConverter x:Key="ClearButtonVisibilityConverter" ContentEmptyVisibility="Collapsed" /> <converters:TextFieldPrefixTextVisibilityConverter x:Key="PrefixSuffixTextVisibilityConverter" HiddenState="Collapsed" /> <converters:BooleanToDashStyleConverter x:Key="BooleanToDashStyleConverter" TrueValue="{x:Static DashStyles.Solid}" /> <converters:ThicknessCloneConverter x:Key="HelperTextMarginConverter" CloneEdges="Left,Right" /> <converters:MathConverter x:Key="DivisionConverter" Operation="Divide" Offset="1.5" /> <converters:ThicknessCloneConverter x:Key="ThicknessCloneConverter" CloneEdges="All" AdditionalOffsetBottom="-1" /> <Style x:Key="MaterialDesignPasswordCharacterCounterTextBlock" TargetType="TextBlock" BasedOn="{StaticResource {x:Type TextBlock}}"> <Setter Property="FontSize" Value="10" /> <Setter Property="Margin" Value="0,0,16,0" /> <Setter Property="Opacity" Value="0.56" /> <Setter Property="Text"> <Setter.Value> <MultiBinding StringFormat="{}{0} / {1}"> <Binding Path="(wpf:TextFieldAssist.PasswordBoxCharacterCount)" RelativeSource="{RelativeSource FindAncestor, AncestorType=PasswordBox}" /> <Binding Path="MaxLength" RelativeSource="{RelativeSource FindAncestor, AncestorType=PasswordBox}" /> </MultiBinding> </Setter.Value> </Setter> <Setter Property="VerticalAlignment" Value="Center" /> <Setter Property="Visibility" Value="{Binding Path=(wpf:TextFieldAssist.CharacterCounterVisibility), RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type PasswordBox}}}" /> </Style> <Style x:Key="MaterialDesignPasswordHelperTextBlock" TargetType="TextBlock" BasedOn="{StaticResource {x:Type TextBlock}}"> <Setter Property="FontSize" Value="{Binding Path=(wpf:HintAssist.HelperTextFontSize), RelativeSource={RelativeSource Mode=TemplatedParent}}" /> <Setter Property="Opacity" Value="{Binding Path=(wpf:HintAssist.HintOpacity), RelativeSource={RelativeSource Mode=TemplatedParent}}" /> <Setter Property="Text" Value="{Binding Path=(wpf:HintAssist.HelperText), RelativeSource={RelativeSource Mode=TemplatedParent}}" /> </Style> </Style.Resources> <Setter Property="AllowDrop" Value="true" /> <Setter Property="Background" Value="Transparent" /> <Setter Property="BorderBrush" Value="{DynamicResource MaterialDesign.Brush.ForegroundLight}" /> <Setter Property="BorderThickness" Value="0,0,0,1" /> <Setter Property="CaretBrush" Value="{DynamicResource MaterialDesign.Brush.Primary}" /> <Setter Property="ContextMenu" Value="{StaticResource MaterialDesignDefaultContextMenu}" /> <Setter Property="FocusVisualStyle" Value="{x:Null}" /> <Setter Property="FontFamily" Value="{Binding RelativeSource={RelativeSource AncestorType={x:Type FrameworkElement}}, Path=(TextElement.FontFamily)}" /> <Setter Property="Foreground" Value="{Binding RelativeSource={RelativeSource AncestorType={x:Type FrameworkElement}}, Path=(TextElement.Foreground)}" /> <Setter Property="HorizontalContentAlignment" Value="Stretch" /> <Setter Property="VerticalContentAlignment" Value="Stretch" /> <Setter Property="KeyboardNavigation.TabNavigation" Value="Local" /> <Setter Property="Padding" Value="{x:Static wpf:Constants.TextBoxDefaultPadding}" /> <Setter Property="PasswordChar" Value="●" /> <Setter Property="ScrollViewer.PanningMode" Value="VerticalFirst" /> <Setter Property="SelectionBrush" Value="{DynamicResource MaterialDesign.Brush.Primary.Light}" /> <Setter Property="Stylus.IsFlicksEnabled" Value="False" /> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type PasswordBox}"> <Grid Cursor="{TemplateBinding Cursor, Converter={x:Static converters:CursorConverter.ArrowInstance}}"> <VisualStateManager.VisualStateGroups> <VisualStateGroup x:Name="FocusStates"> <VisualState x:Name="Focused"> <Storyboard TargetName="RippleOnFocusScaleTransform"> <DoubleAnimation Storyboard.TargetProperty="ScaleX" From="0" To="1" Duration="0:0:0.3"> <DoubleAnimation.EasingFunction> <SineEase EasingMode="EaseOut" /> </DoubleAnimation.EasingFunction> </DoubleAnimation> <DoubleAnimation Storyboard.TargetProperty="ScaleY" From="0" To="1" Duration="0:0:0.3"> <DoubleAnimation.EasingFunction> <SineEase EasingMode="EaseOut" /> </DoubleAnimation.EasingFunction> </DoubleAnimation> <DoubleAnimation BeginTime="0:0:0.45" Storyboard.TargetProperty="ScaleX" To="0" Duration="0" /> <DoubleAnimation BeginTime="0:0:0.45" Storyboard.TargetProperty="ScaleY" To="0" Duration="0" /> </Storyboard> </VisualState> <VisualState x:Name="Unfocused"> <Storyboard TargetName="RippleOnFocusScaleTransform"> <DoubleAnimation Storyboard.TargetProperty="ScaleX" To="0" Duration="0" /> <DoubleAnimation Storyboard.TargetProperty="ScaleY" To="0" Duration="0" /> </Storyboard> </VisualState> </VisualStateGroup> </VisualStateManager.VisualStateGroups> <Border HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Background="{DynamicResource MaterialDesign.Brush.PasswordBox.HoverBackground}" CornerRadius="{TemplateBinding wpf:TextFieldAssist.TextFieldCornerRadius}" RenderTransformOrigin="0.5,0.5" Visibility="{TemplateBinding wpf:TextFieldAssist.RippleOnFocusEnabled, Converter={x:Static converters:BooleanToVisibilityConverter.CollapsedInstance}}"> <Border.RenderTransform> <ScaleTransform x:Name="RippleOnFocusScaleTransform" ScaleX="0" ScaleY="0" /> </Border.RenderTransform> </Border> <AdornerDecorator> <Border x:Name="OuterBorder" Padding="{TemplateBinding Padding}" wpf:BottomDashedLineAdorner.Brush="{TemplateBinding BorderBrush}" wpf:BottomDashedLineAdorner.Thickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" CornerRadius="{TemplateBinding wpf:TextFieldAssist.TextFieldCornerRadius}" SnapsToDevicePixels="True"> <Grid x:Name="ContentGrid" MinHeight="16" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"> <Grid.ColumnDefinitions> <ColumnDefinition Width="Auto" /> <ColumnDefinition Width="Auto" /> <ColumnDefinition Width="*" /> <ColumnDefinition Width="Auto" /> <ColumnDefinition Width="Auto" /> <ColumnDefinition Width="Auto" /> </Grid.ColumnDefinitions> <wpf:PackIcon x:Name="LeadingPackIcon" Grid.Column="0" Width="{TemplateBinding wpf:TextFieldAssist.LeadingIconSize}" Height="{TemplateBinding wpf:TextFieldAssist.LeadingIconSize}" Margin="0,0,6,0" VerticalAlignment="{TemplateBinding wpf:TextFieldAssist.IconVerticalAlignment}" Kind="{TemplateBinding wpf:TextFieldAssist.LeadingIcon}" Opacity="{TemplateBinding wpf:HintAssist.HintOpacity}" Visibility="{TemplateBinding wpf:TextFieldAssist.HasLeadingIcon, Converter={x:Static converters:BooleanToVisibilityConverter.CollapsedInstance}}" /> <TextBlock x:Name="PrefixTextBlock" Grid.Column="1" Margin="0,0,2,0" VerticalAlignment="Center" FontSize="{TemplateBinding FontSize}" Opacity="{TemplateBinding wpf:HintAssist.HintOpacity}" Text="{TemplateBinding wpf:TextFieldAssist.PrefixText}"> <TextBlock.Visibility> <MultiBinding Converter="{StaticResource PrefixSuffixTextVisibilityConverter}"> <Binding ElementName="Hint" Path="IsHintInFloatingPosition" /> <Binding Path="(wpf:TextFieldAssist.PrefixText)" RelativeSource="{RelativeSource TemplatedParent}" /> <Binding Path="(wpf:TextFieldAssist.PrefixTextVisibility)" RelativeSource="{RelativeSource TemplatedParent}" /> <Binding Path="IsKeyboardFocusWithin" RelativeSource="{RelativeSource TemplatedParent}" /> <Binding Source="{StaticResource TrueValue}" /> </MultiBinding> </TextBlock.Visibility> </TextBlock> <ScrollViewer x:Name="PART_ContentHost" Grid.Column="2" HorizontalAlignment="Stretch" VerticalAlignment="Center" HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}" VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}" Panel.ZIndex="1" wpf:ScrollViewerAssist.IgnorePadding="True" Cursor="{TemplateBinding Cursor, Converter={x:Static converters:CursorConverter.IBeamInstance}}" Focusable="False" HorizontalScrollBarVisibility="Hidden" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" UseLayoutRounding="{TemplateBinding UseLayoutRounding}" VerticalScrollBarVisibility="Hidden" wpf:ScrollViewerAssist.BubbleVerticalScroll="True"/> <wpf:SmartHint x:Name="Hint" Grid.Column="1" Grid.ColumnSpan="3" VerticalAlignment="Center" HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}" VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}" FloatingOffset="{TemplateBinding wpf:HintAssist.FloatingOffset}" FloatingScale="{TemplateBinding wpf:HintAssist.FloatingScale}" FontFamily="{TemplateBinding wpf:HintAssist.FontFamily}" FontSize="{TemplateBinding FontSize}" HintOpacity="{TemplateBinding wpf:HintAssist.HintOpacity}" HintProxy="{Binding RelativeSource={RelativeSource TemplatedParent}, Converter={x:Static converters:HintProxyFabricConverter.Instance}}" UseFloating="{TemplateBinding wpf:HintAssist.IsFloating}" FloatingTarget="{Binding ElementName=PART_ContentHost}" wpf:HintAssist.Background="{TemplateBinding wpf:HintAssist.Background}" wpf:HintAssist.HintPaddingBrush="{TemplateBinding wpf:HintAssist.HintPaddingBrush}"> <wpf:SmartHint.InitialHorizontalOffset> <MultiBinding Converter="{x:Static converters:FloatingHintInitialHorizontalOffsetConverter.Instance}"> <Binding ElementName="PrefixTextBlock" Path="ActualWidth" /> <Binding ElementName="PrefixTextBlock" Path="Margin" /> <Binding ElementName="SuffixTextBlock" Path="ActualWidth" /> <Binding ElementName="SuffixTextBlock" Path="Margin" /> <Binding RelativeSource="{RelativeSource TemplatedParent}" Path="(wpf:TextFieldAssist.PrefixTextVisibility)" /> <Binding RelativeSource="{RelativeSource TemplatedParent}" Path="(wpf:TextFieldAssist.SuffixTextVisibility)" /> <Binding RelativeSource="{RelativeSource TemplatedParent}" Path="(wpf:TextFieldAssist.PrefixTextHintBehavior)" /> <Binding RelativeSource="{RelativeSource TemplatedParent}" Path="(wpf:TextFieldAssist.SuffixTextHintBehavior)" /> <Binding RelativeSource="{RelativeSource TemplatedParent}" Path="HorizontalContentAlignment" /> <Binding Source="{StaticResource TrueValue}" /> </MultiBinding> </wpf:SmartHint.InitialHorizontalOffset> <wpf:SmartHint.Margin> <MultiBinding Converter="{x:Static converters:FloatingHintMarginConverter.Instance}"> <Binding RelativeSource="{RelativeSource TemplatedParent}" Path="(wpf:HintAssist.IsFloating)" /> <Binding RelativeSource="{RelativeSource TemplatedParent}" Path="IsKeyboardFocusWithin" /> <Binding Source="{StaticResource TrueValue}" /> <Binding ElementName="PrefixTextBlock" Path="ActualWidth" /> <Binding ElementName="PrefixTextBlock" Path="Margin" /> <Binding ElementName="SuffixTextBlock" Path="ActualWidth" /> <Binding ElementName="SuffixTextBlock" Path="Margin" /> <Binding RelativeSource="{RelativeSource TemplatedParent}" Path="(wpf:TextFieldAssist.PrefixTextVisibility)" /> <Binding RelativeSource="{RelativeSource TemplatedParent}" Path="(wpf:TextFieldAssist.SuffixTextVisibility)" /> </MultiBinding> </wpf:SmartHint.Margin> <wpf:SmartHint.Hint> <Border x:Name="HintBackgroundBorder" Background="{TemplateBinding wpf:HintAssist.Background}" CornerRadius="2"> <ContentPresenter x:Name="HintWrapper" Content="{TemplateBinding wpf:HintAssist.Hint}" /> </Border> </wpf:SmartHint.Hint> </wpf:SmartHint> <TextBlock x:Name="SuffixTextBlock" Grid.Column="3" Margin="2,0,0,0" VerticalAlignment="Center" FontSize="{TemplateBinding FontSize}" Opacity="{TemplateBinding wpf:HintAssist.HintOpacity}" Text="{TemplateBinding wpf:TextFieldAssist.SuffixText}"> <TextBlock.Visibility> <MultiBinding Converter="{StaticResource PrefixSuffixTextVisibilityConverter}"> <Binding ElementName="Hint" Path="IsHintInFloatingPosition" /> <Binding Path="(wpf:TextFieldAssist.SuffixText)" RelativeSource="{RelativeSource TemplatedParent}" /> <Binding Path="(wpf:TextFieldAssist.SuffixTextVisibility)" RelativeSource="{RelativeSource TemplatedParent}" /> <Binding Path="IsKeyboardFocusWithin" RelativeSource="{RelativeSource TemplatedParent}" /> <Binding Source="{StaticResource TrueValue}" /> </MultiBinding> </TextBlock.Visibility> </TextBlock> <wpf:PackIcon x:Name="TrailingPackIcon" Grid.Column="4" Width="{TemplateBinding wpf:TextFieldAssist.TrailingIconSize}" Height="{TemplateBinding wpf:TextFieldAssist.TrailingIconSize}" Margin="4,0,0,0" VerticalAlignment="{TemplateBinding wpf:TextFieldAssist.IconVerticalAlignment}" Kind="{TemplateBinding wpf:TextFieldAssist.TrailingIcon}" Opacity="{TemplateBinding wpf:HintAssist.HintOpacity}" Visibility="{TemplateBinding wpf:TextFieldAssist.HasTrailingIcon, Converter={x:Static converters:BooleanToVisibilityConverter.CollapsedInstance}}" /> <Button x:Name="PART_ClearButton" Foreground="{TemplateBinding Foreground}" Grid.Column="5" Height="{TemplateBinding wpf:TextFieldAssist.ClearButtonSize}" Width="{TemplateBinding wpf:TextFieldAssist.ClearButtonSize}" Opacity="{TemplateBinding wpf:HintAssist.HintOpacity}" Padding="2,0,0,0" Command="{x:Static internal:ClearText.ClearCommand}" Focusable="False" VerticalAlignment="{TemplateBinding wpf:TextFieldAssist.IconVerticalAlignment}" Style="{StaticResource MaterialDesignToolButton}"> <Button.Visibility> <MultiBinding Converter="{StaticResource ClearButtonVisibilityConverter}"> <Binding Path="(wpf:TextFieldAssist.HasClearButton)" RelativeSource="{RelativeSource TemplatedParent}" /> <Binding ElementName="Hint" Path="IsContentNullOrEmpty" /> </MultiBinding> </Button.Visibility> <wpf:PackIcon x:Name="ClearButtonIcon" Margin="0" Kind="CloseCircle" Height="auto" Width="auto" /> </Button> </Grid> </Border> </AdornerDecorator> <wpf:Underline x:Name="Underline" VerticalAlignment="Bottom" Background="{TemplateBinding wpf:TextFieldAssist.UnderlineBrush}" CornerRadius="{TemplateBinding wpf:TextFieldAssist.UnderlineCornerRadius}" Visibility="{TemplateBinding wpf:TextFieldAssist.DecorationVisibility}" /> <Canvas VerticalAlignment="Bottom" IsHitTestVisible="False"> <Border Canvas.Top="2" Padding="{TemplateBinding Padding, Converter={StaticResource HelperTextMarginConverter}}" Width="{Binding ActualWidth, ElementName=OuterBorder}"> <Grid x:Name="FooterGrid"> <Grid.ColumnDefinitions> <ColumnDefinition /> <ColumnDefinition Width="Auto" /> </Grid.ColumnDefinitions> <TextBlock x:Name="HelperTextTextBlock" Style="{Binding Path=(wpf:HintAssist.HelperTextStyle), RelativeSource={RelativeSource TemplatedParent}}" /> <Border x:Name="CharacterCounterContainer" Grid.Column="1"> <TextBlock x:Name="CharacterCounterTextBlock" Style="{Binding Path=(wpf:TextFieldAssist.CharacterCounterStyle), RelativeSource={RelativeSource TemplatedParent}}" /> </Border> </Grid> </Border> </Canvas> </Grid> <ControlTemplate.Triggers> <!-- Floating hint --> <MultiTrigger> <MultiTrigger.Conditions> <Condition Property="wpf:HintAssist.IsFloating" Value="True" /> <Condition SourceName="Hint" Property="IsHintInFloatingPosition" Value="True" /> </MultiTrigger.Conditions> <Setter TargetName="Hint" Property="HintOpacity" Value="1" /> </MultiTrigger> <MultiTrigger> <MultiTrigger.Conditions> <Condition Property="wpf:HintAssist.IsFloating" Value="True" /> <Condition Property="IsKeyboardFocusWithin" Value="True" /> </MultiTrigger.Conditions> <Setter TargetName="Hint" Property="HintOpacity" Value="1" /> <Setter TargetName="Hint" Property="Foreground" Value="{Binding Path=(wpf:HintAssist.Foreground), RelativeSource={RelativeSource TemplatedParent}}" /> </MultiTrigger> <!-- Character counter --> <DataTrigger Value="0"> <DataTrigger.Binding> <PriorityBinding> <Binding FallbackValue="0" Path="MaxLength" RelativeSource="{RelativeSource Self}" /> <Binding Source="0" /> </PriorityBinding> </DataTrigger.Binding> <Setter TargetName="CharacterCounterContainer" Property="Visibility" Value="Collapsed" /> </DataTrigger> <!-- Outlined text field --> <Trigger Property="wpf:TextFieldAssist.HasOutlinedTextField" Value="True"> <Setter TargetName="Underline" Property="Visibility" Value="Collapsed" /> <Setter TargetName="Hint" Property="FloatingTarget" Value="{Binding ElementName=OuterBorder}" /> <Setter TargetName="Hint" Property="FloatingAlignment" Value="Center" /> <Setter TargetName="Hint" Property="FloatingMargin" Value="4,0" /> <Setter TargetName="Hint" Property="InitialVerticalOffset" Value="{Binding ElementName=Hint, Path=ActualHeight, Converter={StaticResource DivisionConverter}, ConverterParameter=2}" /> </Trigger> <MultiTrigger> <MultiTrigger.Conditions> <Condition Property="wpf:TextFieldAssist.HasOutlinedTextField" Value="True" /> <Condition Property="wpf:HintAssist.IsFloating" Value="True" /> <Condition SourceName="Hint" Property="IsHintInFloatingPosition" Value="True" /> </MultiTrigger.Conditions> <Setter TargetName="Hint" Property="wpf:HintAssist.ApplyHintPaddingBrush" Value="True" /> </MultiTrigger> <!-- IsEnabled --> <MultiTrigger> <MultiTrigger.Conditions> <Condition Property="IsEnabled" Value="False" /> <Condition Property="wpf:TextFieldAssist.HasOutlinedTextField" Value="False" /> </MultiTrigger.Conditions> <Setter TargetName="OuterBorder" Property="BorderBrush" Value="Transparent" /> <Setter TargetName="OuterBorder" Property="wpf:BottomDashedLineAdorner.IsAttached" Value="True" /> <Setter TargetName="OuterBorder" Property="wpf:BottomDashedLineAdorner.DashStyle" Value="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=(wpf:TextFieldAssist.HasFilledTextField), Converter={StaticResource BooleanToDashStyleConverter}}" /> <Setter TargetName="ContentGrid" Property="Opacity" Value="{x:Static wpf:Constants.TextBoxNotEnabledOpacity}" /> </MultiTrigger> <MultiTrigger> <MultiTrigger.Conditions> <Condition Property="IsEnabled" Value="False" /> <Condition Property="wpf:TextFieldAssist.HasOutlinedTextField" Value="True" /> </MultiTrigger.Conditions> <Setter Property="BorderBrush" Value="{DynamicResource MaterialDesign.Brush.PasswordBox.OutlineInactiveBorder}" /> <Setter TargetName="PART_ContentHost" Property="Opacity" Value="{x:Static wpf:Constants.TextBoxNotEnabledOpacity}" /> <Setter TargetName="HintWrapper" Property="Opacity" Value="{x:Static wpf:Constants.TextBoxNotEnabledOpacity}" /> <Setter TargetName="PART_ClearButton" Property="Opacity" Value="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=(wpf:HintAssist.HintOpacity), Converter={x:Static converters:MathConverter.MultiplyInstance}, ConverterParameter={x:Static wpf:Constants.TextBoxNotEnabledOpacity}}" /> <Setter TargetName="LeadingPackIcon" Property="Opacity" Value="{Binding ElementName=PART_ClearButton, Path=Opacity}" /> <Setter TargetName="PrefixTextBlock" Property="Opacity" Value="{Binding ElementName=PART_ClearButton, Path=Opacity}" /> <Setter TargetName="SuffixTextBlock" Property="Opacity" Value="{Binding ElementName=PART_ClearButton, Path=Opacity}" /> <Setter TargetName="TrailingPackIcon" Property="Opacity" Value="{Binding ElementName=PART_ClearButton, Path=Opacity}" /> </MultiTrigger> <!-- IsKeyboardFocused --> <Trigger Property="IsKeyboardFocusWithin" Value="True"> <Setter TargetName="HintWrapper" Property="Opacity" Value="1" /> <Setter Property="BorderBrush" Value="{Binding Path=(wpf:TextFieldAssist.UnderlineBrush), RelativeSource={RelativeSource Self}}" /> <Setter TargetName="Underline" Property="IsActive" Value="True" /> </Trigger> <MultiTrigger> <MultiTrigger.Conditions> <Condition Property="IsKeyboardFocusWithin" Value="True" /> <Condition Property="Validation.HasError" Value="False" /> <Condition Property="wpf:TextFieldAssist.HasOutlinedTextField" Value="True" /> </MultiTrigger.Conditions> <Setter Property="BorderBrush" Value="{Binding Path=(wpf:TextFieldAssist.UnderlineBrush), RelativeSource={RelativeSource Self}}" /> <Setter TargetName="OuterBorder" Property="BorderThickness" Value="{Binding Path=(wpf:TextFieldAssist.OutlinedBorderActiveThickness), RelativeSource={RelativeSource TemplatedParent}}" /> <Setter TargetName="ContentGrid" Property="Margin"> <Setter.Value> <MultiBinding Converter="{x:Static converters:OutlinedStyleActiveBorderMarginCompensationConverter.Instance}"> <Binding Path="BorderThickness" RelativeSource="{RelativeSource TemplatedParent}" /> <Binding Path="(wpf:TextFieldAssist.OutlinedBorderActiveThickness)" RelativeSource="{RelativeSource TemplatedParent}" /> </MultiBinding> </Setter.Value> </Setter> </MultiTrigger> <!-- IsMouseOver --> <MultiTrigger> <MultiTrigger.Conditions> <Condition Property="IsMouseOver" Value="True" /> <Condition Property="wpf:TextFieldAssist.HasFilledTextField" Value="False" /> <Condition Property="wpf:TextFieldAssist.HasOutlinedTextField" Value="False" /> <Condition Property="wpf:TextFieldAssist.NewSpecHighlightingEnabled" Value="False" /> </MultiTrigger.Conditions> <Setter Property="BorderBrush" Value="{Binding Path=(wpf:TextFieldAssist.UnderlineBrush), RelativeSource={RelativeSource Self}}" /> </MultiTrigger> <MultiTrigger> <MultiTrigger.Conditions> <Condition Property="IsMouseOver" Value="True" /> <Condition Property="wpf:TextFieldAssist.HasFilledTextField" Value="False" /> <Condition Property="wpf:TextFieldAssist.HasOutlinedTextField" Value="False" /> <Condition Property="wpf:TextFieldAssist.NewSpecHighlightingEnabled" Value="True" /> </MultiTrigger.Conditions> <Setter TargetName="OuterBorder" Property="BorderThickness" Value="0,0,0,2" /> <Setter TargetName="OuterBorder" Property="Padding" Value="{Binding Path=Padding, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource ThicknessCloneConverter}}" /> </MultiTrigger> <MultiTrigger> <MultiTrigger.Conditions> <Condition Property="IsMouseOver" Value="True" /> <Condition Property="wpf:TextFieldAssist.HasFilledTextField" Value="True" /> </MultiTrigger.Conditions> <Setter Property="Background" Value="{DynamicResource MaterialDesign.Brush.PasswordBox.HoverBackground}" /> <Setter Property="BorderBrush" Value="{DynamicResource MaterialDesign.Brush.PasswordBox.HoverBorder}" /> </MultiTrigger> <MultiTrigger> <MultiTrigger.Conditions> <Condition Property="IsMouseOver" Value="True" /> <Condition Property="Validation.HasError" Value="False" /> <Condition Property="wpf:TextFieldAssist.HasOutlinedTextField" Value="True" /> </MultiTrigger.Conditions> <Setter TargetName="OuterBorder" Property="BorderThickness" Value="{Binding Path=(wpf:TextFieldAssist.OutlinedBorderActiveThickness), RelativeSource={RelativeSource TemplatedParent}}" /> <Setter TargetName="ContentGrid" Property="Margin"> <Setter.Value> <MultiBinding Converter="{x:Static converters:OutlinedStyleActiveBorderMarginCompensationConverter.Instance}"> <Binding Path="BorderThickness" RelativeSource="{RelativeSource TemplatedParent}" /> <Binding Path="(wpf:TextFieldAssist.OutlinedBorderActiveThickness)" RelativeSource="{RelativeSource TemplatedParent}" /> </MultiBinding> </Setter.Value> </Setter> </MultiTrigger> <MultiTrigger> <MultiTrigger.Conditions> <Condition Property="IsMouseOver" Value="True" /> <Condition Property="wpf:TextFieldAssist.HasOutlinedTextField" Value="True" /> <Condition Property="wpf:HintAssist.IsFloating" Value="True" /> <Condition SourceName="Hint" Property="IsHintInFloatingPosition" Value="True" /> </MultiTrigger.Conditions> <Setter TargetName="HintWrapper" Property="Opacity" Value="1" /> </MultiTrigger> <!-- VerticalContentAlignment.Stretch --> <MultiTrigger> <MultiTrigger.Conditions> <Condition Property="VerticalContentAlignment" Value="Stretch" /> <Condition Property="wpf:TextFieldAssist.HasOutlinedTextField" Value="False" /> </MultiTrigger.Conditions> <Setter TargetName="Hint" Property="InitialVerticalOffset"> <Setter.Value> <MultiBinding Converter="{x:Static converters:FloatingHintInitialVerticalOffsetConverter.Instance}"> <Binding ElementName="PART_ContentHost" Path="ActualHeight" /> <Binding ElementName="Hint" Path="ActualHeight" /> <Binding Source="{StaticResource One}" /> </MultiBinding> </Setter.Value> </Setter> </MultiTrigger> <MultiTrigger> <MultiTrigger.Conditions> <Condition Property="VerticalContentAlignment" Value="Stretch" /> <Condition SourceName="PART_ContentHost" Property="ScrollViewer.ComputedHorizontalScrollBarVisibility" Value="Visible"/> </MultiTrigger.Conditions> <Setter Property="wpf:TextFieldAssist.TextBoxViewMargin" Value="{x:Static wpf:Constants.DefaultTextBoxViewMarginStretch}" /> </MultiTrigger> <!-- Validation.HasError --> <Trigger Property="Validation.HasError" Value="true"> <Setter Property="BorderBrush" Value="{DynamicResource MaterialDesign.Brush.ValidationError}" /> <Setter TargetName="Underline" Property="Background" Value="{DynamicResource MaterialDesign.Brush.ValidationError}" /> <Setter TargetName="Hint" Property="Foreground" Value="{DynamicResource MaterialDesign.Brush.ValidationError}" /> </Trigger> <MultiTrigger> <MultiTrigger.Conditions> <Condition Property="Validation.HasError" Value="True" /> <Condition Property="wpf:TextFieldAssist.HasOutlinedTextField" Value="True" /> </MultiTrigger.Conditions> <Setter TargetName="FooterGrid" Property="Margin" Value="0,0,1,0" /> <Setter TargetName="OuterBorder" Property="BorderThickness" Value="{Binding Path=(wpf:TextFieldAssist.OutlinedBorderActiveThickness), RelativeSource={RelativeSource TemplatedParent}}" /> <Setter TargetName="ContentGrid" Property="Margin"> <Setter.Value> <MultiBinding Converter="{x:Static converters:OutlinedStyleActiveBorderMarginCompensationConverter.Instance}"> <Binding Path="BorderThickness" RelativeSource="{RelativeSource TemplatedParent}" /> <Binding Path="(wpf:TextFieldAssist.OutlinedBorderActiveThickness)" RelativeSource="{RelativeSource TemplatedParent}" /> </MultiBinding> </Setter.Value> </Setter> </MultiTrigger> </ControlTemplate.Triggers> </ControlTemplate> </Setter.Value> </Setter> <Setter Property="Validation.ErrorTemplate" Value="{StaticResource MaterialDesignValidationErrorTemplate}" /> <Setter Property="internal:ClearText.HandlesClearCommand" Value="True" /> <Setter Property="wpf:BehaviorsAssist.Behaviors"> <Setter.Value> <wpf:BehaviorCollection> <internalbehaviors:PasswordBoxBehavior /> </wpf:BehaviorCollection> </Setter.Value> </Setter> <Setter Property="wpf:HintAssist.Foreground" Value="{DynamicResource MaterialDesign.Brush.Primary}" /> <Setter Property="wpf:HintAssist.HelperTextStyle" Value="{StaticResource MaterialDesignPasswordHelperTextBlock}" /> <Setter Property="wpf:TextFieldAssist.CharacterCounterStyle" Value="{StaticResource MaterialDesignPasswordCharacterCounterTextBlock}" /> <Setter Property="wpf:TextFieldAssist.CharacterCounterVisibility" Value="Visible" /> <Setter Property="wpf:TextFieldAssist.TextBoxViewMargin" Value="{x:Static wpf:Constants.DefaultTextBoxViewMargin}" /> <Setter Property="wpf:TextFieldAssist.TextBoxViewVerticalAlignment" Value="Stretch" /> <Setter Property="wpf:TextFieldAssist.UnderlineBrush" Value="{DynamicResource MaterialDesign.Brush.Primary}" /> </Style> <Style x:Key="MaterialDesignFloatingHintPasswordBox" TargetType="{x:Type PasswordBox}" BasedOn="{StaticResource MaterialDesignPasswordBox}"> <Setter Property="wpf:HintAssist.IsFloating" Value="True" /> <Setter Property="Padding" Value="{x:Static wpf:Constants.FloatingTextBoxDefaultPadding}" /> </Style> <Style x:Key="MaterialDesignFilledPasswordBox" TargetType="{x:Type PasswordBox}" BasedOn="{StaticResource MaterialDesignFloatingHintPasswordBox}"> <Setter Property="Background" Value="{DynamicResource MaterialDesign.Brush.PasswordBox.FilledBackground}" /> <Setter Property="Padding" Value="{x:Static wpf:Constants.FilledTextBoxDefaultPadding}" /> <Setter Property="wpf:TextFieldAssist.HasFilledTextField" Value="True" /> <Setter Property="wpf:TextFieldAssist.TextFieldCornerRadius" Value="4,4,0,0" /> <Setter Property="wpf:TextFieldAssist.UnderlineCornerRadius" Value="0" /> </Style> <Style x:Key="MaterialDesignOutlinedPasswordBox" TargetType="{x:Type PasswordBox}" BasedOn="{StaticResource MaterialDesignFloatingHintPasswordBox}"> <Setter Property="BorderBrush" Value="{DynamicResource MaterialDesign.Brush.PasswordBox.OutlineBorder}" /> <Setter Property="BorderThickness" Value="{x:Static wpf:Constants.DefaultOutlinedBorderInactiveThickness}" /> <Setter Property="Padding" Value="{x:Static wpf:Constants.OutlinedTextBoxDefaultPadding}" /> <Setter Property="wpf:TextFieldAssist.HasOutlinedTextField" Value="True" /> <Setter Property="wpf:TextFieldAssist.TextFieldCornerRadius" Value="4" /> </Style> <!-- ******************** "Reveal" PasswordBox styles below ***************************** --> <Style x:Key="MaterialDesignRevealPasswordBox" TargetType="{x:Type PasswordBox}"> <Style.Resources> <system:Boolean x:Key="TrueValue">True</system:Boolean> <system:Int32 x:Key="One">1</system:Int32> <convertersInternal:TextFieldClearButtonVisibilityConverter x:Key="ClearButtonVisibilityConverter" ContentEmptyVisibility="Collapsed" /> <converters:TextFieldPrefixTextVisibilityConverter x:Key="PrefixSuffixTextVisibilityConverter" HiddenState="Collapsed" /> <converters:BooleanToDashStyleConverter x:Key="BooleanToDashStyleConverter" TrueValue="{x:Static DashStyles.Solid}" /> <converters:ThicknessCloneConverter x:Key="HelperTextMarginConverter" CloneEdges="Left,Right" /> <converters:MathConverter x:Key="DivisionConverter" Operation="Divide" Offset="1.5" /> <converters:ThicknessCloneConverter x:Key="ThicknessCloneConverter" CloneEdges="All" AdditionalOffsetBottom="-1" /> <Style x:Key="MaterialDesignPasswordCharacterCounterTextBlock" TargetType="TextBlock" BasedOn="{StaticResource {x:Type TextBlock}}"> <Setter Property="FontSize" Value="10" /> <Setter Property="Margin" Value="0,0,16,0" /> <Setter Property="Opacity" Value="0.56" /> <Setter Property="Text"> <Setter.Value> <MultiBinding StringFormat="{}{0} / {1}"> <Binding Path="(wpf:TextFieldAssist.PasswordBoxCharacterCount)" RelativeSource="{RelativeSource FindAncestor, AncestorType=PasswordBox}" /> <Binding Path="MaxLength" RelativeSource="{RelativeSource FindAncestor, AncestorType=PasswordBox}" /> </MultiBinding> </Setter.Value> </Setter> <Setter Property="VerticalAlignment" Value="Center" /> <Setter Property="Visibility" Value="{Binding Path=(wpf:TextFieldAssist.CharacterCounterVisibility), RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type PasswordBox}}}" /> </Style> <Style x:Key="MaterialDesignPasswordHelperTextBlock" TargetType="TextBlock" BasedOn="{StaticResource {x:Type TextBlock}}"> <Setter Property="FontSize" Value="{Binding Path=(wpf:HintAssist.HelperTextFontSize), RelativeSource={RelativeSource Mode=TemplatedParent}}" /> <Setter Property="Opacity" Value="{Binding Path=(wpf:HintAssist.HintOpacity), RelativeSource={RelativeSource Mode=TemplatedParent}}" /> <Setter Property="Text" Value="{Binding Path=(wpf:HintAssist.HelperText), RelativeSource={RelativeSource Mode=TemplatedParent}}" /> </Style> </Style.Resources> <Setter Property="AllowDrop" Value="true" /> <Setter Property="Background" Value="Transparent" /> <Setter Property="BorderBrush" Value="{DynamicResource MaterialDesign.Brush.ForegroundLight}" /> <Setter Property="BorderThickness" Value="0,0,0,1" /> <Setter Property="CaretBrush" Value="{DynamicResource MaterialDesign.Brush.Primary}" /> <Setter Property="ContextMenu" Value="{StaticResource MaterialDesignDefaultContextMenu}" /> <Setter Property="FocusVisualStyle" Value="{x:Null}" /> <Setter Property="FontFamily" Value="{Binding RelativeSource={RelativeSource AncestorType={x:Type FrameworkElement}}, Path=(TextElement.FontFamily)}" /> <Setter Property="Foreground" Value="{Binding RelativeSource={RelativeSource AncestorType={x:Type FrameworkElement}}, Path=(TextElement.Foreground)}" /> <Setter Property="HorizontalContentAlignment" Value="Stretch" /> <Setter Property="VerticalContentAlignment" Value="Stretch" /> <Setter Property="KeyboardNavigation.TabNavigation" Value="Local" /> <Setter Property="Padding" Value="{x:Static wpf:Constants.TextBoxDefaultPadding}" /> <Setter Property="PasswordChar" Value="●" /> <Setter Property="ScrollViewer.PanningMode" Value="VerticalFirst" /> <Setter Property="SelectionBrush" Value="{DynamicResource MaterialDesign.Brush.Primary.Light}" /> <Setter Property="Stylus.IsFlicksEnabled" Value="False" /> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type PasswordBox}"> <ControlTemplate.Resources> <Style x:Key="MaterialDesignRawTextBox" TargetType="TextBox"> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="TextBox"> <Grid> <ScrollViewer x:Name="PART_ContentHost" Margin="-2,0" wpf:ScrollViewerAssist.IgnorePadding="True" HorizontalScrollBarVisibility="Hidden" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" UseLayoutRounding="{TemplateBinding UseLayoutRounding}" VerticalScrollBarVisibility="Hidden" /> </Grid> </ControlTemplate> </Setter.Value> </Setter> </Style> <Style x:Key="MaterialDesignRawToggleButton" TargetType="ToggleButton"> <Setter Property="Cursor" Value="Hand" /> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="ToggleButton"> <Grid Background="Transparent"> <ContentPresenter Margin="{TemplateBinding Padding}" Content="{TemplateBinding Content}" RecognizesAccessKey="True" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" /> </Grid> </ControlTemplate> </Setter.Value> </Setter> </Style> </ControlTemplate.Resources> <Grid Cursor="{TemplateBinding Cursor, Converter={x:Static converters:CursorConverter.ArrowInstance}}"> <VisualStateManager.VisualStateGroups> <VisualStateGroup x:Name="FocusStates"> <VisualState x:Name="Focused"> <Storyboard TargetName="RippleOnFocusScaleTransform"> <DoubleAnimation Storyboard.TargetProperty="ScaleX" From="0" To="1" Duration="0:0:0.3"> <DoubleAnimation.EasingFunction> <SineEase EasingMode="EaseOut" /> </DoubleAnimation.EasingFunction> </DoubleAnimation> <DoubleAnimation Storyboard.TargetProperty="ScaleY" From="0" To="1" Duration="0:0:0.3"> <DoubleAnimation.EasingFunction> <SineEase EasingMode="EaseOut" /> </DoubleAnimation.EasingFunction> </DoubleAnimation> <DoubleAnimation BeginTime="0:0:0.45" Storyboard.TargetProperty="ScaleX" To="0" Duration="0" /> <DoubleAnimation BeginTime="0:0:0.45" Storyboard.TargetProperty="ScaleY" To="0" Duration="0" /> </Storyboard> </VisualState> <VisualState x:Name="Unfocused"> <Storyboard TargetName="RippleOnFocusScaleTransform"> <DoubleAnimation Storyboard.TargetProperty="ScaleX" To="0" Duration="0" /> <DoubleAnimation Storyboard.TargetProperty="ScaleY" To="0" Duration="0" /> </Storyboard> </VisualState> </VisualStateGroup> </VisualStateManager.VisualStateGroups> <Border HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Background="{DynamicResource MaterialDesign.Brush.PasswordBox.HoverBackground}" CornerRadius="{TemplateBinding wpf:TextFieldAssist.TextFieldCornerRadius}" RenderTransformOrigin="0.5,0.5" Visibility="{TemplateBinding wpf:TextFieldAssist.RippleOnFocusEnabled, Converter={x:Static converters:BooleanToVisibilityConverter.CollapsedInstance}}"> <Border.RenderTransform> <ScaleTransform x:Name="RippleOnFocusScaleTransform" ScaleX="0" ScaleY="0" /> </Border.RenderTransform> </Border> <AdornerDecorator> <Border x:Name="OuterBorder" Padding="{TemplateBinding Padding}" wpf:BottomDashedLineAdorner.Brush="{TemplateBinding BorderBrush}" wpf:BottomDashedLineAdorner.Thickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" CornerRadius="{TemplateBinding wpf:TextFieldAssist.TextFieldCornerRadius}" SnapsToDevicePixels="True"> <Grid x:Name="ContentGrid" MinHeight="16" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"> <Grid.ColumnDefinitions> <ColumnDefinition Width="Auto" /> <ColumnDefinition Width="Auto" /> <ColumnDefinition Width="*" /> <ColumnDefinition Width="Auto" /> <ColumnDefinition Width="Auto" /> <ColumnDefinition Width="Auto" /> <ColumnDefinition Width="Auto" /> </Grid.ColumnDefinitions> <wpf:PackIcon x:Name="LeadingPackIcon" Grid.Column="0" Width="{TemplateBinding wpf:TextFieldAssist.LeadingIconSize}" Height="{TemplateBinding wpf:TextFieldAssist.LeadingIconSize}" Margin="0,0,6,0" VerticalAlignment="{TemplateBinding wpf:TextFieldAssist.IconVerticalAlignment}" Kind="{TemplateBinding wpf:TextFieldAssist.LeadingIcon}" Opacity="{TemplateBinding wpf:HintAssist.HintOpacity}" Visibility="{TemplateBinding wpf:TextFieldAssist.HasLeadingIcon, Converter={x:Static converters:BooleanToVisibilityConverter.CollapsedInstance}}" /> <TextBlock x:Name="PrefixTextBlock" Grid.Column="1" Margin="0,0,2,0" VerticalAlignment="Center" FontSize="{TemplateBinding FontSize}" Opacity="{TemplateBinding wpf:HintAssist.HintOpacity}" Text="{TemplateBinding wpf:TextFieldAssist.PrefixText}"> <TextBlock.Visibility> <MultiBinding Converter="{StaticResource PrefixSuffixTextVisibilityConverter}"> <Binding ElementName="Hint" Path="IsHintInFloatingPosition" /> <Binding Path="(wpf:TextFieldAssist.PrefixText)" RelativeSource="{RelativeSource TemplatedParent}" /> <Binding Path="(wpf:TextFieldAssist.PrefixTextVisibility)" RelativeSource="{RelativeSource TemplatedParent}" /> <Binding Path="IsKeyboardFocusWithin" RelativeSource="{RelativeSource TemplatedParent}" /> <Binding Source="{StaticResource TrueValue}" /> </MultiBinding> </TextBlock.Visibility> </TextBlock> <Grid x:Name="PasswordContentGrid" Grid.Column="2" HorizontalAlignment="Stretch" Panel.ZIndex="1" wpf:PasswordBoxAssist.IsPasswordRevealed="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=(wpf:PasswordBoxAssist.IsPasswordRevealed)}"> <ScrollViewer x:Name="PART_ContentHost" HorizontalAlignment="Stretch" VerticalAlignment="Center" HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}" VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}" Panel.ZIndex="1" wpf:ScrollViewerAssist.IgnorePadding="True" Cursor="{TemplateBinding Cursor, Converter={x:Static converters:CursorConverter.IBeamInstance}}" Focusable="False" HorizontalScrollBarVisibility="Hidden" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" UseLayoutRounding="{TemplateBinding UseLayoutRounding}" VerticalScrollBarVisibility="Hidden" Visibility="{Binding ElementName=PasswordContentGrid, Path=(wpf:PasswordBoxAssist.IsPasswordRevealed), Converter={x:Static converters:BooleanToVisibilityConverter.NotCollapsedInstance}}" wpf:ScrollViewerAssist.BubbleVerticalScroll="True"/> <TextBox x:Name="RevealPasswordTextBox" Padding="{Binding ElementName=PART_ContentHost, Path=Padding}" HorizontalAlignment="Stretch" VerticalAlignment="Center" HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}" VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}" CaretBrush="{TemplateBinding CaretBrush}" Cursor="{TemplateBinding Cursor, Converter={x:Static converters:CursorConverter.IBeamInstance}}" Foreground="{TemplateBinding Foreground}" MaxLength="{TemplateBinding MaxLength}" SelectionBrush="{TemplateBinding SelectionBrush}" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" Style="{StaticResource MaterialDesignRawTextBox}" Text="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=(wpf:PasswordBoxAssist.Password), UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}" UseLayoutRounding="{TemplateBinding UseLayoutRounding}" Visibility="{Binding ElementName=PasswordContentGrid, Path=(wpf:PasswordBoxAssist.IsPasswordRevealed), Converter={x:Static converters:BooleanToVisibilityConverter.CollapsedInstance}}"> <behaviors:Interaction.Behaviors> <internalbehaviors:PasswordBoxRevealTextBoxBehavior PasswordBox="{Binding RelativeSource={RelativeSource TemplatedParent}}" /> </behaviors:Interaction.Behaviors> </TextBox> </Grid> <wpf:SmartHint x:Name="Hint" Grid.Column="1" Grid.ColumnSpan="3" VerticalAlignment="Center" HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}" VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}" FloatingOffset="{TemplateBinding wpf:HintAssist.FloatingOffset}" FloatingScale="{TemplateBinding wpf:HintAssist.FloatingScale}" FontFamily="{TemplateBinding wpf:HintAssist.FontFamily}" FontSize="{TemplateBinding FontSize}" HintOpacity="{TemplateBinding wpf:HintAssist.HintOpacity}" HintProxy="{Binding RelativeSource={RelativeSource TemplatedParent}, Converter={x:Static converters:HintProxyFabricConverter.Instance}}" UseFloating="{TemplateBinding wpf:HintAssist.IsFloating}" FloatingTarget="{Binding ElementName=PART_ContentHost}" wpf:HintAssist.Background="{TemplateBinding wpf:HintAssist.Background}" wpf:HintAssist.HintPaddingBrush="{TemplateBinding wpf:HintAssist.HintPaddingBrush}"> <wpf:SmartHint.InitialHorizontalOffset> <MultiBinding Converter="{x:Static converters:FloatingHintInitialHorizontalOffsetConverter.Instance}"> <Binding ElementName="PrefixTextBlock" Path="ActualWidth" /> <Binding ElementName="PrefixTextBlock" Path="Margin" /> <Binding ElementName="SuffixTextBlock" Path="ActualWidth" /> <Binding ElementName="SuffixTextBlock" Path="Margin" /> <Binding RelativeSource="{RelativeSource TemplatedParent}" Path="(wpf:TextFieldAssist.PrefixTextVisibility)" /> <Binding RelativeSource="{RelativeSource TemplatedParent}" Path="(wpf:TextFieldAssist.SuffixTextVisibility)" /> <Binding RelativeSource="{RelativeSource TemplatedParent}" Path="(wpf:TextFieldAssist.PrefixTextHintBehavior)" /> <Binding RelativeSource="{RelativeSource TemplatedParent}" Path="(wpf:TextFieldAssist.SuffixTextHintBehavior)" /> <Binding RelativeSource="{RelativeSource TemplatedParent}" Path="HorizontalContentAlignment" /> <Binding Source="{StaticResource TrueValue}" /> </MultiBinding> </wpf:SmartHint.InitialHorizontalOffset> <wpf:SmartHint.Margin> <MultiBinding Converter="{x:Static converters:FloatingHintMarginConverter.Instance}"> <Binding RelativeSource="{RelativeSource TemplatedParent}" Path="(wpf:HintAssist.IsFloating)" /> <Binding RelativeSource="{RelativeSource TemplatedParent}" Path="IsKeyboardFocusWithin" /> <Binding Source="{StaticResource TrueValue}" /> <Binding ElementName="PrefixTextBlock" Path="ActualWidth" /> <Binding ElementName="PrefixTextBlock" Path="Margin" /> <Binding ElementName="SuffixTextBlock" Path="ActualWidth" /> <Binding ElementName="SuffixTextBlock" Path="Margin" /> <Binding RelativeSource="{RelativeSource TemplatedParent}" Path="(wpf:TextFieldAssist.PrefixTextVisibility)" /> <Binding RelativeSource="{RelativeSource TemplatedParent}" Path="(wpf:TextFieldAssist.SuffixTextVisibility)" /> </MultiBinding> </wpf:SmartHint.Margin> <wpf:SmartHint.Hint> <Border x:Name="HintBackgroundBorder" Background="{TemplateBinding wpf:HintAssist.Background}" CornerRadius="2"> <ContentPresenter x:Name="HintWrapper" Content="{TemplateBinding wpf:HintAssist.Hint}" /> </Border> </wpf:SmartHint.Hint> </wpf:SmartHint> <TextBlock x:Name="SuffixTextBlock" Grid.Column="3" Margin="2,0,0,0" VerticalAlignment="Center" FontSize="{TemplateBinding FontSize}" Opacity="{TemplateBinding wpf:HintAssist.HintOpacity}" Text="{TemplateBinding wpf:TextFieldAssist.SuffixText}"> <TextBlock.Visibility> <MultiBinding Converter="{StaticResource PrefixSuffixTextVisibilityConverter}"> <Binding ElementName="Hint" Path="IsHintInFloatingPosition" /> <Binding Path="(wpf:TextFieldAssist.SuffixText)" RelativeSource="{RelativeSource TemplatedParent}" /> <Binding Path="(wpf:TextFieldAssist.SuffixTextVisibility)" RelativeSource="{RelativeSource TemplatedParent}" /> <Binding Path="IsKeyboardFocusWithin" RelativeSource="{RelativeSource TemplatedParent}" /> <Binding Source="{StaticResource TrueValue}" /> </MultiBinding> </TextBlock.Visibility> </TextBlock> <ToggleButton x:Name="RevealPasswordButton" Grid.Column="4" Height="Auto" IsTabStop="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=(wpf:PasswordBoxAssist.IsRevealButtonTabStop)}" Opacity="{TemplateBinding wpf:HintAssist.HintOpacity}" Padding="2,0,0,0" VerticalAlignment="Center" IsChecked="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=(wpf:PasswordBoxAssist.IsPasswordRevealed), Mode=TwoWay}" Style="{StaticResource MaterialDesignRawToggleButton}"> <wpf:PackIcon x:Name="RevealPasswordIcon" VerticalAlignment="Center" Foreground="{Binding ElementName=PART_ClearButton, Path=Foreground}" /> </ToggleButton> <wpf:PackIcon x:Name="TrailingPackIcon" Grid.Column="5" Width="{TemplateBinding wpf:TextFieldAssist.TrailingIconSize}" Height="{TemplateBinding wpf:TextFieldAssist.TrailingIconSize}" Margin="4,0,0,0" VerticalAlignment="{TemplateBinding wpf:TextFieldAssist.IconVerticalAlignment}" Kind="{TemplateBinding wpf:TextFieldAssist.TrailingIcon}" Opacity="{TemplateBinding wpf:HintAssist.HintOpacity}" Visibility="{TemplateBinding wpf:TextFieldAssist.HasTrailingIcon, Converter={x:Static converters:BooleanToVisibilityConverter.CollapsedInstance}}" /> <Button x:Name="PART_ClearButton" Grid.Column="6" Height="{TemplateBinding wpf:TextFieldAssist.ClearButtonSize}" Width="{TemplateBinding wpf:TextFieldAssist.ClearButtonSize}" Opacity="{TemplateBinding wpf:HintAssist.HintOpacity}" Padding="2,0,0,0" Command="{x:Static internal:ClearText.ClearCommand}" Focusable="False" Foreground="{TemplateBinding Foreground}" VerticalAlignment="{TemplateBinding wpf:TextFieldAssist.IconVerticalAlignment}" Style="{StaticResource MaterialDesignToolButton}"> <Button.Visibility> <MultiBinding Converter="{StaticResource ClearButtonVisibilityConverter}"> <Binding Path="(wpf:TextFieldAssist.HasClearButton)" RelativeSource="{RelativeSource TemplatedParent}" /> <Binding ElementName="Hint" Path="IsContentNullOrEmpty" /> </MultiBinding> </Button.Visibility> <wpf:PackIcon x:Name="ClearButtonIcon" Margin="0" Kind="CloseCircle" Height="auto" Width="auto" /> </Button> </Grid> </Border> </AdornerDecorator> <wpf:Underline x:Name="Underline" VerticalAlignment="Bottom" Background="{TemplateBinding wpf:TextFieldAssist.UnderlineBrush}" CornerRadius="{TemplateBinding wpf:TextFieldAssist.UnderlineCornerRadius}" Visibility="{TemplateBinding wpf:TextFieldAssist.DecorationVisibility}" /> <Canvas VerticalAlignment="Bottom" IsHitTestVisible="False"> <Border Canvas.Top="2" Padding="{TemplateBinding Padding, Converter={StaticResource HelperTextMarginConverter}}" Width="{Binding ActualWidth, ElementName=OuterBorder}"> <Grid x:Name="FooterGrid"> <Grid.ColumnDefinitions> <ColumnDefinition /> <ColumnDefinition Width="Auto" /> </Grid.ColumnDefinitions> <TextBlock x:Name="HelperTextTextBlock" Style="{Binding Path=(wpf:HintAssist.HelperTextStyle), RelativeSource={RelativeSource TemplatedParent}}" /> <Border x:Name="CharacterCounterContainer" Grid.Column="1"> <TextBlock x:Name="CharacterCounterTextBlock" Style="{Binding Path=(wpf:TextFieldAssist.CharacterCounterStyle), RelativeSource={RelativeSource TemplatedParent}}" /> </Border> </Grid> </Border> </Canvas> </Grid> <ControlTemplate.Triggers> <!-- Floating hint --> <MultiTrigger> <MultiTrigger.Conditions> <Condition Property="wpf:HintAssist.IsFloating" Value="True" /> <Condition SourceName="Hint" Property="IsHintInFloatingPosition" Value="True" /> </MultiTrigger.Conditions> <Setter TargetName="Hint" Property="HintOpacity" Value="1" /> </MultiTrigger> <MultiTrigger> <MultiTrigger.Conditions> <Condition Property="wpf:HintAssist.IsFloating" Value="True" /> <Condition Property="IsKeyboardFocusWithin" Value="True" /> </MultiTrigger.Conditions> <Setter TargetName="Hint" Property="HintOpacity" Value="1" /> <Setter TargetName="Hint" Property="Foreground" Value="{Binding Path=(wpf:HintAssist.Foreground), RelativeSource={RelativeSource TemplatedParent}}" /> </MultiTrigger> <!-- Character counter --> <DataTrigger Value="0"> <DataTrigger.Binding> <PriorityBinding> <Binding FallbackValue="0" Path="MaxLength" RelativeSource="{RelativeSource Self}" /> <Binding Source="0" /> </PriorityBinding> </DataTrigger.Binding> <Setter TargetName="CharacterCounterContainer" Property="Visibility" Value="Collapsed" /> </DataTrigger> <!-- Outlined text field --> <Trigger Property="wpf:TextFieldAssist.HasOutlinedTextField" Value="True"> <Setter TargetName="Underline" Property="Visibility" Value="Collapsed" /> <Setter TargetName="Hint" Property="FloatingTarget" Value="{Binding ElementName=OuterBorder}" /> <Setter TargetName="Hint" Property="FloatingAlignment" Value="Center" /> <Setter TargetName="Hint" Property="FloatingMargin" Value="4,0" /> <Setter TargetName="Hint" Property="InitialVerticalOffset" Value="{Binding ElementName=Hint, Path=ActualHeight, Converter={StaticResource DivisionConverter}, ConverterParameter=2}" /> </Trigger> <MultiTrigger> <MultiTrigger.Conditions> <Condition Property="wpf:TextFieldAssist.HasOutlinedTextField" Value="True" /> <Condition Property="wpf:HintAssist.IsFloating" Value="True" /> <Condition SourceName="Hint" Property="IsHintInFloatingPosition" Value="True" /> </MultiTrigger.Conditions> <Setter TargetName="Hint" Property="wpf:HintAssist.ApplyHintPaddingBrush" Value="True" /> </MultiTrigger> <!-- IsEnabled --> <MultiTrigger> <MultiTrigger.Conditions> <Condition Property="IsEnabled" Value="False" /> <Condition Property="wpf:TextFieldAssist.HasOutlinedTextField" Value="False" /> </MultiTrigger.Conditions> <Setter TargetName="OuterBorder" Property="BorderBrush" Value="Transparent" /> <Setter TargetName="OuterBorder" Property="wpf:BottomDashedLineAdorner.IsAttached" Value="True" /> <Setter TargetName="OuterBorder" Property="wpf:BottomDashedLineAdorner.DashStyle" Value="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=(wpf:TextFieldAssist.HasFilledTextField), Converter={StaticResource BooleanToDashStyleConverter}}" /> <Setter TargetName="ContentGrid" Property="Opacity" Value="{x:Static wpf:Constants.TextBoxNotEnabledOpacity}" /> </MultiTrigger> <MultiTrigger> <MultiTrigger.Conditions> <Condition Property="IsEnabled" Value="False" /> <Condition Property="wpf:TextFieldAssist.HasOutlinedTextField" Value="True" /> </MultiTrigger.Conditions> <Setter Property="BorderBrush" Value="{DynamicResource MaterialDesign.Brush.PasswordBox.OutlineInactiveBorder}" /> <Setter TargetName="PART_ContentHost" Property="Opacity" Value="{x:Static wpf:Constants.TextBoxNotEnabledOpacity}" /> <Setter TargetName="HintWrapper" Property="Opacity" Value="{x:Static wpf:Constants.TextBoxNotEnabledOpacity}" /> <Setter TargetName="PART_ClearButton" Property="Opacity" Value="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=(wpf:HintAssist.HintOpacity), Converter={x:Static converters:MathConverter.MultiplyInstance}, ConverterParameter={x:Static wpf:Constants.TextBoxNotEnabledOpacity}}" /> <Setter TargetName="LeadingPackIcon" Property="Opacity" Value="{Binding ElementName=PART_ClearButton, Path=Opacity}" /> <Setter TargetName="PrefixTextBlock" Property="Opacity" Value="{Binding ElementName=PART_ClearButton, Path=Opacity}" /> <Setter TargetName="SuffixTextBlock" Property="Opacity" Value="{Binding ElementName=PART_ClearButton, Path=Opacity}" /> <Setter TargetName="TrailingPackIcon" Property="Opacity" Value="{Binding ElementName=PART_ClearButton, Path=Opacity}" /> <Setter TargetName="RevealPasswordButton" Property="Opacity" Value="{Binding ElementName=PART_ClearButton, Path=Opacity}" /> <Setter TargetName="RevealPasswordTextBox" Property="Opacity" Value="{x:Static wpf:Constants.TextBoxNotEnabledOpacity}" /> </MultiTrigger> <!-- IsKeyboardFocused --> <Trigger Property="IsKeyboardFocusWithin" Value="True"> <Setter TargetName="HintWrapper" Property="Opacity" Value="1" /> <Setter Property="BorderBrush" Value="{Binding Path=(wpf:TextFieldAssist.UnderlineBrush), RelativeSource={RelativeSource Self}}" /> <Setter TargetName="Underline" Property="IsActive" Value="True" /> </Trigger> <MultiTrigger> <MultiTrigger.Conditions> <Condition Property="IsKeyboardFocusWithin" Value="True" /> <Condition Property="Validation.HasError" Value="False" /> <Condition Property="wpf:TextFieldAssist.HasOutlinedTextField" Value="True" /> </MultiTrigger.Conditions> <Setter Property="BorderBrush" Value="{Binding Path=(wpf:TextFieldAssist.UnderlineBrush), RelativeSource={RelativeSource Self}}" /> <Setter TargetName="OuterBorder" Property="BorderThickness" Value="{Binding Path=(wpf:TextFieldAssist.OutlinedBorderActiveThickness), RelativeSource={RelativeSource TemplatedParent}}" /> <Setter TargetName="ContentGrid" Property="Margin"> <Setter.Value> <MultiBinding Converter="{x:Static converters:OutlinedStyleActiveBorderMarginCompensationConverter.Instance}"> <Binding Path="BorderThickness" RelativeSource="{RelativeSource TemplatedParent}" /> <Binding Path="(wpf:TextFieldAssist.OutlinedBorderActiveThickness)" RelativeSource="{RelativeSource TemplatedParent}" /> </MultiBinding> </Setter.Value> </Setter> </MultiTrigger> <!-- IsMouseOver --> <MultiTrigger> <MultiTrigger.Conditions> <Condition Property="IsMouseOver" Value="True" /> <Condition Property="wpf:TextFieldAssist.HasFilledTextField" Value="False" /> <Condition Property="wpf:TextFieldAssist.HasOutlinedTextField" Value="False" /> <Condition Property="wpf:TextFieldAssist.NewSpecHighlightingEnabled" Value="False" /> </MultiTrigger.Conditions> <Setter Property="BorderBrush" Value="{Binding Path=(wpf:TextFieldAssist.UnderlineBrush), RelativeSource={RelativeSource Self}}" /> </MultiTrigger> <MultiTrigger> <MultiTrigger.Conditions> <Condition Property="IsMouseOver" Value="True" /> <Condition Property="wpf:TextFieldAssist.HasFilledTextField" Value="False" /> <Condition Property="wpf:TextFieldAssist.HasOutlinedTextField" Value="False" /> <Condition Property="wpf:TextFieldAssist.NewSpecHighlightingEnabled" Value="True" /> </MultiTrigger.Conditions> <Setter TargetName="OuterBorder" Property="BorderThickness" Value="0,0,0,2" /> <Setter TargetName="OuterBorder" Property="Padding" Value="{Binding Path=Padding, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource ThicknessCloneConverter}}" /> </MultiTrigger> <MultiTrigger> <MultiTrigger.Conditions> <Condition Property="IsMouseOver" Value="True" /> <Condition Property="wpf:TextFieldAssist.HasFilledTextField" Value="True" /> </MultiTrigger.Conditions> <Setter Property="Background" Value="{DynamicResource MaterialDesign.Brush.PasswordBox.HoverBackground}" /> <Setter Property="BorderBrush" Value="{DynamicResource MaterialDesign.Brush.PasswordBox.HoverBorder}" /> </MultiTrigger> <MultiTrigger> <MultiTrigger.Conditions> <Condition Property="IsMouseOver" Value="True" /> <Condition Property="Validation.HasError" Value="False" /> <Condition Property="wpf:TextFieldAssist.HasOutlinedTextField" Value="True" /> </MultiTrigger.Conditions> <Setter TargetName="OuterBorder" Property="BorderThickness" Value="{Binding Path=(wpf:TextFieldAssist.OutlinedBorderActiveThickness), RelativeSource={RelativeSource TemplatedParent}}" /> <Setter TargetName="ContentGrid" Property="Margin"> <Setter.Value> <MultiBinding Converter="{x:Static converters:OutlinedStyleActiveBorderMarginCompensationConverter.Instance}"> <Binding Path="BorderThickness" RelativeSource="{RelativeSource TemplatedParent}" /> <Binding Path="(wpf:TextFieldAssist.OutlinedBorderActiveThickness)" RelativeSource="{RelativeSource TemplatedParent}" /> </MultiBinding> </Setter.Value> </Setter> </MultiTrigger> <MultiTrigger> <MultiTrigger.Conditions> <Condition Property="IsMouseOver" Value="True" /> <Condition Property="wpf:TextFieldAssist.HasOutlinedTextField" Value="True" /> <Condition Property="wpf:HintAssist.IsFloating" Value="True" /> <Condition SourceName="Hint" Property="IsHintInFloatingPosition" Value="True" /> </MultiTrigger.Conditions> <Setter TargetName="HintWrapper" Property="Opacity" Value="1" /> </MultiTrigger> <!-- VerticalContentAlignment.Stretch --> <MultiTrigger> <MultiTrigger.Conditions> <Condition Property="VerticalContentAlignment" Value="Stretch" /> <Condition Property="wpf:TextFieldAssist.HasOutlinedTextField" Value="False" /> </MultiTrigger.Conditions> <Setter TargetName="Hint" Property="InitialVerticalOffset"> <Setter.Value> <MultiBinding Converter="{x:Static converters:FloatingHintInitialVerticalOffsetConverter.Instance}"> <Binding ElementName="PART_ContentHost" Path="ActualHeight" /> <Binding ElementName="Hint" Path="ActualHeight" /> <Binding Source="{StaticResource One}" /> </MultiBinding> </Setter.Value> </Setter> </MultiTrigger> <MultiTrigger> <MultiTrigger.Conditions> <Condition Property="VerticalContentAlignment" Value="Stretch" /> <Condition SourceName="PART_ContentHost" Property="ScrollViewer.ComputedHorizontalScrollBarVisibility" Value="Visible"/> </MultiTrigger.Conditions> <Setter Property="wpf:TextFieldAssist.TextBoxViewMargin" Value="{x:Static wpf:Constants.DefaultTextBoxViewMarginStretch}" /> </MultiTrigger> <!-- Validation.HasError --> <Trigger Property="Validation.HasError" Value="true"> <Setter Property="BorderBrush" Value="{DynamicResource MaterialDesign.Brush.ValidationError}" /> <Setter TargetName="Underline" Property="Background" Value="{DynamicResource MaterialDesign.Brush.ValidationError}" /> <Setter TargetName="Hint" Property="Foreground" Value="{DynamicResource MaterialDesign.Brush.ValidationError}" /> </Trigger> <MultiTrigger> <MultiTrigger.Conditions> <Condition Property="Validation.HasError" Value="True" /> <Condition Property="wpf:TextFieldAssist.HasOutlinedTextField" Value="True" /> </MultiTrigger.Conditions> <Setter TargetName="FooterGrid" Property="Margin" Value="0,0,1,0" /> <Setter TargetName="OuterBorder" Property="BorderThickness" Value="{Binding Path=(wpf:TextFieldAssist.OutlinedBorderActiveThickness), RelativeSource={RelativeSource TemplatedParent}}" /> <Setter TargetName="ContentGrid" Property="Margin"> <Setter.Value> <MultiBinding Converter="{x:Static converters:OutlinedStyleActiveBorderMarginCompensationConverter.Instance}"> <Binding Path="BorderThickness" RelativeSource="{RelativeSource TemplatedParent}" /> <Binding Path="(wpf:TextFieldAssist.OutlinedBorderActiveThickness)" RelativeSource="{RelativeSource TemplatedParent}" /> </MultiBinding> </Setter.Value> </Setter> </MultiTrigger> <!-- Reveal icon --> <Trigger SourceName="RevealPasswordButton" Property="IsChecked" Value="False"> <Setter TargetName="ContentGrid" Property="wpf:PasswordBoxAssist.IsPasswordRevealed" Value="False" /> <Setter TargetName="RevealPasswordIcon" Property="Kind" Value="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=(wpf:PasswordBoxAssist.PasswordMaskedIcon)}" /> </Trigger> <Trigger SourceName="RevealPasswordButton" Property="IsChecked" Value="True"> <Setter TargetName="ContentGrid" Property="wpf:PasswordBoxAssist.IsPasswordRevealed" Value="True" /> <Setter TargetName="RevealPasswordIcon" Property="Kind" Value="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=(wpf:PasswordBoxAssist.PasswordRevealedIcon)}" /> </Trigger> </ControlTemplate.Triggers> </ControlTemplate> </Setter.Value> </Setter> <Setter Property="Validation.ErrorTemplate" Value="{StaticResource MaterialDesignValidationErrorTemplate}" /> <Setter Property="internal:ClearText.HandlesClearCommand" Value="True" /> <Setter Property="wpf:BehaviorsAssist.Behaviors"> <Setter.Value> <wpf:BehaviorCollection> <internalbehaviors:PasswordBoxBehavior /> </wpf:BehaviorCollection> </Setter.Value> </Setter> <Setter Property="wpf:HintAssist.Foreground" Value="{DynamicResource MaterialDesign.Brush.Primary}" /> <Setter Property="wpf:HintAssist.HelperTextStyle" Value="{StaticResource MaterialDesignPasswordHelperTextBlock}" /> <Setter Property="wpf:TextFieldAssist.CharacterCounterStyle" Value="{StaticResource MaterialDesignPasswordCharacterCounterTextBlock}" /> <Setter Property="wpf:TextFieldAssist.CharacterCounterVisibility" Value="Visible" /> <Setter Property="wpf:PasswordBoxAssist.IsPasswordRevealed" Value="False" /> <Setter Property="wpf:PasswordBoxAssist.SuppressBindingGuard" Value="True" /> <Setter Property="wpf:TextFieldAssist.TextBoxViewMargin" Value="{x:Static wpf:Constants.DefaultTextBoxViewMargin}" /> <Setter Property="wpf:TextFieldAssist.TextBoxViewVerticalAlignment" Value="Stretch" /> <Setter Property="wpf:TextFieldAssist.UnderlineBrush" Value="{DynamicResource MaterialDesign.Brush.Primary}" /> </Style> <Style x:Key="MaterialDesignFloatingHintRevealPasswordBox" TargetType="{x:Type PasswordBox}" BasedOn="{StaticResource MaterialDesignRevealPasswordBox}"> <Setter Property="wpf:HintAssist.IsFloating" Value="True" /> <Setter Property="Padding" Value="{x:Static wpf:Constants.FloatingTextBoxDefaultPadding}" /> </Style> <Style x:Key="MaterialDesignFilledRevealPasswordBox" TargetType="{x:Type PasswordBox}" BasedOn="{StaticResource MaterialDesignFloatingHintRevealPasswordBox}"> <Setter Property="Background" Value="{DynamicResource MaterialDesign.Brush.PasswordBox.FilledBackground}" /> <Setter Property="Padding" Value="{x:Static wpf:Constants.FilledTextBoxDefaultPadding}" /> <Setter Property="wpf:TextFieldAssist.HasFilledTextField" Value="True" /> <Setter Property="wpf:TextFieldAssist.TextFieldCornerRadius" Value="4,4,0,0" /> <Setter Property="wpf:TextFieldAssist.UnderlineCornerRadius" Value="0" /> </Style> <Style x:Key="MaterialDesignOutlinedRevealPasswordBox" TargetType="{x:Type PasswordBox}" BasedOn="{StaticResource MaterialDesignFloatingHintRevealPasswordBox}"> <Setter Property="BorderBrush" Value="{DynamicResource MaterialDesign.Brush.PasswordBox.OutlineBorder}" /> <Setter Property="BorderThickness" Value="{x:Static wpf:Constants.DefaultOutlinedBorderInactiveThickness}" /> <Setter Property="Padding" Value="{x:Static wpf:Constants.OutlinedTextBoxDefaultPadding}" /> <Setter Property="wpf:TextFieldAssist.HasOutlinedTextField" Value="True" /> <Setter Property="wpf:TextFieldAssist.TextFieldCornerRadius" Value="4" /> </Style> </ResourceDictionary> |