Browse Source

WritableComboBox-添加textBox水印

liyijie 1 year ago
parent
commit
cdd7d359bb

+ 59 - 2
PDF Office/CustomControl/WritableComboBox.xaml

@@ -4,12 +4,67 @@
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
     xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
     xmlns:local="clr-namespace:PDF_Master.CustomControl"
+    xmlns:help="clr-namespace:PDF_Master.Helper"
     xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
     d:DesignHeight="24"
     d:DesignWidth="200"
     Loaded="UserControl_Loaded"
     mc:Ignorable="d">
-    <Grid>
+    <UserControl.Resources>
+        <Style x:Key="WarkTextBoxStyle" TargetType="{x:Type TextBox}">
+            <Setter Property="Background" Value="{DynamicResource {x:Static SystemColors.WindowBrushKey}}"/>
+            <Setter Property="BorderBrush" Value="#FFABADB3"/>
+            <Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}"/>
+            <Setter Property="BorderThickness" Value="1"/>
+            <Setter Property="KeyboardNavigation.TabNavigation" Value="None"/>
+            <Setter Property="HorizontalContentAlignment" Value="Left"/>
+            <Setter Property="FocusVisualStyle" Value="{x:Null}"/>
+            <Setter Property="AllowDrop" Value="True"/>
+            <Setter Property="ScrollViewer.PanningMode" Value="VerticalFirst"/>
+            <Setter Property="Stylus.IsFlicksEnabled" Value="False"/>
+            <Setter Property="Template">
+                <Setter.Value>
+                    <ControlTemplate TargetType="{x:Type TextBox}">
+                        <Border x:Name="border" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" SnapsToDevicePixels="True">
+                            <Grid >
+                                <ScrollViewer x:Name="PART_ContentHost" Focusable="False" HorizontalScrollBarVisibility="Hidden" VerticalScrollBarVisibility="Hidden"/>
+                                <TextBlock x:Name="WARKTEXT" Text="{TemplateBinding Tag}" Foreground="#7F2F2F2F" Visibility="Collapsed" Padding="8,6,0,0"/>
+                            </Grid>
+                        </Border>
+                        <ControlTemplate.Triggers>
+                            <Trigger Property="IsEnabled" Value="False">
+                                <Setter Property="Opacity" TargetName="border" Value="0.56"/>
+                            </Trigger>
+                            <Trigger Property="IsMouseOver" Value="True">
+                                <Setter Property="BorderBrush" TargetName="border" Value="#FF7EB4EA"/>
+                            </Trigger>
+                            <Trigger Property="IsKeyboardFocused" Value="True">
+                                <Setter Property="BorderBrush" TargetName="border" Value="#FF569DE5"/>
+                            </Trigger>
+                            <MultiTrigger>
+                                <MultiTrigger.Conditions>
+                                    <Condition Property="Text" Value=""/>
+                                    <Condition Property="IsFocused" Value="False"/>
+                                </MultiTrigger.Conditions>
+                                <Setter Property="Visibility" TargetName="WARKTEXT" Value="Visible"/>
+                            </MultiTrigger>
+                        </ControlTemplate.Triggers>
+                    </ControlTemplate>
+                </Setter.Value>
+            </Setter>
+            <Style.Triggers>
+                <MultiTrigger>
+                    <MultiTrigger.Conditions>
+                        <Condition Property="IsInactiveSelectionHighlightEnabled" Value="True"/>
+                        <Condition Property="IsSelectionActive" Value="False"/>
+                    </MultiTrigger.Conditions>
+                    <Setter Property="SelectionBrush" Value="{DynamicResource {x:Static SystemColors.InactiveSelectionHighlightBrushKey}}"/>
+                </MultiTrigger>
+            </Style.Triggers>
+        </Style>
+    </UserControl.Resources>
+
+        <Grid>
         <ComboBox
             x:Name="writableComboBox"
             Grid.Column="1"
@@ -38,6 +93,8 @@
             PreviewKeyDown="writableTextBox_PreviewKeyDown"
             Text="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=local:WritableComboBox}, Path=Text}"
             TextChanged="writableTextBox_TextChange"
