Skip to content

Commit 60bb5b5

Browse files
committed
add adorner decorator to overlay type controls
1 parent 4d2fb1f commit 60bb5b5

File tree

2 files changed

+157
-155
lines changed

2 files changed

+157
-155
lines changed

MainDemo.Wpf/TextFields.xaml

Lines changed: 147 additions & 149 deletions
Original file line numberDiff line numberDiff line change
@@ -36,160 +36,158 @@
3636
</Style>
3737
</ResourceDictionary>
3838
</UserControl.Resources>
39-
<AdornerDecorator>
40-
<Grid Margin="16" VerticalAlignment="Top">
41-
<Grid.ColumnDefinitions>
42-
<ColumnDefinition Width="Auto" />
43-
<ColumnDefinition Width="150" />
44-
<ColumnDefinition Width="Auto" />
45-
<ColumnDefinition Width="150" />
46-
<ColumnDefinition Width="*" />
47-
</Grid.ColumnDefinitions>
48-
<Grid.RowDefinitions>
49-
<RowDefinition Height="Auto" />
50-
<RowDefinition Height="Auto" />
51-
<RowDefinition Height="Auto" />
52-
<RowDefinition Height="Auto" />
53-
<RowDefinition Height="Auto" />
54-
<RowDefinition Height="Auto" />
55-
<RowDefinition Height="Auto" />
56-
<RowDefinition Height="Auto" />
57-
<RowDefinition Height="Auto" />
58-
</Grid.RowDefinitions>
59-
<Viewbox Grid.Row="0" Grid.Column="0">
60-
<Canvas Width="24" Height="24">
61-
<Path Data="M12,4A4,4 0 0,1 16,8A4,4 0 0,1 12,12A4,4 0 0,1 8,8A4,4 0 0,1 12,4M12,14C16.42,14 20,15.79 20,18V20H4V18C4,15.79 7.58,14 12,14Z"
62-
Fill="{Binding ElementName=NameTextBox, Path=BorderBrush}" />
63-
</Canvas>
64-
</Viewbox>
65-
<TextBox Grid.Row="0" Grid.Column="1"
66-
x:Name="NameTextBox"
67-
wpf:TextFieldAssist.Hint="Name">
68-
<TextBox.Text>
69-
<Binding Path="Name" UpdateSourceTrigger="PropertyChanged">
70-
<Binding.ValidationRules>
71-
<wpfExample:NotEmptyValidationRule ValidatesOnTargetUpdated="True" />
72-
</Binding.ValidationRules>
73-
</Binding>
74-
</TextBox.Text>
75-
</TextBox>
76-
<TextBlock Grid.Row="0" Grid.Column="2" VerticalAlignment="Center" Margin="16 0 8 0">OS</TextBlock>
77-
<ComboBox Grid.Row="0" Grid.Column="3" wpf:TextFieldAssist.Hint="OS">
78-
<ComboBoxItem>Andoid</ComboBoxItem>
79-
<ComboBoxItem>iOS</ComboBoxItem>
80-
<ComboBoxItem>Linux</ComboBoxItem>
81-
<ComboBoxItem>Windows</ComboBoxItem>
39+
<Grid Margin="16" VerticalAlignment="Top">
40+
<Grid.ColumnDefinitions>
41+
<ColumnDefinition Width="Auto" />
42+
<ColumnDefinition Width="150" />
43+
<ColumnDefinition Width="Auto" />
44+
<ColumnDefinition Width="150" />
45+
<ColumnDefinition Width="*" />
46+
</Grid.ColumnDefinitions>
47+
<Grid.RowDefinitions>
48+
<RowDefinition Height="Auto" />
49+
<RowDefinition Height="Auto" />
50+
<RowDefinition Height="Auto" />
51+
<RowDefinition Height="Auto" />
52+
<RowDefinition Height="Auto" />
53+
<RowDefinition Height="Auto" />
54+
<RowDefinition Height="Auto" />
55+
<RowDefinition Height="Auto" />
56+
<RowDefinition Height="Auto" />
57+
</Grid.RowDefinitions>
58+
<Viewbox Grid.Row="0" Grid.Column="0">
59+
<Canvas Width="24" Height="24">
60+
<Path Data="M12,4A4,4 0 0,1 16,8A4,4 0 0,1 12,12A4,4 0 0,1 8,8A4,4 0 0,1 12,4M12,14C16.42,14 20,15.79 20,18V20H4V18C4,15.79 7.58,14 12,14Z"
61+
Fill="{Binding ElementName=NameTextBox, Path=BorderBrush}" />
62+
</Canvas>
63+
</Viewbox>
64+
<TextBox Grid.Row="0" Grid.Column="1"
65+
x:Name="NameTextBox"
66+
wpf:TextFieldAssist.Hint="Name">
67+
<TextBox.Text>
68+
<Binding Path="Name" UpdateSourceTrigger="PropertyChanged">
69+
<Binding.ValidationRules>
70+
<wpfExample:NotEmptyValidationRule ValidatesOnTargetUpdated="True" />
71+
</Binding.ValidationRules>
72+
</Binding>
73+
</TextBox.Text>
74+
</TextBox>
75+
<TextBlock Grid.Row="0" Grid.Column="2" VerticalAlignment="Center" Margin="16 0 8 0">OS</TextBlock>
76+
<ComboBox Grid.Row="0" Grid.Column="3" wpf:TextFieldAssist.Hint="OS">
77+
<ComboBoxItem>Andoid</ComboBoxItem>
78+
<ComboBoxItem>iOS</ComboBoxItem>
79+
<ComboBoxItem>Linux</ComboBoxItem>
80+
<ComboBoxItem>Windows</ComboBoxItem>
81+
</ComboBox>
82+
<TextBox Grid.Row="0" Grid.RowSpan="2" Grid.Column="4" TextWrapping="Wrap" VerticalAlignment="Stretch" Margin="16 0 0 0"
83+
MinWidth="280"
84+
AcceptsReturn="True"
85+
VerticalScrollBarVisibility="Auto"
86+
wpf:TextFieldAssist.Hint="Multiline text"
87+
Height="80">Multiline. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. The quick brown fox jumps over the lazy dog. War and peace. Keep going. Go on. For how long? Not long. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</TextBox>
88+
<Viewbox Grid.Row="1" Grid.Column="0">
89+
<Canvas Width="24" Height="24">
90+
<Path Data="M6.62,10.79C8.06,13.62 10.38,15.94 13.21,17.38L15.41,15.18C15.69,14.9 16.08,14.82 16.43,14.93C17.55,15.3 18.75,15.5 20,15.5A1,1 0 0,1 21,16.5V20A1,1 0 0,1 20,21A17,17 0 0,1 3,4A1,1 0 0,1 4,3H7.5A1,1 0 0,1 8.5,4C8.5,5.25 8.7,6.45 9.07,7.57C9.18,7.92 9.1,8.31 8.82,8.59L6.62,10.79Z"
91+
Fill="{Binding ElementName=PhoneTextBox, Path=BorderBrush}" />
92+
</Canvas>
93+
</Viewbox>
94+
<TextBox Grid.Row="1" Grid.Column="1"
95+
x:Name="PhoneTextBox"
96+
wpf:TextFieldAssist.Hint="Phone"
97+
/>
98+
<TextBlock Grid.Row="1" Grid.Column="2" VerticalAlignment="Center" Margin="16 0 8 0">Fruit</TextBlock>
99+
<ComboBox Grid.Row="1" Grid.Column="3" wpf:TextFieldAssist.Hint="Search" IsEditable="True" wpf:TextFieldAssist.HintOpacity=".26">
100+
<ComboBoxItem>Apple</ComboBoxItem>
101+
<ComboBoxItem>Banana</ComboBoxItem>
102+
<ComboBoxItem>Pear</ComboBoxItem>
103+
<ComboBoxItem>Orange</ComboBoxItem>
104+
</ComboBox>
105+
<Viewbox Grid.Row="2" Grid.Column="0">
106+
<Canvas Width="24" Height="24">
107+
<Path Data="M9,22A1,1 0 0,1 8,21V18H4A2,2 0 0,1 2,16V4C2,2.89 2.9,2 4,2H20A2,2 0 0,1 22,4V16A2,2 0 0,1 20,18H13.9L10.2,21.71C10,21.9 9.75,22 9.5,22V22H9M13,10V6H11V10H13M13,14V12H11V14H13Z"
108+
Fill="{Binding ElementName=CommentTextBox, Path=BorderBrush}" />
109+
</Canvas>
110+
</Viewbox>
111+
<TextBox Grid.Row="2" Grid.Column="1"
112+
x:Name="CommentTextBox"
113+
wpf:TextFieldAssist.Hint="Comment"
114+
/>
115+
<Viewbox Grid.Row="2" Grid.Column="2">
116+
<Canvas Width="24" Height="24">
117+
<Path Data="M7,14A2,2 0 0,1 5,12A2,2 0 0,1 7,10A2,2 0 0,1 9,12A2,2 0 0,1 7,14M12.65,10C11.83,7.67 9.61,6 7,6A6,6 0 0,0 1,12A6,6 0 0,0 7,18C9.61,18 11.83,16.33 12.65,14H17V18H21V14H23V10H12.65Z"
118+
Fill="{Binding ElementName=PasswordBox, Path=BorderBrush}" />
119+
</Canvas>
120+
</Viewbox>
121+
<PasswordBox Grid.Row="2" Grid.Column="3"
122+
x:Name="PasswordBox"
123+
wpf:TextFieldAssist.Hint="Password" />
124+
125+
<TextBox Grid.Row="3" Grid.Column="1" wpf:TextFieldAssist.Hint="Floating Hint" Style="{StaticResource MaterialDesignFloatingHintTextBox}"
126+
Margin="0 8 0 8"/>
127+
<ComboBox Grid.Row="3" Grid.Column="3" wpf:TextFieldAssist.Hint="OS" Style="{StaticResource MaterialDesignFloatingHintComboBox}"
128+
Margin="0 8 0 8">
129+
<ComboBoxItem>Andoid</ComboBoxItem>
130+
<ComboBoxItem>iOS</ComboBoxItem>
131+
<ComboBoxItem>Linux</ComboBoxItem>
132+
<ComboBoxItem>Windows</ComboBoxItem>
133+
</ComboBox>
134+
135+
<StackPanel Grid.Row="4" Grid.Column="4" Orientation="Horizontal">
136+
<ComboBox wpf:TextFieldAssist.Hint="Virtualisation"
137+
HorizontalAlignment="Left" Margin="16 0 0 0"
138+
ItemsSource="{Binding LongListToTestComboVirtualization}"
139+
SelectedValue="{Binding SelectedValueOne}">
140+
<ComboBox.ItemsPanel>
141+
<ItemsPanelTemplate>
142+
<VirtualizingStackPanel />
143+
</ItemsPanelTemplate>
144+
</ComboBox.ItemsPanel>
82145
</ComboBox>
83-
<TextBox Grid.Row="0" Grid.RowSpan="2" Grid.Column="4" TextWrapping="Wrap" VerticalAlignment="Stretch" Margin="16 0 0 0"
84-
MinWidth="280"
85-
AcceptsReturn="True"
86-
VerticalScrollBarVisibility="Auto"
87-
wpf:TextFieldAssist.Hint="Multiline text"
88-
Height="80">Multiline. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. The quick brown fox jumps over the lazy dog. War and peace. Keep going. Go on. For how long? Not long. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</TextBox>
89-
<Viewbox Grid.Row="1" Grid.Column="0">
90-
<Canvas Width="24" Height="24">
91-
<Path Data="M6.62,10.79C8.06,13.62 10.38,15.94 13.21,17.38L15.41,15.18C15.69,14.9 16.08,14.82 16.43,14.93C17.55,15.3 18.75,15.5 20,15.5A1,1 0 0,1 21,16.5V20A1,1 0 0,1 20,21A17,17 0 0,1 3,4A1,1 0 0,1 4,3H7.5A1,1 0 0,1 8.5,4C8.5,5.25 8.7,6.45 9.07,7.57C9.18,7.92 9.1,8.31 8.82,8.59L6.62,10.79Z"
92-
Fill="{Binding ElementName=PhoneTextBox, Path=BorderBrush}" />
93-
</Canvas>
94-
</Viewbox>
95-
<TextBox Grid.Row="1" Grid.Column="1"
96-
x:Name="PhoneTextBox"
97-
wpf:TextFieldAssist.Hint="Phone"
98-
/>
99-
<TextBlock Grid.Row="1" Grid.Column="2" VerticalAlignment="Center" Margin="16 0 8 0">Fruit</TextBlock>
100-
<ComboBox Grid.Row="1" Grid.Column="3" wpf:TextFieldAssist.Hint="Search" IsEditable="True" wpf:TextFieldAssist.HintOpacity=".26">
101-
<ComboBoxItem>Apple</ComboBoxItem>
102-
<ComboBoxItem>Banana</ComboBoxItem>
103-
<ComboBoxItem>Pear</ComboBoxItem>
104-
<ComboBoxItem>Orange</ComboBoxItem>
146+
<ComboBox wpf:TextFieldAssist.Hint="Virt (editable)"
147+
HorizontalAlignment="Left" Margin="16 0 0 0"
148+
IsEditable="True"
149+
ItemsSource="{Binding LongListToTestComboVirtualization}">
150+
<ComboBox.ItemsPanel>
151+
<ItemsPanelTemplate>
152+
<VirtualizingStackPanel />
153+
</ItemsPanelTemplate>
154+
</ComboBox.ItemsPanel>
105155
</ComboBox>
106-
<Viewbox Grid.Row="2" Grid.Column="0">
107-
<Canvas Width="24" Height="24">
108-
<Path Data="M9,22A1,1 0 0,1 8,21V18H4A2,2 0 0,1 2,16V4C2,2.89 2.9,2 4,2H20A2,2 0 0,1 22,4V16A2,2 0 0,1 20,18H13.9L10.2,21.71C10,21.9 9.75,22 9.5,22V22H9M13,10V6H11V10H13M13,14V12H11V14H13Z"
109-
Fill="{Binding ElementName=CommentTextBox, Path=BorderBrush}" />
110-
</Canvas>
111-
</Viewbox>
112-
<TextBox Grid.Row="2" Grid.Column="1"
113-
x:Name="CommentTextBox"
114-
wpf:TextFieldAssist.Hint="Comment"
115-
/>
116-
<Viewbox Grid.Row="2" Grid.Column="2">
117-
<Canvas Width="24" Height="24">
118-
<Path Data="M7,14A2,2 0 0,1 5,12A2,2 0 0,1 7,10A2,2 0 0,1 9,12A2,2 0 0,1 7,14M12.65,10C11.83,7.67 9.61,6 7,6A6,6 0 0,0 1,12A6,6 0 0,0 7,18C9.61,18 11.83,16.33 12.65,14H17V18H21V14H23V10H12.65Z"
119-
Fill="{Binding ElementName=PasswordBox, Path=BorderBrush}" />
120-
</Canvas>
121-
</Viewbox>
122-
<PasswordBox Grid.Row="2" Grid.Column="3"
123-
x:Name="PasswordBox"
124-
wpf:TextFieldAssist.Hint="Password" />
125-
126-
<TextBox Grid.Row="3" Grid.Column="1" wpf:TextFieldAssist.Hint="Floating Hint" Style="{StaticResource MaterialDesignFloatingHintTextBox}"
127-
Margin="0 8 0 8"/>
128-
<ComboBox Grid.Row="3" Grid.Column="3" wpf:TextFieldAssist.Hint="OS" Style="{StaticResource MaterialDesignFloatingHintComboBox}"
129-
Margin="0 8 0 8">
130-
<ComboBoxItem>Andoid</ComboBoxItem>
131-
<ComboBoxItem>iOS</ComboBoxItem>
132-
<ComboBoxItem>Linux</ComboBoxItem>
133-
<ComboBoxItem>Windows</ComboBoxItem>
156+
<ComboBox wpf:TextFieldAssist.Hint="Virt (float hint)"
157+
HorizontalAlignment="Left" Margin="16 0 0 0"
158+
ItemsSource="{Binding LongListToTestComboVirtualization}"
159+
Style="{StaticResource MaterialDesignFloatingHintComboBox}">
160+
<ComboBox.ItemsPanel>
161+
<ItemsPanelTemplate>
162+
<VirtualizingStackPanel />
163+
</ItemsPanelTemplate>
164+
</ComboBox.ItemsPanel>
134165
</ComboBox>
166+
</StackPanel>
135167

