CheckPasswordDialog.xaml 9.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171
  1. <UserControl
  2. x:Class="PDF_Master.Views.Dialog.ToolsDialogs.SaftyDialogs.CheckPasswordDialog"
  3. xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  4. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  5. xmlns:cus="clr-namespace:PDF_Master.CustomControl"
  6. xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
  7. xmlns:help="clr-namespace:PDF_Master.Helper"
  8. xmlns:prism="http://prismlibrary.com/"
  9. xmlns:saftydialogs="clr-namespace:PDF_Master.ViewModels.Dialog.ToolsDialogs.SaftyDialogs"
  10. prism:Dialog.WindowStyle="{StaticResource DialogWindowStyle}"
  11. prism:ViewModelLocator.AutoWireViewModel="True">
  12. <UserControl.Resources>
  13. <Style x:Key="CheckPasswordBoxStyle" TargetType="PasswordBox">
  14. <Setter Property="Height" Value="32" />
  15. <Setter Property="FontSize" Value="14" />
  16. <Setter Property="Template">
  17. <Setter.Value>
  18. <ControlTemplate TargetType="PasswordBox">
  19. <Border
  20. x:Name="border"
  21. Background="{TemplateBinding Background}"
  22. BorderBrush="{TemplateBinding BorderBrush}"
  23. BorderThickness="{TemplateBinding BorderThickness}"
  24. CornerRadius="5"
  25. SnapsToDevicePixels="True">
  26. <Grid>
  27. <Grid.ColumnDefinitions>
  28. <ColumnDefinition />
  29. <ColumnDefinition Width="24" />
  30. </Grid.ColumnDefinitions>
  31. <Grid Grid.Column="0" Margin="8,0,0,0">
  32. <TextBlock
  33. Name="markText"
  34. Grid.Column="1"
  35. VerticalAlignment="Center"
  36. FontSize="12"
  37. Foreground="#BBB"
  38. Text="{TemplateBinding help:PasswordBoxHelper.DisplayText}"
  39. Visibility="Collapsed" />
  40. <ScrollViewer
  41. x:Name="PART_ContentHost"
  42. MinHeight="20"
  43. VerticalAlignment="Center"
  44. Focusable="false"
  45. HorizontalScrollBarVisibility="Hidden"
  46. VerticalScrollBarVisibility="Hidden" />
  47. </Grid>
  48. </Grid>
  49. </Border>
  50. <ControlTemplate.Triggers>
  51. <Trigger Property="IsEnabled" Value="false">
  52. <Setter TargetName="border" Property="Opacity" Value="0.56" />
  53. </Trigger>
  54. <Trigger Property="IsMouseOver" Value="true">
  55. <Setter TargetName="border" Property="BorderBrush" Value="#FF7EB4EA" />
  56. </Trigger>
  57. <Trigger Property="IsKeyboardFocused" Value="true">
  58. <Setter TargetName="border" Property="BorderBrush" Value="#1770F4" />
  59. </Trigger>
  60. <DataTrigger Binding="{Binding Path=Password}" Value="">
  61. <Setter TargetName="markText" Property="Visibility" Value="Visible" />
  62. </DataTrigger>
  63. <DataTrigger Binding="{Binding Path=IsRightValue}" Value="false">
  64. <Setter TargetName="border" Property="BorderBrush" Value="#F3465B" />
  65. </DataTrigger>
  66. </ControlTemplate.Triggers>
  67. </ControlTemplate>
  68. </Setter.Value>
  69. </Setter>
  70. </Style>
  71. <Style x:Key="DeletePasswordButtonStyle" TargetType="Button">
  72. <Setter Property="Height" Value="14" />
  73. <Setter Property="Width" Value="14" />
  74. <Setter Property="HorizontalContentAlignment" Value="Center" />
  75. <Setter Property="VerticalContentAlignment" Value="Center" />
  76. <Setter Property="Template">
  77. <Setter.Value>
  78. <ControlTemplate TargetType="{x:Type ButtonBase}">
  79. <Grid>
  80. <Viewbox Stretch="Uniform">
  81. <Grid>
  82. <Path Data="M7 14C10.866 14 14 10.866 14 7C14 3.13401 10.866 0 7 0C3.13401 0 0 3.13401 0 7C0 10.866 3.13401 14 7 14ZM10.5303 4.53038L8.06069 7L10.5303 9.46962L9.46967 10.5303L7.00002 8.06066L4.53033 10.5303L3.46967 9.46967L5.93936 7L3.46967 4.53033L4.53033 3.46967L7.00002 5.93934L9.46967 3.46971L10.5303 4.53038Z" Fill="#CED0D4" />
  83. </Grid>
  84. </Viewbox>
  85. </Grid>
  86. </ControlTemplate>
  87. </Setter.Value>
  88. </Setter>
  89. </Style>
  90. </UserControl.Resources>
  91. <cus:DialogContent Header="{Binding PasswordDialogTitle}" FontFamily="Segoe UI">
  92. <cus:DialogContent.Content>
  93. <Grid
  94. Width="400"
  95. MinHeight="106"
  96. Margin="16,0,16,0">
  97. <Grid.ColumnDefinitions>
  98. <ColumnDefinition Width="80" />
  99. <ColumnDefinition />
  100. </Grid.ColumnDefinitions>
  101. <Image Margin="0,-20,0,0" Source="pack://application:,,,/Resources/Dialog/password.png" />
  102. <Grid Grid.Column="1" Margin="8,0,0,0">
  103. <Grid.RowDefinitions>
  104. <RowDefinition MinHeight="44" />
  105. <RowDefinition Height="40" />
  106. <RowDefinition />
  107. </Grid.RowDefinitions>
  108. <Grid Grid.Row="0">
  109. <TextBlock
  110. Block.TextAlignment="Left"
  111. FontFamily="Segoe UI"
  112. FontSize="14"
  113. Text="{Binding InputPasswordMsg, Mode=TwoWay}"
  114. TextWrapping="Wrap" />
  115. </Grid>
  116. <Grid Grid.Row="1" Margin="0,8,0,0">
  117. <Grid.ColumnDefinitions>
  118. <ColumnDefinition />
  119. <ColumnDefinition Width="23" />
  120. </Grid.ColumnDefinitions>
  121. <PasswordBox
  122. Grid.ColumnSpan="2"
  123. help:PasswordBoxHelper.DisplayText="{Binding CheckPasswordMsg, Mode=TwoWay}"
  124. help:PasswordBoxHelper.IsRightValue="{Binding IsRightValue, Mode=TwoWay}"
  125. help:PasswordBoxHelper.Password="{Binding Password, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
  126. PasswordChar="*"
  127. Style="{StaticResource CheckPasswordBoxStyle}" />
  128. <Button
  129. Grid.Column="1"
  130. HorizontalAlignment="Left"
  131. Command="{Binding ClearPasswordCommand}"
  132. Style="{StaticResource DeletePasswordButtonStyle}"
  133. Visibility="{Binding ClearPasswordButtonVisibility, Mode=TwoWay}" />
  134. </Grid>
  135. <Grid Grid.Row="2" Margin="0,2,0,0">
  136. <TextBlock
  137. Foreground="#F3465B"
  138. Text="{Binding ErrorPasswordMsg, Mode=TwoWay}"
  139. Visibility="{Binding ErrorPasswordMsgVisibility, Mode=TwoWay}" />
  140. </Grid>
  141. </Grid>
  142. </Grid>
  143. </cus:DialogContent.Content>
  144. <cus:DialogContent.BottmBar>
  145. <Grid Margin="16">
  146. <StackPanel
  147. Height="32"
  148. HorizontalAlignment="Right"
  149. VerticalAlignment="Center"
  150. Orientation="Horizontal">
  151. <Button
  152. Width="67"
  153. Margin="0,0,16,0"
  154. Command="{Binding ConfirmCommand}"
  155. IsDefault="True"
  156. Style="{StaticResource Btn.cta}">
  157. <TextBlock Text="Open" />
  158. </Button>
  159. <Button
  160. Width="67"
  161. Command="{Binding CancelCommand}"
  162. Style="{StaticResource btn.sec}">
  163. <TextBlock Text="Cancel" />
  164. </Button>
  165. </StackPanel>
  166. </Grid>
  167. </cus:DialogContent.BottmBar>
  168. </cus:DialogContent>
  169. </UserControl>