-            Visibility="Hidden" />
+            Visibility="Hidden" Style="{StaticResource WarkTextBoxStyle}" Tag="例如1,3-5,10">
+
+        </TextBox>
     </Grid>
 </UserControl>

+ 1 - 0
PDF Office/CustomControl/WritableComboBox.xaml.cs

@@ -397,6 +397,7 @@ namespace PDF_Master.CustomControl
             OddPageItem.Content = App.MainPageLoader.GetString("WritableComboBox_OddPage");
             EvenPageItem.Content = App.MainPageLoader.GetString("WritableComboBox_EvenPage");
             CustomPageItem.Content = App.MainPageLoader.GetString("WritableComboBox_CustomRange");
+            writableTextBox.Tag = App.MainPageLoader.GetString("WritableComboBox_CustomRangeEge");
         }
     }
 }

+ 4 - 0
PDF Office/MultilingualResources/PDF Office.en.xlf

@@ -1879,6 +1879,10 @@ form</target>
           <source>Reset All</source>
           <target state="new">Reset All</target>
         </trans-unit>
+        <trans-unit id="WritableComboBox_CustomRangeEge" translate="yes" xml:space="preserve">
+          <source>ege : 1,3-5,10</source>
+          <target state="new">ege : 1,3-5,10</target>
+        </trans-unit>
       </group>
     </body>
   </file>

+ 4 - 0
PDF Office/MultilingualResources/PDF Office.zh-Hans.xlf

@@ -1879,6 +1879,10 @@ form</target>
           <source>Reset All</source>
           <target state="new">Reset All</target>
         </trans-unit>
+        <trans-unit id="WritableComboBox_CustomRangeEge" translate="yes" xml:space="preserve">
+          <source>ege : 1,3-5,10</source>
+          <target state="new">ege : 1,3-5,10</target>
+        </trans-unit>
       </group>
     </body>
   </file>

+ 4 - 0
PDF Office/MultilingualResources/PDF Office.zh-Hant.xlf

@@ -1879,6 +1879,10 @@ form</target>
           <source>Reset All</source>
           <target state="new">Reset All</target>
         </trans-unit>
+        <trans-unit id="WritableComboBox_CustomRangeEge" translate="yes" xml:space="preserve">
+          <source>ege : 1,3-5,10</source>
+          <target state="new">ege : 1,3-5,10</target>
+        </trans-unit>
       </group>
     </body>
   </file>

+ 10 - 1
PDF Office/Strings/MainPage/MainPage.Designer.cs

@@ -19,7 +19,7 @@ namespace PDF_Master.Strings.MainPage {
     // 类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。
     // 若要添加或移除成员,请编辑 .ResX 文件,然后重新运行 ResGen
     // (以 /str 作为命令选项),或重新生成 VS 项目。
-    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
+    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")]
     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
     [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
     public class MainPage {
@@ -3250,6 +3250,15 @@ namespace PDF_Master.Strings.MainPage {
             }
         }
         
+        /// <summary>
+        ///   查找类似 ege : 1,3-5,10 的本地化字符串。
+        /// </summary>
+        public static string WritableComboBox_CustomRangeEge {
+            get {
+                return ResourceManager.GetString("WritableComboBox_CustomRangeEge", resourceCulture);
+            }
+        }
+        
         /// <summary>
         ///   查找类似 Even Pages 的本地化字符串。
         /// </summary>

+ 3 - 0
PDF Office/Strings/MainPage/MainPage.resx

@@ -1225,6 +1225,9 @@ Drag files to reorder as you need.</value>
   <data name="WritableComboBox_CustomRange" xml:space="preserve">
     <value>Custom Range</value>
   </data>
+  <data name="WritableComboBox_CustomRangeEge" xml:space="preserve">
+    <value>ege : 1,3-5,10</value>
+  </data>
   <data name="WritableComboBox_EvenPage" xml:space="preserve">
     <value>Even Pages</value>
   </data>