WritableComboBox.xaml 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. <UserControl
  2. x:Class="PDF_Master.CustomControl.WritableComboBox"
  3. xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  4. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  5. xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
  6. xmlns:local="clr-namespace:PDF_Master.CustomControl"
  7. xmlns:help="clr-namespace:PDF_Master.Helper"
  8. xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
  9. d:DesignHeight="24"
  10. d:DesignWidth="200"
  11. Loaded="UserControl_Loaded"
  12. mc:Ignorable="d">
  13. <UserControl.Resources>
  14. <Style x:Key="WarkTextBoxStyle" TargetType="{x:Type TextBox}">
  15. <Setter Property="Background" Value="{DynamicResource {x:Static SystemColors.WindowBrushKey}}"/>
  16. <Setter Property="BorderBrush" Value="#FFABADB3"/>
  17. <Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}"/>
  18. <Setter Property="BorderThickness" Value="1"/>
  19. <Setter Property="KeyboardNavigation.TabNavigation" Value="None"/>
  20. <Setter Property="HorizontalContentAlignment" Value="Left"/>
  21. <Setter Property="FocusVisualStyle" Value="{x:Null}"/>
  22. <Setter Property="AllowDrop" Value="True"/>
  23. <Setter Property="ScrollViewer.PanningMode" Value="VerticalFirst"/>
  24. <Setter Property="Stylus.IsFlicksEnabled" Value="False"/>
  25. <Setter Property="Template">
  26. <Setter.Value>
  27. <ControlTemplate TargetType="{x:Type TextBox}">
  28. <Border x:Name="border" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" SnapsToDevicePixels="True">
  29. <Grid >
  30. <ScrollViewer x:Name="PART_ContentHost" Focusable="False" HorizontalScrollBarVisibility="Hidden" VerticalScrollBarVisibility="Hidden"/>
  31. <TextBlock x:Name="WARKTEXT" Text="{TemplateBinding Tag}" Foreground="#7F2F2F2F" Visibility="Collapsed" Padding="8,6,0,0"/>
  32. </Grid>
  33. </Border>
  34. <ControlTemplate.Triggers>
  35. <Trigger Property="IsEnabled" Value="False">
  36. <Setter Property="Opacity" TargetName="border" Value="0.56"/>
  37. </Trigger>
  38. <Trigger Property="IsMouseOver" Value="True">
  39. <Setter Property="BorderBrush" TargetName="border" Value="#FF7EB4EA"/>
  40. </Trigger>
  41. <Trigger Property="IsKeyboardFocused" Value="True">
  42. <Setter Property="BorderBrush" TargetName="border" Value="#FF569DE5"/>
  43. </Trigger>
  44. <MultiTrigger>
  45. <MultiTrigger.Conditions>
  46. <Condition Property="Text" Value=""/>
  47. <!--<Condition Property="IsFocused" Value="False"/>-->
  48. </MultiTrigger.Conditions>
  49. <Setter Property="Visibility" TargetName="WARKTEXT" Value="Visible"/>
  50. </MultiTrigger>
  51. </ControlTemplate.Triggers>
  52. </ControlTemplate>
  53. </Setter.Value>
  54. </Setter>
  55. <Style.Triggers>
  56. <MultiTrigger>
  57. <MultiTrigger.Conditions>
  58. <Condition Property="IsInactiveSelectionHighlightEnabled" Value="True"/>
  59. <Condition Property="IsSelectionActive" Value="False"/>
  60. </MultiTrigger.Conditions>
  61. <Setter Property="SelectionBrush" Value="{DynamicResource {x:Static SystemColors.InactiveSelectionHighlightBrushKey}}"/>
  62. </MultiTrigger>
  63. </Style.Triggers>
  64. </Style>
  65. </UserControl.Resources>
  66. <Grid>
  67. <ComboBox
  68. x:Name="writableComboBox"
  69. Grid.Column="1"
  70. MinWidth="58"
  71. MinHeight="24"
  72. VerticalContentAlignment="Center"
  73. SelectedIndex="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=local:WritableComboBox}, Path=SelectedIndex}"
  74. SelectionChanged="writableComboBox_SelectionChanged"
  75. Visibility="Visible">
  76. <ComboBoxItem x:Name="AllPageItem" Tag="AllPage" Visibility="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=local:WritableComboBox}, Path=IsAllPageVisible}"/>
  77. <ComboBoxItem x:Name="OddPageItem" Tag="OddPage"/>
  78. <ComboBoxItem x:Name="EvenPageItem" IsEnabled="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=local:WritableComboBox}, Path=EvenPageIsEnabled}" Tag="EvenPage"/>
  79. <ComboBoxItem x:Name="CustomPageItem" Tag="CustomPage"/>
  80. </ComboBox>
  81. <TextBox
  82. x:Name="writableTextBox"
  83. Grid.Column="0"
  84. MinHeight="{Binding ElementName=writableComboBox, Path=MinHeight}"
  85. BorderBrush="{x:Null}"
  86. BorderThickness="0"
  87. Margin="2"
  88. HorizontalAlignment="Left"
  89. VerticalContentAlignment="Center"
  90. Panel.ZIndex="1"
  91. LostFocus="writableTextBox_LostFocus"
  92. PreviewKeyDown="writableTextBox_PreviewKeyDown"
  93. InputMethod.IsInputMethodEnabled="False"
  94. PreviewTextInput="writableTextBox_PreviewTextInput"
  95. Text="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=local:WritableComboBox}, Path=Text}"
  96. TextChanged="writableTextBox_TextChange"
  97. Visibility="Hidden" Style="{StaticResource WarkTextBoxStyle}" Tag="例如1,3-5,10">
  98. <!--<TextBox.CaretBrush>
  99. <SolidColorBrush Color="#FF7EB4EA"/>
  100. </TextBox.CaretBrush>-->
  101. </TextBox>
  102. </Grid>
  103. </UserControl>