aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common
diff options
context:
space:
mode:
authorVictoria Plitt <Victoria.Plitt@twine-s.com>2020-08-05 00:28:12 +0300
committerVictoria Plitt <Victoria.Plitt@twine-s.com>2020-08-05 00:28:12 +0300
commit054b6ca55142fae5bb30a9b8f3301f7e71a92296 (patch)
tree13cd2dd8ba72af9b78a98ac56d1785a423be0e89 /Software/Visual_Studio/MachineStudio/Tango.MachineStudio.Common
parent064bb0517aa7f8a1906761ae099cf44b785cff9f (diff)
downloadTango-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.xaml159
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>