diff options
| author | Victoria Plitt <Victoria.Plitt@twine-s.com> | 2020-08-05 00:28:12 +0300 |
|---|---|---|
| committer | Victoria Plitt <Victoria.Plitt@twine-s.com> | 2020-08-05 00:28:12 +0300 |
| commit | 054b6ca55142fae5bb30a9b8f3301f7e71a92296 (patch) | |
| tree | 13cd2dd8ba72af9b78a98ac56d1785a423be0e89 /Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common | |
| parent | 064bb0517aa7f8a1906761ae099cf44b785cff9f (diff) | |
| download | Tango-054b6ca55142fae5bb30a9b8f3301f7e71a92296.tar.gz Tango-054b6ca55142fae5bb30a9b8f3301f7e71a92296.zip | |
Added a new control SearchComboBox. Refactoring code filter of RmlsCollectionView.
Related Work Items: #3286
Diffstat (limited to 'Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common')
| -rw-r--r-- | Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Resources/MaterialDesign.xaml | 159 |
1 files changed, 159 insertions, 0 deletions
diff --git a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Resources/MaterialDesign.xaml b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Resources/MaterialDesign.xaml index 222eecb71..fc9be3292 100644 --- a/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Resources/MaterialDesign.xaml +++ b/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common/Resources/MaterialDesign.xaml @@ -4,6 +4,7 @@ xmlns:editors="clr-namespace:Tango.AutoComplete.Editors;assembly=Tango.AutoComplete" xmlns:dragAndDrop="clr-namespace:Tango.DragAndDrop;assembly=Tango.DragAndDrop" xmlns:sharedConverters="clr-namespace:Tango.SharedUI.Converters;assembly=Tango.SharedUI" + xmlns:controls="clr-namespace:Tango.SharedUI.Controls;assembly=Tango.SharedUI" xmlns:mahApps="http://metro.mahapps.com/winfx/xaml/controls" xmlns:sys="clr-namespace:System;assembly=mscorlib" xmlns:local="clr-namespace:Tango.MachineStudio.Common.Resources" @@ -767,6 +768,164 @@ </Setter> </Style> + <Style TargetType="{x:Type controls:SearchComboBox}" BasedOn="{StaticResource MaterialDesignComboBox}"> + <Setter Property="Background" Value="Transparent"/> + <Setter Property="Template"> + <Setter.Value> + <ControlTemplate TargetType="{x:Type ComboBox}" > + <Grid x:Name="templateRoot" Background="Transparent" SnapsToDevicePixels="True"> + <Grid x:Name="InnerRoot"> + <Grid.ColumnDefinitions> + <ColumnDefinition Width="*" /> + <ColumnDefinition Width="0" MinWidth="{DynamicResource {x:Static SystemParameters.VerticalScrollBarWidthKey}}" /> + </Grid.ColumnDefinitions> + <ToggleButton x:Name="SearchToggleButton" Grid.ColumnSpan="2" Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" + BorderThickness="{TemplateBinding BorderThickness}" IsChecked="{Binding IsDropDownOpen, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}" + Style="{StaticResource MaterialDesignComboBoxToggleButton}"/> + <Grid HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" Margin="{TemplateBinding Padding}" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" UseLayoutRounding="{TemplateBinding UseLayoutRounding}"> + <Grid x:Name="InputRoot" HorizontalAlignment="Left"> + <ContentPresenter x:Name="contentPresenter" Content="{TemplateBinding SelectionBoxItem}" ContentStringFormat="{TemplateBinding SelectionBoxItemStringFormat}" ContentTemplate="{TemplateBinding SelectionBoxItemTemplate}" ContentTemplateSelector="{TemplateBinding ItemTemplateSelector}" IsHitTestVisible="False" /> + <TextBox x:Name="PART_EditableTextBox" IsReadOnly="{Binding IsReadOnly, RelativeSource={RelativeSource TemplatedParent}}" HorizontalAlignment="Left" HorizontalContentAlignment="Stretch" Style="{StaticResource MaterialDesignComboBoxEditableTextBox}" CaretBrush="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=BorderBrush}" Visibility="Collapsed" /> + + <materialDesign:SmartHint x:Name="Hint" + HintProxy="{Binding RelativeSource={RelativeSource TemplatedParent}, Converter={x:Static converters:HintProxyFabricConverter.Instance}}" + FontSize="{TemplateBinding FontSize}" + SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" + UseLayoutRounding="{TemplateBinding UseLayoutRounding}" + UseFloating="{Binding Path=(materialDesign:HintAssist.IsFloating), RelativeSource={RelativeSource TemplatedParent}}" + HintOpacity="{Binding Path=(materialDesign:HintAssist.HintOpacity), RelativeSource={RelativeSource TemplatedParent}}" + Hint="{TemplateBinding materialDesign:HintAssist.Hint}" /> + </Grid> + </Grid> + <Line x:Name="DashedLine" Grid.ColumnSpan="2" VerticalAlignment="Bottom" Visibility="{Binding Path=IsEnabled, RelativeSource={RelativeSource Self}, Converter={StaticResource InverseBoolToVisConverter}}" StrokeThickness="1.25" StrokeDashArray="1,2.5" StrokeDashCap="Round" X1="0" X2="{Binding ActualWidth, ElementName=SearchToggleButton}" Y1="0" Y2="0" Stroke="{TemplateBinding BorderBrush}" Opacity="0.56" /> + <materialDesign:Underline x:Name="Underline" Grid.ColumnSpan="2" IsActive="{Binding ElementName=PART_EditableTextBox, Path=IsKeyboardFocused}" + Visibility="{Binding Path=(materialDesign:TextFieldAssist.DecorationVisibility), RelativeSource={RelativeSource TemplatedParent}}"/> + + <controls:PopupWithKeyboardFocus x:Name="PART_Popup" AllowsTransparency="true" Focusable="False" HorizontalOffset="-11.5" + Tag="{Binding RelativeSource={RelativeSource AncestorType=controls:SearchComboBox}}" IsOpen="{Binding ElementName=SearchToggleButton,Path=IsChecked}" PlacementTarget="{Binding ElementName=templateRoot}" + SnapsToDevicePixels="True" UseLayoutRounding="True" Placement="Custom" PopupAnimation="Fade" VerticalOffset="-10" DefaultVerticalOffset="5" + DownVerticalOffset="{Binding ElementName=templateRoot, Path=ActualHeight}" UpVerticalOffset="15" ClassicMode="{Binding Path=(materialDesign:ComboBoxAssist.ClassicMode), RelativeSource={RelativeSource TemplatedParent}}" + UpContentTemplate="{StaticResource PopupContentUpTemplate}" DownContentTemplate="{StaticResource TransparentPopupContentDownTemplate}" ClassicContentTemplate="{StaticResource PopupContentClassicTemplate}"> + <ContentControl> + <Border Opacity="1" Background="{DynamicResource ComboBox.Floating.Background}" Padding="1" BorderThickness="0" BorderBrush="{TemplateBinding BorderBrush}" MaxHeight="{TemplateBinding MaxDropDownHeight}" Margin=" 0 -4 0 0"> + <Grid > + <Grid.RowDefinitions> + <RowDefinition Height="30"/> + <RowDefinition Height="1*"/> + </Grid.RowDefinitions> + <TextBox x:Name="Search" Grid.Row="0" HorizontalAlignment="Stretch" Text="{Binding RelativeSource={RelativeSource AncestorType=controls:SearchComboBox}, Path=SearchText}" Background="{DynamicResource ComboBox.Floating.Background}" IsReadOnly="False" FontSize="14" TextAlignment="Left" VerticalAlignment="Center" VerticalContentAlignment="Center" > + <TextBox.Style> + <Style TargetType="TextBox"/> + </TextBox.Style> + </TextBox> + <ScrollViewer Grid.Row="1" Background="{DynamicResource ComboBox.Floating.Background}" VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Hidden"> + + <ItemsPresenter x:Name="ItemsPresenter" KeyboardNavigation.DirectionalNavigation="Contained"/> + + </ScrollViewer> + </Grid> + </Border> + </ContentControl> + </controls:PopupWithKeyboardFocus> + </Grid> + </Grid> + <ControlTemplate.Triggers> + <Trigger SourceName="PART_Popup" Property="PopupPlacement" Value="{x:Static materialDesign:ComboBoxPopupPlacement.Classic}"> + <Setter Property="ItemContainerStyle" Value="{StaticResource MaterialDesignComboBoxItemStyle}" /> + </Trigger> + <Trigger SourceName="PART_Popup" Property="IsOpen" Value="True"> + <Setter Property="Background" TargetName="templateRoot" Value="Transparent" /> + </Trigger> + <Trigger Property="IsEnabled" Value="False"> + <Setter TargetName="templateRoot" Property="Opacity" Value="0.56"/> + <Setter TargetName="SearchToggleButton" Property="BorderBrush" Value="Transparent"/> + </Trigger> + <Trigger Property="IsEditable" Value="True"> + <Setter TargetName="PART_EditableTextBox" Property="Visibility" Value="Visible" /> + <Setter TargetName="Underline" Property="Visibility" Value="{Binding Path=(materialDesign:TextFieldAssist.DecorationVisibility), RelativeSource={RelativeSource TemplatedParent}}" /> + <Setter TargetName="contentPresenter" Property="Visibility" Value="Collapsed" /> + </Trigger> + <Trigger Property="materialDesign:HintAssist.IsFloating" Value="True"> + <Setter TargetName="InnerRoot" Property="Margin" Value="0 11.5 0 0" /> + </Trigger> + <MultiTrigger> + <MultiTrigger.Conditions> + <Condition Property="IsEditable" Value="False"/> + <Condition Property="IsDropDownOpen" Value="True"/> + </MultiTrigger.Conditions> + <Setter TargetName="Underline" Property="Visibility" Value="Hidden"/> + <Setter TargetName="SearchToggleButton" Property="BorderBrush" Value="Transparent"/> + </MultiTrigger> + <MultiTrigger> + <MultiTrigger.Conditions> + <Condition SourceName="Hint" Property="IsContentNullOrEmpty" Value="False" /> + <Condition Property="materialDesign:HintAssist.IsFloating" Value="True" /> + <Condition Property="IsKeyboardFocusWithin" Value="True" /> + </MultiTrigger.Conditions> + <Setter TargetName="Hint" Property="Foreground" Value="{DynamicResource PrimaryHueMidBrush}" /> + <Setter TargetName="Hint" Property="HintOpacity" Value="1" /> + </MultiTrigger> + <MultiTrigger> + <MultiTrigger.Conditions> + <Condition Property="materialDesign:HintAssist.IsFloating" Value="True" /> + <!--<Condition SourceName="Hint" Property="IsHintInFloatingPosition" Value="True" />--> + <Condition Property="IsKeyboardFocusWithin" Value="True" /> + </MultiTrigger.Conditions> + <Setter TargetName="Hint" Property="Foreground" Value="{DynamicResource PrimaryHueMidBrush}" /> + <Setter TargetName="Hint" Property="HintOpacity" Value="1" /> + </MultiTrigger> + <MultiTrigger> + <MultiTrigger.Conditions> + <Condition SourceName="Hint" Property="IsContentNullOrEmpty" Value="False" /> + <Condition SourceName="PART_EditableTextBox" Property="IsKeyboardFocused" Value="True" /> + </MultiTrigger.Conditions> + <Setter TargetName="Hint" Property="Foreground" Value="{DynamicResource PrimaryHueMidBrush}" /> + <Setter TargetName="Hint" Property="HintOpacity" Value="1" /> + </MultiTrigger> + <MultiTrigger> + <MultiTrigger.Conditions> + <Condition SourceName="Hint" Property="IsContentNullOrEmpty" Value="False" /> + <Condition Property="IsDropDownOpen" Value="True" /> + </MultiTrigger.Conditions> + <Setter TargetName="Hint" Property="Foreground" Value="{DynamicResource PrimaryHueMidBrush}" /> + <Setter TargetName="Hint" Property="HintOpacity" Value="1" /> + </MultiTrigger> + <MultiTrigger> + <MultiTrigger.Conditions> + <Condition Property="IsGrouping" Value="true" /> + <Condition Property="VirtualizingPanel.IsVirtualizingWhenGrouping" Value="false" /> + </MultiTrigger.Conditions> + <Setter Property="ScrollViewer.CanContentScroll" Value="false" /> + </MultiTrigger> + <Trigger Property="IsKeyboardFocused" Value="true"> + <Setter TargetName="Underline" Property="IsActive" Value="True"/> + </Trigger> + <Trigger Property="Validation.HasError" Value="true"> + <Setter Property="BorderBrush" Value="{DynamicResource ValidationErrorBrush}"/> + <Setter TargetName="Underline" Property="Background" Value="{DynamicResource ValidationErrorBrush}"/> + </Trigger> + <MultiTrigger> + <MultiTrigger.Conditions> + <Condition Property="IsMouseOver" Value="true" /> + <Condition Property="Validation.HasError" Value="true" /> + </MultiTrigger.Conditions> + <Setter Property="BorderBrush" Value="{DynamicResource ValidationErrorBrush}"/> + <Setter TargetName="Underline" Property="Background" Value="{DynamicResource ValidationErrorBrush}"/> + </MultiTrigger> + <MultiTrigger> + <MultiTrigger.Conditions> + <Condition Property="IsMouseOver" Value="true" /> + <Condition Property="Validation.HasError" Value="false" /> + </MultiTrigger.Conditions> + <Setter Property="BorderBrush" Value="{DynamicResource PrimaryHueMidBrush}"/> + <Setter TargetName="Underline" Property="Background" Value="{DynamicResource PrimaryHueMidBrush}"/> + </MultiTrigger> + </ControlTemplate.Triggers> + </ControlTemplate> + </Setter.Value> + </Setter> + </Style> + <Style TargetType="Window"> <Setter Property="FontFamily" Value="{StaticResource flexo}"></Setter> </Style> |