136-
<StackPanel Grid.Row="4" Grid.Column="4" Orientation="Horizontal">
137-
<ComboBox wpf:TextFieldAssist.Hint="Virtualisation"
138-
HorizontalAlignment="Left" Margin="16 0 0 0"
139-
ItemsSource="{Binding LongListToTestComboVirtualization}"
140-
SelectedValue="{Binding SelectedValueOne}">
141-
<ComboBox.ItemsPanel>
142-
<ItemsPanelTemplate>
143-
<VirtualizingStackPanel />
144-
</ItemsPanelTemplate>
145-
</ComboBox.ItemsPanel>
146-
</ComboBox>
147-
<ComboBox wpf:TextFieldAssist.Hint="Virt (editable)"
148-
HorizontalAlignment="Left" Margin="16 0 0 0"
149-
IsEditable="True"
150-
ItemsSource="{Binding LongListToTestComboVirtualization}">
151-
<ComboBox.ItemsPanel>
152-
<ItemsPanelTemplate>
153-
<VirtualizingStackPanel />
154-
</ItemsPanelTemplate>
155-
</ComboBox.ItemsPanel>
156-
</ComboBox>
157-
<ComboBox wpf:TextFieldAssist.Hint="Virt (float hint)"
158-
HorizontalAlignment="Left" Margin="16 0 0 0"
159-
ItemsSource="{Binding LongListToTestComboVirtualization}"
160-
Style="{StaticResource MaterialDesignFloatingHintComboBox}">
161-
<ComboBox.ItemsPanel>
162-
<ItemsPanelTemplate>
163-
<VirtualizingStackPanel />
164-
</ItemsPanelTemplate>
165-
</ComboBox.ItemsPanel>
166-
</ComboBox>
167-
</StackPanel>
168-
169168

