1+ <ResourceDictionary xmlns =" http://schemas.microsoft.com/winfx/2006/xaml/presentation"
2+ xmlns : x =" http://schemas.microsoft.com/winfx/2006/xaml"
3+ xmlns : hc =" https://handyorg.github.io/handycontrol" >
4+
5+ <!-- Fix Version="3.4.0" -->
6+
7+ <ControlTemplate x : Key =" SearchBarPlusTopTemplate"
8+ TargetType =" hc:SearchBar" >
9+ <Grid >
10+ <Grid .RowDefinitions>
11+ <RowDefinition Height =" Auto" />
12+ <RowDefinition Height =" {Binding Path=(hc:InfoElement.ContentHeight), RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource Double2GridLengthConverter}}"
13+ MinHeight =" {Binding Path=(hc:InfoElement.MinContentHeight), RelativeSource={RelativeSource TemplatedParent}}" />
14+ </Grid .RowDefinitions>
15+ <DockPanel Margin =" {TemplateBinding Padding}"
16+ HorizontalAlignment =" {Binding Path=(hc:TitleElement.HorizontalAlignment), RelativeSource={RelativeSource TemplatedParent}}"
17+ LastChildFill =" True"
18+ Visibility =" {Binding Path=(hc:InfoElement.Title), RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource String2VisibilityConverter}}" >
19+ <ContentPresenter Margin =" 4,0,0,0"
20+ Content =" {Binding Path=(hc:InfoElement.Symbol), RelativeSource={RelativeSource TemplatedParent}}"
21+ DockPanel.Dock=" Right"
22+ TextElement.Foreground=" {DynamicResource DangerBrush}"
23+ Visibility =" {Binding Path=(hc:InfoElement.Necessary), RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource Boolean2VisibilityConverter}}" />
24+ <TextBlock hc:TextBlockAttach.AutoTooltip=" True"
25+ Text =" {Binding Path=(hc:InfoElement.Title), RelativeSource={RelativeSource TemplatedParent}}"
26+ TextTrimming =" CharacterEllipsis"
27+ TextWrapping =" NoWrap" />
28+ </DockPanel >
29+ <Border x : Name =" border"
30+ Grid.Row=" 1"
31+ Background =" {TemplateBinding Background}"
32+ BorderBrush =" {TemplateBinding BorderBrush}"
33+ BorderThickness =" {TemplateBinding BorderThickness}"
34+ CornerRadius =" {Binding Path=(hc:BorderElement.CornerRadius), RelativeSource={RelativeSource TemplatedParent}}" />
35+ <Grid x : Name =" root"
36+ Grid.Row=" 1"
37+ SnapsToDevicePixels =" true" >
38+ <Grid .ColumnDefinitions>
39+ <ColumnDefinition />
40+ <ColumnDefinition Width =" Auto" />
41+ </Grid .ColumnDefinitions>
42+ <Border Margin =" 4,0,-4,0"
43+ Padding =" 8,0,0,0"
44+ HorizontalAlignment =" Right"
45+ VerticalAlignment =" Stretch"
46+ Panel.ZIndex=" 99"
47+ Background =" {TemplateBinding Background}"
48+ BorderBrush =" {x:Null}"
49+ BorderThickness =" {TemplateBinding BorderThickness,
50+ Converter={StaticResource ThicknessSplitConverter},
51+ ConverterParameter='0,1,0,1'}"
52+ CornerRadius =" {Binding Path=(hc:BorderElement.CornerRadius), RelativeSource={RelativeSource TemplatedParent}}"
53+ Visibility =" {Binding ElementName=ButtonClear, Path=Visibility}" >
54+ <Button Name =" ButtonClear"
55+ Width =" Auto"
56+ Height =" Auto"
57+ Padding =" 0"
58+ HorizontalAlignment =" Center"
59+ VerticalAlignment =" Center"
60+ HorizontalContentAlignment =" Center"
61+ hc:BorderElement.CornerRadius=" 4"
62+ hc:IconElement.Geometry=" {StaticResource DeleteFillCircleGeometry}"
63+ hc:IconElement.Width=" 14"
64+ Background =" {TemplateBinding Background}"
65+ Command =" {x:Static hc:ControlCommands.Clear}"
66+ Foreground =" {Binding BorderBrush, ElementName=border}"
67+ Style =" {StaticResource ButtonIcon}"
68+ Visibility =" Collapsed" />
69+ </Border >
70+ <TextBlock Grid.Row=" 0"
71+ Grid.Column=" 0"
72+ Margin =" {TemplateBinding Padding}"
73+ HorizontalAlignment =" Stretch"
74+ VerticalAlignment =" {TemplateBinding VerticalContentAlignment}"
75+ Style =" {StaticResource TextBlockDefaultThiLight}"
76+ Text =" {Binding Path=(hc:InfoElement.Placeholder), RelativeSource={RelativeSource TemplatedParent}}"
77+ Visibility =" {TemplateBinding Text,
78+ Converter={StaticResource String2VisibilityReConverter}}" />
79+ <ScrollViewer x : Name =" PART_ContentHost"
80+ Grid.Row=" 0"
81+ Grid.Column=" 0"
82+ Margin =" -2,0"
83+ Padding =" {TemplateBinding Padding}"
84+ VerticalContentAlignment =" {TemplateBinding VerticalContentAlignment}"
85+ Focusable =" false"
86+ HorizontalScrollBarVisibility =" Hidden"
87+ VerticalScrollBarVisibility =" Hidden" />
88+ <Button Grid.Row=" 0"
89+ Grid.Column=" 1"
90+ Width =" Auto"
91+ Height =" Auto"
92+ Margin =" {TemplateBinding BorderThickness,
93+ Converter={StaticResource ThicknessSplitConverter},
94+ ConverterParameter='0,1,1,1'}"
95+ Padding =" {Binding Padding, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource ThicknessSplitConverter}, ConverterParameter='1,0,1,0'}"
96+ HorizontalAlignment =" Stretch"
97+ VerticalAlignment =" Stretch"
98+ HorizontalContentAlignment =" Left"
99+ hc:IconElement.Geometry=" {StaticResource SearchGeometry}"
100+ hc:IconElement.Width=" 14"
101+ BorderBrush =" {x:Null}"
102+ BorderThickness =" 0"
103+ Command =" {x:Static hc:ControlCommands.Search}"
104+ Focusable =" False"
105+ Foreground =" {TemplateBinding BorderBrush}"
106+ Style =" {StaticResource ButtonIcon}" />
107+ </Grid >
108+ </Grid >
109+ <ControlTemplate .Triggers>
110+ <Trigger Property =" IsEnabled" Value =" false" >
111+ <Setter TargetName =" border" Property =" Opacity" Value =" 0.4" />
112+ <Setter TargetName =" root" Property =" Opacity" Value =" 0.4" />
113+ </Trigger >
114+ <Trigger SourceName =" root" Property =" IsMouseOver" Value =" true" >
115+ <Setter Property =" BorderBrush" Value =" {DynamicResource SecondaryBorderBrush}" />
116+ </Trigger >
117+ <MultiTrigger >
118+ <MultiTrigger .Conditions>
119+ <Condition SourceName =" root" Property =" IsMouseOver" Value =" true" />
120+ <Condition Property =" hc:InfoElement.ShowClearButton" Value =" True" />
121+ </MultiTrigger .Conditions>
122+ <Setter TargetName =" ButtonClear" Property =" Visibility" Value =" Visible" />
123+ </MultiTrigger >
124+ <Trigger Property =" IsFocused" Value =" true" >
125+ <Setter Property =" BorderBrush" Value =" {DynamicResource PrimaryBrush}" />
126+ </Trigger >
127+ </ControlTemplate .Triggers>
128+ </ControlTemplate >
129+
130+ <ControlTemplate x : Key =" SearchBarPlusLeftTemplate"
131+ TargetType =" hc:SearchBar" >
132+ <Grid Height =" {Binding Path=(hc:InfoElement.ContentHeight), RelativeSource={RelativeSource TemplatedParent}}"
133+ MinHeight =" {Binding Path=(hc:InfoElement.MinContentHeight), RelativeSource={RelativeSource TemplatedParent}}" >
134+ <Grid .ColumnDefinitions>
135+ <ColumnDefinition Width =" {Binding Path=(hc:InfoElement.TitleWidth), RelativeSource={RelativeSource TemplatedParent}}" />
136+ <ColumnDefinition />
137+ </Grid .ColumnDefinitions>
138+ <DockPanel Margin =" {Binding Path=(hc:TitleElement.MarginOnTheLeft), RelativeSource={RelativeSource TemplatedParent}}"
139+ HorizontalAlignment =" {Binding Path=(hc:TitleElement.HorizontalAlignment), RelativeSource={RelativeSource TemplatedParent}}"
140+ VerticalAlignment =" {Binding Path=(hc:TitleElement.VerticalAlignment), RelativeSource={RelativeSource TemplatedParent}}"
141+ LastChildFill =" True"
142+ Visibility =" {Binding Path=(hc:InfoElement.Title), RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource String2VisibilityConverter}}" >
143+ <ContentPresenter Margin =" 4,0,0,0"
144+ Content =" {Binding Path=(hc:InfoElement.Symbol), RelativeSource={RelativeSource TemplatedParent}}"
145+ DockPanel.Dock=" Right"
146+ TextElement.Foreground=" {DynamicResource DangerBrush}"
147+ Visibility =" {Binding Path=(hc:InfoElement.Necessary), RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource Boolean2VisibilityConverter}}" />
148+ <TextBlock hc:TextBlockAttach.AutoTooltip=" True"
149+ Text =" {Binding Path=(hc:InfoElement.Title), RelativeSource={RelativeSource TemplatedParent}}"
150+ TextTrimming =" CharacterEllipsis"
151+ TextWrapping =" NoWrap" />
152+ </DockPanel >
153+ <Border x : Name =" border"
154+ Grid.Column=" 1"
155+ Background =" {TemplateBinding Background}"
156+ BorderBrush =" {TemplateBinding BorderBrush}"
157+ BorderThickness =" {TemplateBinding BorderThickness}"
158+ CornerRadius =" {Binding Path=(hc:BorderElement.CornerRadius), RelativeSource={RelativeSource TemplatedParent}}" />
159+ <Grid x : Name =" root"
160+ Grid.Column=" 1"
161+ SnapsToDevicePixels =" true" >
162+ <Grid .ColumnDefinitions>
163+ <ColumnDefinition />
164+ <ColumnDefinition Width =" Auto" />
165+ </Grid .ColumnDefinitions>
166+ <Border Margin =" 4,0,-4,0"
167+ Padding =" 8,0,0,0"
168+ HorizontalAlignment =" Right"
169+ VerticalAlignment =" Stretch"
170+ Panel.ZIndex=" 99"
171+ Background =" {TemplateBinding Background}"
172+ BorderBrush =" {x:Null}"
173+ BorderThickness =" {TemplateBinding BorderThickness,
174+ Converter={StaticResource ThicknessSplitConverter},
175+ ConverterParameter='0,1,0,1'}"
176+ CornerRadius =" {Binding Path=(hc:BorderElement.CornerRadius), RelativeSource={RelativeSource TemplatedParent}}"
177+ Visibility =" {Binding ElementName=ButtonClear, Path=Visibility}" >
178+ <Button Name =" ButtonClear"
179+ Width =" Auto"
180+ Height =" Auto"
181+ Padding =" 0"
182+ HorizontalAlignment =" Center"
183+ VerticalAlignment =" Center"
184+ HorizontalContentAlignment =" Center"
185+ hc:BorderElement.CornerRadius=" 4"
186+ hc:IconElement.Geometry=" {StaticResource DeleteFillCircleGeometry}"
187+ hc:IconElement.Width=" 14"
188+ Background =" {TemplateBinding Background}"
189+ Command =" {x:Static hc:ControlCommands.Clear}"
190+ Foreground =" {Binding BorderBrush, ElementName=border}"
191+ Style =" {StaticResource ButtonIcon}"
192+ Visibility =" Collapsed" />
193+ </Border >
194+ <TextBlock Grid.Row=" 0"
195+ Grid.Column=" 0"
196+ Margin =" {TemplateBinding Padding}"
197+ HorizontalAlignment =" Stretch"
198+ VerticalAlignment =" {TemplateBinding VerticalContentAlignment}"
199+ Style =" {StaticResource TextBlockDefaultThiLight}"
200+ Text =" {Binding Path=(hc:InfoElement.Placeholder), RelativeSource={RelativeSource TemplatedParent}}"
201+ Visibility =" {TemplateBinding Text,
202+ Converter={StaticResource String2VisibilityReConverter}}" />
203+ <ScrollViewer x : Name =" PART_ContentHost"
204+ Grid.Row=" 0"
205+ Grid.Column=" 0"
206+ Margin =" -2,0"
207+ Padding =" {TemplateBinding Padding}"
208+ VerticalContentAlignment =" {TemplateBinding VerticalContentAlignment}"
209+ Focusable =" false"
210+ HorizontalScrollBarVisibility =" Hidden"
211+ VerticalScrollBarVisibility =" Hidden" />
212+ <Button Grid.Row=" 0"
213+ Grid.Column=" 1"
214+ Width =" Auto"
215+ Height =" Auto"
216+ Margin =" {TemplateBinding BorderThickness,
217+ Converter={StaticResource ThicknessSplitConverter},
218+ ConverterParameter='0,1,1,1'}"
219+ Padding =" {Binding Padding, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource ThicknessSplitConverter}, ConverterParameter='1,0,1,0'}"
220+ HorizontalAlignment =" Stretch"
221+ VerticalAlignment =" Stretch"
222+ HorizontalContentAlignment =" Left"
223+ hc:IconElement.Geometry=" {StaticResource SearchGeometry}"
224+ hc:IconElement.Width=" 14"
225+ BorderBrush =" {x:Null}"
226+ BorderThickness =" 0"
227+ Command =" {x:Static hc:ControlCommands.Search}"
228+ Focusable =" False"
229+ Foreground =" {TemplateBinding BorderBrush}"
230+ Style =" {StaticResource ButtonIcon}" />
231+ </Grid >
232+ </Grid >
233+ <ControlTemplate .Triggers>
234+ <Trigger Property =" IsEnabled" Value =" false" >
235+ <Setter TargetName =" border" Property =" Opacity" Value =" 0.4" />
236+ <Setter TargetName =" root" Property =" Opacity" Value =" 0.4" />
237+ </Trigger >
238+ <Trigger SourceName =" root" Property =" IsMouseOver" Value =" true" >
239+ <Setter Property =" BorderBrush" Value =" {DynamicResource SecondaryBorderBrush}" />
240+ </Trigger >
241+ <MultiTrigger >
242+ <MultiTrigger .Conditions>
243+ <Condition SourceName =" root" Property =" IsMouseOver" Value =" true" />
244+ <Condition Property =" hc:InfoElement.ShowClearButton" Value =" True" />
245+ </MultiTrigger .Conditions>
246+ <Setter TargetName =" ButtonClear" Property =" Visibility" Value =" Visible" />
247+ </MultiTrigger >
248+ <Trigger Property =" IsFocused" Value =" true" >
249+ <Setter Property =" BorderBrush" Value =" {DynamicResource PrimaryBrush}" />
250+ </Trigger >
251+ </ControlTemplate .Triggers>
252+ </ControlTemplate >
253+
254+ <Style x : Key =" SearchBarPlusBaseStyle"
255+ BasedOn =" {StaticResource SearchBarExtendBaseStyle}"
256+ TargetType =" hc:SearchBar" >
257+ <Setter Property =" Template" Value =" {StaticResource SearchBarPlusTopTemplate}" />
258+ <Style .Triggers>
259+ <Trigger Property =" hc:InfoElement.TitlePlacement" Value =" Left" >
260+ <Setter Property =" Template" Value =" {StaticResource SearchBarPlusLeftTemplate}" />
261+ <Setter Property =" Width" Value =" Auto" />
262+ </Trigger >
263+ </Style .Triggers>
264+ </Style >
265+
266+ <Style x : Key =" SearchBarPlus"
267+ BasedOn =" {StaticResource SearchBarPlusBaseStyle}"
268+ TargetType =" hc:SearchBar" />
269+ </ResourceDictionary >
0 commit comments