170-
<TextBox Grid.Row="4" Grid.Column="1" wpf:TextFieldAssist.Hint="Floating Hint" Style="{StaticResource MaterialDesignFloatingHintTextBox}" Text="Good stuff"
171-
Margin="0 8 0 8"/>
172-
<ComboBox Grid.Row="4" Grid.Column="3" wpf:TextFieldAssist.Hint="Search" IsEditable="True" Style="{StaticResource MaterialDesignFloatingHintComboBox}"
173-
Margin="0 8 0 8">
174-
<ComboBoxItem>Apple</ComboBoxItem>
175-
<ComboBoxItem>Banana</ComboBoxItem>
176-
<ComboBoxItem>Pear</ComboBoxItem>
177-
<ComboBoxItem>Orange</ComboBoxItem>
178-
</ComboBox>
169+
<TextBox Grid.Row="4" Grid.Column="1" wpf:TextFieldAssist.Hint="Floating Hint" Style="{StaticResource MaterialDesignFloatingHintTextBox}" Text="Good stuff"
170+
Margin="0 8 0 8"/>
171+
<ComboBox Grid.Row="4" Grid.Column="3" wpf:TextFieldAssist.Hint="Search" IsEditable="True" Style="{StaticResource MaterialDesignFloatingHintComboBox}"
172+
Margin="0 8 0 8">
173+
<ComboBoxItem>Apple</ComboBoxItem>
174+
<ComboBoxItem>Banana</ComboBoxItem>
175+
<ComboBoxItem>Pear</ComboBoxItem>
176+
<ComboBoxItem>Orange</ComboBoxItem>
177+
</ComboBox>
179178

180-
<DatePicker Grid.Row="5" Grid.Column="1" Width="100" HorizontalAlignment="Left" Margin="0 8 0 8"
181-
wpf:TextFieldAssist.Hint="Pick Date"/>
182-
<wpf:TimePicker Grid.Row="5" Grid.Column="3" VerticalAlignment="Top" Width="100" HorizontalAlignment="Left" Margin="0 8 0 8"
183-
wpf:TextFieldAssist.Hint="Custom hint" />
184-
<wpf:TimePicker Grid.Row="5" Grid.Column="4" Is24Hours="True" x:Name="PresetTimePicker" VerticalAlignment="Top" Width="100" HorizontalAlignment="Left" Margin="0 8 0 8" />
185-
<Slider Grid.Row="6" Grid.Column="1" TickFrequency="5" Orientation="Horizontal" Minimum="1" Maximum="50" Value="25" />
186-
<StackPanel Orientation="Horizontal" Grid.Row="6" Grid.Column="3" Grid.RowSpan="3" >
187-
<Slider TickFrequency="5" TickPlacement="BottomRight" Orientation="Vertical" Minimum="1" Maximum="50" />
188-
<Slider TickFrequency="25" TickPlacement="TopLeft" Orientation="Vertical" Minimum="1" Maximum="50" IsEnabled="False" Margin="24 8 0 8" />
189-
</StackPanel>
190-
<Slider Grid.Row="7" Grid.Column="1" TickFrequency="5" Orientation="Horizontal" TickPlacement="BottomRight" Minimum="1" Maximum="50" Value="25" IsSelectionRangeEnabled="True" />
191-
<Slider Grid.Row="8" Grid.Column="1" TickFrequency="5" Orientation="Horizontal" TickPlacement="BottomRight" Minimum="1" Maximum="50" Value="25" IsEnabled="False" />
179+
<DatePicker Grid.Row="5" Grid.Column="1" Width="100" HorizontalAlignment="Left" Margin="0 8 0 8"
180+
wpf:TextFieldAssist.Hint="Pick Date"/>
181+
<wpf:TimePicker Grid.Row="5" Grid.Column="3" VerticalAlignment="Top" Width="100" HorizontalAlignment="Left" Margin="0 8 0 8"
182+
wpf:TextFieldAssist.Hint="Custom hint" />
183+
<wpf:TimePicker Grid.Row="5" Grid.Column="4" Is24Hours="True" x:Name="PresetTimePicker" VerticalAlignment="Top" Width="100" HorizontalAlignment="Left" Margin="0 8 0 8" />
184+
<Slider Grid.Row="6" Grid.Column="1" TickFrequency="5" Orientation="Horizontal" Minimum="1" Maximum="50" Value="25" />
185+
<StackPanel Orientation="Horizontal" Grid.Row="6" Grid.Column="3" Grid.RowSpan="3" >
186+
<Slider TickFrequency="5" TickPlacement="BottomRight" Orientation="Vertical" Minimum="1" Maximum="50" />
187+
<Slider TickFrequency="25" TickPlacement="TopLeft" Orientation="Vertical" Minimum="1" Maximum="50" IsEnabled="False" Margin="24 8 0 8" />
188+
</StackPanel>
189+
<Slider Grid.Row="7" Grid.Column="1" TickFrequency="5" Orientation="Horizontal" TickPlacement="BottomRight" Minimum="1" Maximum="50" Value="25" IsSelectionRangeEnabled="True" />
190+
<Slider Grid.Row="8" Grid.Column="1" TickFrequency="5" Orientation="Horizontal" TickPlacement="BottomRight" Minimum="1" Maximum="50" Value="25" IsEnabled="False" />
192191

193-
</Grid>
194-
</AdornerDecorator>
192+
</Grid>
195193
</UserControl>

0 commit comments

Comments
 (0)