Themes/MaterialDesignTheme.ComboBox.xaml
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:converters="clr-namespace:MaterialDesignThemes.Wpf.Converters" xmlns:convertersInternal="clr-namespace:MaterialDesignThemes.Wpf.Converters.Internal" xmlns:internal="clr-namespace:MaterialDesignThemes.Wpf.Internal" xmlns:system="clr-namespace:System;assembly=mscorlib" xmlns:wpf="clr-namespace:MaterialDesignThemes.Wpf"> <ResourceDictionary.MergedDictionaries> <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.Button.xaml" /> <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.Shadows.xaml" /> <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.ValidationErrorTemplate.xaml" /> <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.Menu.xaml" /> </ResourceDictionary.MergedDictionaries> <system:String x:Key="AllowCollapse">AllowCollapse</system:String> <ControlTemplate x:Key="PopupContentClassicTemplate" TargetType="ContentControl"> <ControlTemplate.Resources> <system:Double x:Key="PopupTopBottomMargin">8</system:Double> </ControlTemplate.Resources> <Grid MinWidth="{Binding Path=ContentMinWidth, RelativeSource={RelativeSource AncestorType=wpf:ComboBoxPopup}}" Margin="{Binding Path=ContentMargin, RelativeSource={RelativeSource AncestorType=wpf:ComboBoxPopup}}"> <Grid.RowDefinitions> <RowDefinition Height="*" /> </Grid.RowDefinitions> <Border Background="Transparent" BorderBrush="{DynamicResource MaterialDesignShadowBrush}" BorderThickness="1" CornerRadius="{Binding Path=CornerRadius, RelativeSource={RelativeSource AncestorType=wpf:ComboBoxPopup}}"> <Border.Effect> <BlurEffect Radius="6" /> </Border.Effect> </Border> <Border Margin="1" Background="{Binding ElementName=PART_Popup, Path=Background}" CornerRadius="{Binding Path=CornerRadius, RelativeSource={RelativeSource AncestorType=wpf:ComboBoxPopup}}"> <Grid SnapsToDevicePixels="True"> <Grid.RowDefinitions> <RowDefinition Height="Auto" /> <RowDefinition Height="*" /> <RowDefinition Height="Auto" /> </Grid.RowDefinitions> <Border Grid.Row="0" Height="{StaticResource PopupTopBottomMargin}" /> <ContentPresenter Grid.Row="1" /> <Border Grid.Row="2" Height="{StaticResource PopupTopBottomMargin}" /> </Grid> </Border> </Grid> </ControlTemplate> <Style x:Key="MaterialDesignComboBoxEditableTextBox" TargetType="{x:Type TextBox}"> <Setter Property="AllowDrop" Value="True" /> <Setter Property="ContextMenu" Value="{StaticResource MaterialDesignDefaultContextMenu}" /> <Setter Property="FocusVisualStyle" Value="{x:Null}" /> <Setter Property="MinHeight" Value="0" /> <Setter Property="MinWidth" Value="0" /> <Setter Property="OverridesDefaultStyle" Value="True" /> <Setter Property="ScrollViewer.PanningMode" Value="VerticalFirst" /> <Setter Property="Stylus.IsFlicksEnabled" Value="False" /> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type TextBox}"> <ScrollViewer x:Name="PART_ContentHost" wpf:ScrollViewerAssist.IgnorePadding="True" Focusable="False" HorizontalScrollBarVisibility="Hidden" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" UseLayoutRounding="{TemplateBinding UseLayoutRounding}" VerticalScrollBarVisibility="Hidden" /> </ControlTemplate> </Setter.Value> </Setter> </Style> <ControlTemplate x:Key="MaterialDesignComboBoxItemTemplate" TargetType="{x:Type ComboBoxItem}"> <Grid x:Name="GridWrapper"> <Grid.RowDefinitions> <RowDefinition Height="Auto" /> </Grid.RowDefinitions> <VisualStateManager.VisualStateGroups> <VisualStateGroup Name="CommonStates"> <VisualStateGroup.Transitions> <VisualTransition GeneratedDuration="0:0:0.3" To="Normal"> <VisualTransition.GeneratedEasingFunction> <CircleEase EasingMode="EaseOut" /> </VisualTransition.GeneratedEasingFunction> </VisualTransition> </VisualStateGroup.Transitions> <VisualState Name="Normal" /> <VisualState Name="MouseOver"> <Storyboard> <DoubleAnimation Storyboard.TargetName="MouseOverBorder" Storyboard.TargetProperty="Opacity" To="0.1" Duration="0" /> </Storyboard> </VisualState> </VisualStateGroup> <VisualStateGroup Name="SelectionStates"> <VisualStateGroup.Transitions> <VisualTransition GeneratedDuration="0:0:0.3" /> </VisualStateGroup.Transitions> <VisualState Name="Selected"> <Storyboard> <DoubleAnimation Storyboard.TargetName="SelectedBorder" Storyboard.TargetProperty="Opacity" To="0.18" Duration="0" /> </Storyboard> </VisualState> <VisualState Name="Unselected" /> </VisualStateGroup> <VisualStateGroup Name="FocusStates"> <VisualStateGroup.Transitions> <VisualTransition GeneratedDuration="0:0:0.3" To="Unfocused" /> </VisualStateGroup.Transitions> <VisualState Name="Focused"> <Storyboard> <DoubleAnimation Storyboard.TargetName="MouseOverBorder" Storyboard.TargetProperty="Opacity" To="0.1" Duration="0" /> </Storyboard> </VisualState> <VisualState Name="Unfocused" /> </VisualStateGroup> </VisualStateManager.VisualStateGroups> <Border x:Name="BackBorder" Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" SnapsToDevicePixels="True" /> <Border x:Name="MouseOverBorder" Background="{TemplateBinding Foreground, Converter={x:Static converters:BrushRoundConverter.Instance}}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Opacity="0" SnapsToDevicePixels="True" /> <Border x:Name="SelectedBorder" Background="{TemplateBinding Foreground, Converter={x:Static converters:BrushRoundConverter.Instance}}" Opacity="0" RenderTransformOrigin="0.5,0.5" /> <wpf:Ripple Padding="{TemplateBinding Padding}" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}" VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}" Content="{TemplateBinding Content}" ContentTemplate="{TemplateBinding ContentTemplate}" ContentTemplateSelector="{TemplateBinding ContentTemplateSelector}" Feedback="{TemplateBinding Foreground, Converter={x:Static converters:BrushRoundConverter.Instance}}" Focusable="False" RecognizesAccessKey="False" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" /> </Grid> <ControlTemplate.Triggers> <Trigger Property="IsEnabled" Value="False"> <Setter TargetName="GridWrapper" Property="Opacity" Value="{x:Static wpf:Constants.TextBoxNotEnabledOpacity}" /> </Trigger> <MultiTrigger> <MultiTrigger.Conditions> <Condition Property="Tag" Value="{StaticResource AllowCollapse}" /> <Condition Property="IsSelected" Value="True" /> </MultiTrigger.Conditions> <Setter Property="Height" Value="0" /> </MultiTrigger> </ControlTemplate.Triggers> </ControlTemplate> <Style x:Key="MaterialDesignComboBoxItemStyle" TargetType="{x:Type ComboBoxItem}"> <Style.Resources> <Style x:Key="FocusVisual"> <Setter Property="Control.Template"> <Setter.Value> <ControlTemplate> <Rectangle Margin="2,2,2,2" SnapsToDevicePixels="True" Stroke="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}" StrokeDashArray="1 2" StrokeThickness="1" /> </ControlTemplate> </Setter.Value> </Setter> </Style> </Style.Resources> <Setter Property="Background" Value="Transparent" /> <Setter Property="BorderBrush" Value="Transparent" /> <Setter Property="BorderThickness" Value="0" /> <Setter Property="FocusVisualStyle" Value="{StaticResource FocusVisual}" /> <Setter Property="HorizontalContentAlignment" Value="{Binding HorizontalContentAlignment, RelativeSource={RelativeSource AncestorType={x:Type ItemsControl}}}" /> <Setter Property="Padding" Value="16,8" /> <Setter Property="SnapsToDevicePixels" Value="True" /> <Setter Property="Template" Value="{StaticResource MaterialDesignComboBoxItemTemplate}" /> <Setter Property="VerticalContentAlignment" Value="{Binding VerticalContentAlignment, RelativeSource={RelativeSource AncestorType={x:Type ItemsControl}}}" /> </Style> <Style x:Key="MaterialDesignComboBoxItemSelectedCollapsedStyle" TargetType="{x:Type ComboBoxItem}" BasedOn="{StaticResource MaterialDesignComboBoxItemStyle}"> <Setter Property="Tag" Value="{StaticResource AllowCollapse}" /> </Style> <Style x:Key="MaterialDesignComboBoxToggleButton" TargetType="{x:Type ToggleButton}"> <Setter Property="Background" Value="Transparent" /> <Setter Property="ClickMode" Value="Press" /> <Setter Property="Focusable" Value="False" /> <Setter Property="Foreground" Value="{Binding RelativeSource={RelativeSource AncestorType={x:Type FrameworkElement}}, Path=(TextElement.Foreground)}" /> <Setter Property="IsTabStop" Value="False" /> <Setter Property="OverridesDefaultStyle" Value="True" /> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type ToggleButton}"> <Grid> <Border x:Name="ToggleOuterBorder" Padding="{TemplateBinding Padding}" Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}"> <Border x:Name="splitBorder" Margin="0" HorizontalAlignment="Right" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" BorderBrush="Transparent" BorderThickness="0"> <Path x:Name="arrow" Width="{x:Static wpf:Constants.ComboBoxArrowSize}" Height="{x:Static wpf:Constants.ComboBoxArrowSize}" Margin="0" HorizontalAlignment="Right" VerticalAlignment="Center" Data="M7,10L12,15L17,10H7Z" Fill="{TemplateBinding Foreground}" RenderTransformOrigin="0.5,0.5" Stretch="Uniform" /> </Border> </Border> </Grid> <ControlTemplate.Triggers> <MultiDataTrigger> <MultiDataTrigger.Conditions> <Condition Binding="{Binding IsMouseOver, RelativeSource={RelativeSource Self}}" Value="True" /> <Condition Binding="{Binding IsEditable, RelativeSource={RelativeSource AncestorType={x:Type ComboBox}}}" Value="False" /> </MultiDataTrigger.Conditions> </MultiDataTrigger> <MultiDataTrigger> <MultiDataTrigger.Conditions> <Condition Binding="{Binding IsMouseOver, RelativeSource={RelativeSource Self}}" Value="True" /> <Condition Binding="{Binding IsEditable, RelativeSource={RelativeSource AncestorType={x:Type ComboBox}}}" Value="True" /> </MultiDataTrigger.Conditions> <Setter Property="BorderBrush" Value="{Binding Path=(wpf:TextFieldAssist.UnderlineBrush), RelativeSource={RelativeSource AncestorType={x:Type ComboBox}}}" /> </MultiDataTrigger> <Trigger Property="IsPressed" Value="True"> <Setter TargetName="arrow" Property="Fill" Value="{DynamicResource MaterialDesign.Brush.Primary}" /> </Trigger> <Trigger Property="IsEnabled" Value="False"> <Setter TargetName="arrow" Property="Fill" Value="{DynamicResource MaterialDesign.Brush.ComboBox.Disabled}" /> </Trigger> <MultiDataTrigger> <MultiDataTrigger.Conditions> <Condition Binding="{Binding IsEnabled, RelativeSource={RelativeSource Self}}" Value="False" /> <Condition Binding="{Binding IsEditable, RelativeSource={RelativeSource AncestorType={x:Type ComboBox}}}" Value="False" /> </MultiDataTrigger.Conditions> <Setter TargetName="ToggleOuterBorder" Property="BorderBrush" Value="Transparent" /> </MultiDataTrigger> <MultiDataTrigger> <MultiDataTrigger.Conditions> <Condition Binding="{Binding IsEnabled, RelativeSource={RelativeSource Self}}" Value="False" /> <Condition Binding="{Binding IsEditable, RelativeSource={RelativeSource AncestorType={x:Type ComboBox}}}" Value="True" /> </MultiDataTrigger.Conditions> <Setter TargetName="ToggleOuterBorder" Property="BorderBrush" Value="Transparent" /> <Setter TargetName="splitBorder" Property="BorderBrush" Value="{DynamicResource MaterialDesign.Brush.ComboBox.Disabled}" /> </MultiDataTrigger> <Trigger Property="IsChecked" Value="True"> <Setter TargetName="arrow" Property="RenderTransform"> <Setter.Value> <ScaleTransform ScaleY="-1" /> </Setter.Value> </Setter> </Trigger> </ControlTemplate.Triggers> </ControlTemplate> </Setter.Value> </Setter> </Style> <ControlTemplate x:Key="MaterialDesignFloatingHintComboBoxTemplate" TargetType="{x:Type ComboBox}"> <ControlTemplate.Resources> <convertersInternal:TextFieldClearButtonVisibilityConverter x:Key="ClearButtonVisibilityConverter" ContentEmptyVisibility="Collapsed" /> <converters:ThicknessCloneConverter x:Key="HelperTextMarginConverter" CloneEdges="Left" /> <converters:TextFieldPrefixTextVisibilityConverter x:Key="PrefixSuffixTextVisibilityConverter" HiddenState="Collapsed" /> <converters:MathConverter x:Key="DivisionConverter" Operation="Divide" Offset="1.5" /> <converters:BooleanToDashStyleConverter x:Key="BooleanToDashStyleConverter" TrueValue="{x:Static DashStyles.Solid}" /> </ControlTemplate.Resources> <Grid> <AdornerDecorator> <Border x:Name="OuterBorder" wpf:BottomDashedLineAdorner.IsAttached="False" wpf:BottomDashedLineAdorner.Brush="{TemplateBinding BorderBrush}" wpf:BottomDashedLineAdorner.Thickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" CornerRadius="{Binding Path=(wpf:TextFieldAssist.TextFieldCornerRadius), RelativeSource={RelativeSource TemplatedParent}}" SnapsToDevicePixels="True"> <Grid x:Name="ContentGrid"> <Grid.ColumnDefinitions> <ColumnDefinition Width="*" /> <ColumnDefinition Width="0" MinWidth="{DynamicResource {x:Static SystemParameters.VerticalScrollBarWidthKey}}" /> </Grid.ColumnDefinitions> <ToggleButton x:Name="toggleButton" Foreground="{TemplateBinding Foreground}" Grid.ColumnSpan="2" Opacity="{TemplateBinding wpf:HintAssist.HintOpacity}" Padding="{TemplateBinding Padding}" VerticalContentAlignment="Center" BorderBrush="{TemplateBinding BorderBrush}" IsChecked="{Binding IsDropDownOpen, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}" Style="{StaticResource MaterialDesignComboBoxToggleButton}" /> <Grid x:Name="InnerRoot" Grid.Row="0" Grid.Column="0" HorizontalAlignment="Stretch" Margin="{TemplateBinding Padding}" MinHeight="16" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" UseLayoutRounding="{TemplateBinding UseLayoutRounding}"> <Grid.ColumnDefinitions> <ColumnDefinition Width="Auto" /> <ColumnDefinition Width="Auto" /> <ColumnDefinition Width="*" /> <ColumnDefinition Width="Auto" /> <ColumnDefinition Width="Auto" /> <ColumnDefinition Width="Auto" /> </Grid.ColumnDefinitions> <wpf:PackIcon x:Name="LeadingPackIcon" Grid.Column="0" Width="{TemplateBinding wpf:TextFieldAssist.LeadingIconSize}" Height="{TemplateBinding wpf:TextFieldAssist.LeadingIconSize}" Margin="0,0,6,0" VerticalAlignment="Center" Kind="{TemplateBinding wpf:TextFieldAssist.LeadingIcon}" Opacity="{TemplateBinding wpf:HintAssist.HintOpacity}" Visibility="{TemplateBinding wpf:TextFieldAssist.HasLeadingIcon, Converter={x:Static converters:BooleanToVisibilityConverter.CollapsedInstance}}" /> <TextBlock x:Name="PrefixTextBlock" Grid.Column="1" Margin="0,0,2,0" FontSize="{TemplateBinding FontSize}" Opacity="{TemplateBinding wpf:HintAssist.HintOpacity}" Text="{TemplateBinding wpf:TextFieldAssist.PrefixText}" VerticalAlignment="Center"> <TextBlock.Visibility> <MultiBinding Converter="{StaticResource PrefixSuffixTextVisibilityConverter}"> <Binding ElementName="Hint" Path="IsHintInFloatingPosition" /> <Binding Path="(wpf:TextFieldAssist.PrefixText)" RelativeSource="{RelativeSource TemplatedParent}" /> <Binding Path="(wpf:TextFieldAssist.PrefixTextVisibility)" RelativeSource="{RelativeSource TemplatedParent}" /> <Binding Path="IsKeyboardFocusWithin" ElementName="PART_EditableTextBox" /> <Binding Path="IsEditable" RelativeSource="{RelativeSource TemplatedParent}" /> </MultiBinding> </TextBlock.Visibility> </TextBlock> <ContentPresenter x:Name="contentPresenter" Grid.Column="2" Margin="{TemplateBinding wpf:TextFieldAssist.TextBoxViewMargin}" Content="{TemplateBinding SelectionBoxItem}" ContentStringFormat="{TemplateBinding SelectionBoxItemStringFormat}" ContentTemplate="{TemplateBinding SelectionBoxItemTemplate}" ContentTemplateSelector="{TemplateBinding ItemTemplateSelector}" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" IsHitTestVisible="False" VerticalAlignment="Center"/> <TextBox x:Name="PART_EditableTextBox" Grid.Column="2" MinWidth="10" HorizontalAlignment="Stretch" HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}" CaretBrush="{TemplateBinding Foreground}" IsReadOnly="{TemplateBinding IsReadOnly}" Focusable="{TemplateBinding IsEditable}" MaxLength="{Binding Path=(wpf:ComboBoxAssist.MaxLength), RelativeSource={RelativeSource Mode=TemplatedParent}}" Style="{StaticResource MaterialDesignComboBoxEditableTextBox}" VerticalAlignment="Center" Visibility="Collapsed" /> <wpf:SmartHint x:Name="Hint" Grid.Column="1" Grid.ColumnSpan="3" VerticalAlignment="Center" HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}" VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}" FloatingOffset="{TemplateBinding wpf:HintAssist.FloatingOffset}" FloatingScale="{TemplateBinding wpf:HintAssist.FloatingScale}" FontFamily="{TemplateBinding wpf:HintAssist.FontFamily}" FontSize="{TemplateBinding FontSize}" HintOpacity="{TemplateBinding wpf:HintAssist.HintOpacity}" HintProxy="{Binding RelativeSource={RelativeSource TemplatedParent}, Converter={x:Static converters:HintProxyFabricConverter.Instance}}" UseFloating="{TemplateBinding wpf:HintAssist.IsFloating}" FloatingTarget="{Binding ElementName=PART_EditableTextBox}" HintHost="{Binding RelativeSource={RelativeSource TemplatedParent}}" wpf:HintAssist.Background="{TemplateBinding wpf:HintAssist.Background}" wpf:HintAssist.HintPaddingBrush="{TemplateBinding wpf:HintAssist.HintPaddingBrush}" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" UseLayoutRounding="{TemplateBinding UseLayoutRounding}"> <wpf:SmartHint.InitialHorizontalOffset> <MultiBinding Converter="{x:Static converters:FloatingHintInitialHorizontalOffsetConverter.Instance}"> <Binding ElementName="PrefixTextBlock" Path="ActualWidth" /> <Binding ElementName="PrefixTextBlock" Path="Margin" /> <Binding ElementName="SuffixTextBlock" Path="ActualWidth" /> <Binding ElementName="SuffixTextBlock" Path="Margin" /> <Binding RelativeSource="{RelativeSource TemplatedParent}" Path="(wpf:TextFieldAssist.PrefixTextVisibility)" /> <Binding RelativeSource="{RelativeSource TemplatedParent}" Path="(wpf:TextFieldAssist.SuffixTextVisibility)" /> <Binding RelativeSource="{RelativeSource TemplatedParent}" Path="(wpf:TextFieldAssist.PrefixTextHintBehavior)" /> <Binding RelativeSource="{RelativeSource TemplatedParent}" Path="(wpf:TextFieldAssist.SuffixTextHintBehavior)" /> <Binding RelativeSource="{RelativeSource TemplatedParent}" Path="HorizontalContentAlignment" /> <Binding Path="IsEditable" RelativeSource="{RelativeSource TemplatedParent}" /> </MultiBinding> </wpf:SmartHint.InitialHorizontalOffset> <wpf:SmartHint.Margin> <MultiBinding Converter="{x:Static converters:FloatingHintMarginConverter.Instance}"> <Binding RelativeSource="{RelativeSource TemplatedParent}" Path="(wpf:HintAssist.IsFloating)" /> <Binding ElementName="PART_EditableTextBox" Path="IsKeyboardFocusWithin" /> <Binding Path="IsEditable" RelativeSource="{RelativeSource TemplatedParent}" /> <Binding ElementName="PrefixTextBlock" Path="ActualWidth" /> <Binding ElementName="PrefixTextBlock" Path="Margin" /> <Binding ElementName="SuffixTextBlock" Path="ActualWidth" /> <Binding ElementName="SuffixTextBlock" Path="Margin" /> <Binding RelativeSource="{RelativeSource TemplatedParent}" Path="(wpf:TextFieldAssist.PrefixTextVisibility)" /> <Binding RelativeSource="{RelativeSource TemplatedParent}" Path="(wpf:TextFieldAssist.SuffixTextVisibility)" /> </MultiBinding> </wpf:SmartHint.Margin> <wpf:SmartHint.Hint> <Border x:Name="HintBackgroundBorder" Background="{TemplateBinding wpf:HintAssist.Background}" CornerRadius="2"> <ContentPresenter x:Name="HintWrapper" Content="{TemplateBinding wpf:HintAssist.Hint}" /> </Border> </wpf:SmartHint.Hint> </wpf:SmartHint> <TextBlock x:Name="SuffixTextBlock" Grid.Column="3" Margin="2,0,0,0" FontSize="{TemplateBinding FontSize}" Opacity="{TemplateBinding wpf:HintAssist.HintOpacity}" Text="{TemplateBinding wpf:TextFieldAssist.SuffixText}" VerticalAlignment="Center"> <TextBlock.Visibility> <MultiBinding Converter="{StaticResource PrefixSuffixTextVisibilityConverter}"> <Binding ElementName="Hint" Path="IsHintInFloatingPosition" /> <Binding Path="(wpf:TextFieldAssist.SuffixText)" RelativeSource="{RelativeSource TemplatedParent}" /> <Binding Path="(wpf:TextFieldAssist.SuffixTextVisibility)" RelativeSource="{RelativeSource TemplatedParent}" /> <Binding Path="IsKeyboardFocusWithin" ElementName="PART_EditableTextBox" /> <Binding Path="IsEditable" RelativeSource="{RelativeSource TemplatedParent}" /> </MultiBinding> </TextBlock.Visibility> </TextBlock> <wpf:PackIcon x:Name="TrailingPackIcon" Grid.Column="4" Width="{TemplateBinding wpf:TextFieldAssist.TrailingIconSize}" Height="{TemplateBinding wpf:TextFieldAssist.TrailingIconSize}" Margin="4,0,0,0" VerticalAlignment="Center" Kind="{TemplateBinding wpf:TextFieldAssist.TrailingIcon}" Opacity="{TemplateBinding wpf:HintAssist.HintOpacity}" Visibility="{TemplateBinding wpf:TextFieldAssist.HasTrailingIcon, Converter={x:Static converters:BooleanToVisibilityConverter.CollapsedInstance}}" /> <Button x:Name="PART_ClearButton" Grid.Column="5" Height="{TemplateBinding wpf:TextFieldAssist.ClearButtonSize}" Width="{TemplateBinding wpf:TextFieldAssist.ClearButtonSize}" Opacity="{TemplateBinding wpf:HintAssist.HintOpacity}" Padding="2,0,0,0" Command="{x:Static internal:ClearText.ClearCommand}" Focusable="False" Foreground="{TemplateBinding Foreground}" VerticalAlignment="Center" Style="{StaticResource MaterialDesignToolButton}"> <Button.Visibility> <MultiBinding Converter="{StaticResource ClearButtonVisibilityConverter}"> <Binding Path="(wpf:TextFieldAssist.HasClearButton)" RelativeSource="{RelativeSource TemplatedParent}" /> <Binding ElementName="Hint" Path="IsContentNullOrEmpty" /> <Binding Path="IsEditable" RelativeSource="{RelativeSource TemplatedParent}" /> </MultiBinding> </Button.Visibility> <wpf:PackIcon x:Name="ClearButtonIcon" Margin="0" Kind="CloseCircle" Height="auto" Width="auto" /> </Button> </Grid> </Grid> </Border> </AdornerDecorator> <wpf:Underline x:Name="Underline" VerticalAlignment="Bottom" Background="{TemplateBinding wpf:TextFieldAssist.UnderlineBrush}" CornerRadius="{TemplateBinding wpf:TextFieldAssist.UnderlineCornerRadius}" Visibility="{TemplateBinding wpf:TextFieldAssist.DecorationVisibility}" /> <Canvas x:Name="HelperTextWrapper" IsHitTestVisible="False" Margin="{TemplateBinding Padding, Converter={StaticResource HelperTextMarginConverter}}" VerticalAlignment="Bottom"> <TextBlock x:Name="HelperTextTextBlock" Canvas.Top="2" MaxWidth="{Binding ActualWidth, ElementName=toggleButton}" FontSize="{TemplateBinding wpf:HintAssist.HelperTextFontSize}" Opacity="{TemplateBinding wpf:HintAssist.HintOpacity}" Style="{Binding Path=(wpf:HintAssist.HelperTextStyle), RelativeSource={RelativeSource TemplatedParent}}" Text="{TemplateBinding wpf:HintAssist.HelperText}" /> </Canvas> <wpf:ComboBoxPopup x:Name="PART_Popup" Grid.Column="0" wpf:ColorZoneAssist.Mode="{Binding Path=(wpf:ColorZoneAssist.Mode), RelativeSource={RelativeSource TemplatedParent}}" AllowsTransparency="True" ClassicContentTemplate="{StaticResource PopupContentClassicTemplate}" ContentMargin="6,0,6,6" ContentMinWidth="{Binding Path=ActualWidth, ElementName=OuterBorder}" CustomPopupPlacementCallbackOverride="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=(wpf:ComboBoxAssist.CustomPopupPlacementCallback)}" DefaultVerticalOffset="-1" DownVerticalOffset="0" Focusable="False" HorizontalOffset="0" IsOpen="{Binding IsDropDownOpen, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}" Placement="Custom" PlacementTarget="{Binding ElementName=OuterBorder}" PopupAnimation="Fade" RelativeHorizontalOffset="-6" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" Tag="{DynamicResource MaterialDesign.Brush.Background}" UpVerticalOffset="15" UseLayoutRounding="{TemplateBinding UseLayoutRounding}" VerticalOffset="0"> <wpf:ComboBoxPopup.Background> <MultiBinding Converter="{x:Static converters:FallbackBrushConverter.Instance}"> <Binding Path="Background" RelativeSource="{RelativeSource TemplatedParent}" /> <Binding ElementName="PART_Popup" Path="Tag" /> </MultiBinding> </wpf:ComboBoxPopup.Background> <wpf:ComboBoxPopup.Style> <Style TargetType="wpf:ComboBoxPopup"> <Setter Property="CornerRadius" Value="0,0,4,4" /> <Style.Triggers> <Trigger Property="OpenDirection" Value="Up"> <Setter Property="CornerRadius" Value="4,4,0,0" /> </Trigger> </Style.Triggers> </Style> </wpf:ComboBoxPopup.Style> <ContentControl> <ScrollViewer MinHeight="1" MaxHeight="{TemplateBinding MaxDropDownHeight}" Background="{Binding Background, ElementName=PART_Popup}"> <ItemsPresenter x:Name="ItemsPresenter" KeyboardNavigation.DirectionalNavigation="Contained" /> </ScrollViewer> </ContentControl> </wpf:ComboBoxPopup> </Grid> <ControlTemplate.Triggers> <Trigger Property="IsEditable" Value="True"> <Setter TargetName="PART_EditableTextBox" Property="Visibility" Value="Visible" /> <Setter TargetName="Underline" Property="Visibility" Value="{Binding Path=(wpf:TextFieldAssist.DecorationVisibility), RelativeSource={RelativeSource TemplatedParent}}" /> <Setter TargetName="contentPresenter" Property="Visibility" Value="Collapsed" /> </Trigger> <MultiTrigger> <MultiTrigger.Conditions> <Condition Property="IsGrouping" Value="True" /> <Condition Property="VirtualizingPanel.IsVirtualizingWhenGrouping" Value="False" /> </MultiTrigger.Conditions> <Setter Property="ScrollViewer.CanContentScroll" Value="False" /> </MultiTrigger> <!-- Outlined combo box --> <Trigger Property="wpf:TextFieldAssist.HasOutlinedTextField" Value="True"> <Setter TargetName="PART_Popup" Property="ContentMargin" Value="6,0,6,6" /> <Setter TargetName="PART_Popup" Property="ContentMinWidth" Value="{Binding Path=ActualWidth, ElementName=OuterBorder}" /> <Setter TargetName="PART_Popup" Property="CornerRadius" Value="{Binding Path=(wpf:TextFieldAssist.TextFieldCornerRadius), RelativeSource={RelativeSource TemplatedParent}}" /> <Setter TargetName="PART_Popup" Property="DefaultVerticalOffset" Value="0" /> <Setter TargetName="PART_Popup" Property="DownVerticalOffset" Value="0" /> <Setter TargetName="PART_Popup" Property="RelativeHorizontalOffset" Value="-6" /> <Setter TargetName="PART_Popup" Property="UpVerticalOffset" Value="0" /> <Setter TargetName="Underline" Property="Visibility" Value="Collapsed" /> <Setter TargetName="OuterBorder" Property="CornerRadius" Value="{Binding Path=(wpf:TextFieldAssist.TextFieldCornerRadius), RelativeSource={RelativeSource TemplatedParent}}" /> <Setter TargetName="Hint" Property="FloatingTarget" Value="{Binding ElementName=OuterBorder}" /> <Setter TargetName="Hint" Property="FloatingAlignment" Value="Center" /> <Setter TargetName="Hint" Property="FloatingMargin" Value="4,0" /> <Setter TargetName="Hint" Property="InitialVerticalOffset" Value="{Binding ElementName=Hint, Path=ActualHeight, Converter={StaticResource DivisionConverter}, ConverterParameter=2}" /> </Trigger> <MultiTrigger> <MultiTrigger.Conditions> <Condition Property="wpf:TextFieldAssist.HasOutlinedTextField" Value="True" /> <Condition Property="wpf:HintAssist.IsFloating" Value="True" /> <Condition SourceName="Hint" Property="IsHintInFloatingPosition" Value="True" /> </MultiTrigger.Conditions> <Setter TargetName="Hint" Property="wpf:HintAssist.ApplyHintPaddingBrush" Value="True" /> </MultiTrigger> <!-- Floating hint --> <MultiTrigger> <MultiTrigger.Conditions> <Condition Property="wpf:HintAssist.IsFloating" Value="True" /> <Condition SourceName="Hint" Property="IsHintInFloatingPosition" Value="True" /> </MultiTrigger.Conditions> <Setter TargetName="Hint" Property="HintOpacity" Value="1" /> </MultiTrigger> <MultiTrigger> <MultiTrigger.Conditions> <Condition Property="wpf:HintAssist.IsFloating" Value="True" /> <Condition Property="IsKeyboardFocusWithin" Value="True" /> </MultiTrigger.Conditions> <Setter TargetName="Hint" Property="HintOpacity" Value="1" /> <Setter TargetName="Hint" Property="Foreground" Value="{Binding Path=(wpf:HintAssist.Foreground), RelativeSource={RelativeSource TemplatedParent}}" /> </MultiTrigger> <!-- IsEnabled --> <MultiTrigger> <MultiTrigger.Conditions> <Condition Property="IsEnabled" Value="False" /> <Condition Property="wpf:TextFieldAssist.HasOutlinedTextField" Value="False" /> </MultiTrigger.Conditions> <Setter TargetName="OuterBorder" Property="BorderBrush" Value="Transparent" /> <Setter TargetName="ContentGrid" Property="Opacity" Value="{x:Static wpf:Constants.TextBoxNotEnabledOpacity}" /> <Setter TargetName="OuterBorder" Property="wpf:BottomDashedLineAdorner.IsAttached" Value="True" /> <Setter TargetName="OuterBorder" Property="wpf:BottomDashedLineAdorner.DashStyle" Value="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=(wpf:TextFieldAssist.HasFilledTextField), Converter={StaticResource BooleanToDashStyleConverter}}" /> <Setter TargetName="toggleButton" Property="Opacity" Value="1" /> </MultiTrigger> <MultiTrigger> <MultiTrigger.Conditions> <Condition Property="IsEnabled" Value="False" /> <Condition Property="wpf:TextFieldAssist.HasOutlinedTextField" Value="True" /> </MultiTrigger.Conditions> <Setter Property="BorderBrush" Value="{DynamicResource MaterialDesign.Brush.ComboBox.OutlineInactiveBorder}" /> <Setter TargetName="HintWrapper" Property="Opacity" Value="{x:Static wpf:Constants.TextBoxNotEnabledOpacity}" /> <Setter TargetName="PART_ClearButton" Property="Opacity" Value="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=(wpf:HintAssist.HintOpacity), Converter={x:Static converters:MathConverter.MultiplyInstance}, ConverterParameter={x:Static wpf:Constants.TextBoxNotEnabledOpacity}}" /> <Setter TargetName="LeadingPackIcon" Property="Opacity" Value="{Binding ElementName=PART_ClearButton, Path=Opacity}" /> <Setter TargetName="PrefixTextBlock" Property="Opacity" Value="{Binding ElementName=PART_ClearButton, Path=Opacity}" /> <Setter TargetName="SuffixTextBlock" Property="Opacity" Value="{Binding ElementName=PART_ClearButton, Path=Opacity}" /> <Setter TargetName="TrailingPackIcon" Property="Opacity" Value="{Binding ElementName=PART_ClearButton, Path=Opacity}" /> <Setter TargetName="contentPresenter" Property="Opacity" Value="{x:Static wpf:Constants.TextBoxNotEnabledOpacity}" /> <Setter TargetName="PART_EditableTextBox" Property="Opacity" Value="{x:Static wpf:Constants.TextBoxNotEnabledOpacity}" /> <Setter TargetName="toggleButton" Property="Opacity" Value="1" /> </MultiTrigger> <!-- IsKeyboardFocused --> <Trigger Property="IsKeyboardFocusWithin" Value="True"> <Setter TargetName="HintWrapper" Property="Opacity" Value="1" /> <Setter Property="BorderBrush" Value="{Binding Path=(wpf:TextFieldAssist.UnderlineBrush), RelativeSource={RelativeSource Self}}" /> <Setter TargetName="Underline" Property="IsActive" Value="True" /> </Trigger> <MultiTrigger> <MultiTrigger.Conditions> <Condition Property="IsKeyboardFocusWithin" Value="True" /> <Condition Property="wpf:TextFieldAssist.HasOutlinedTextField" Value="True" /> </MultiTrigger.Conditions> <Setter Property="BorderBrush" Value="{Binding Path=(wpf:TextFieldAssist.UnderlineBrush), RelativeSource={RelativeSource Self}}" /> <Setter TargetName="OuterBorder" Property="BorderThickness" Value="{Binding Path=(wpf:TextFieldAssist.OutlinedBorderActiveThickness), RelativeSource={RelativeSource TemplatedParent}}" /> <Setter TargetName="ContentGrid" Property="Margin"> <Setter.Value> <MultiBinding Converter="{x:Static converters:OutlinedStyleActiveBorderMarginCompensationConverter.Instance}"> <Binding Path="BorderThickness" RelativeSource="{RelativeSource TemplatedParent}" /> <Binding Path="(wpf:TextFieldAssist.OutlinedBorderActiveThickness)" RelativeSource="{RelativeSource TemplatedParent}" /> </MultiBinding> </Setter.Value> </Setter> </MultiTrigger> <!-- IsDropDownOpen --> <Trigger Property="IsDropDownOpen" Value="True"> <Setter TargetName="Underline" Property="IsActive" Value="True" /> </Trigger> <MultiTrigger> <MultiTrigger.Conditions> <Condition Property="IsDropDownOpen" Value="True" /> <Condition Property="wpf:TextFieldAssist.HasOutlinedTextField" Value="True" /> </MultiTrigger.Conditions> <Setter Property="BorderBrush" Value="{Binding Path=(wpf:TextFieldAssist.UnderlineBrush), RelativeSource={RelativeSource Self}}" /> <Setter TargetName="OuterBorder" Property="BorderThickness" Value="{Binding Path=(wpf:TextFieldAssist.OutlinedBorderActiveThickness), RelativeSource={RelativeSource TemplatedParent}}" /> <Setter TargetName="ContentGrid" Property="Margin"> <Setter.Value> <MultiBinding Converter="{x:Static converters:OutlinedStyleActiveBorderMarginCompensationConverter.Instance}"> <Binding Path="BorderThickness" RelativeSource="{RelativeSource TemplatedParent}" /> <Binding Path="(wpf:TextFieldAssist.OutlinedBorderActiveThickness)" RelativeSource="{RelativeSource TemplatedParent}" /> </MultiBinding> </Setter.Value> </Setter> </MultiTrigger> <MultiTrigger> <MultiTrigger.Conditions> <Condition Property="IsDropDownOpen" Value="True" /> <Condition SourceName="Hint" Property="IsContentNullOrEmpty" Value="False" /> </MultiTrigger.Conditions> <Setter TargetName="Hint" Property="Foreground" Value="{Binding Path=(wpf:HintAssist.Foreground), RelativeSource={RelativeSource TemplatedParent}}" /> <Setter TargetName="Hint" Property="HintOpacity" Value="1" /> </MultiTrigger> <MultiTrigger> <MultiTrigger.Conditions> <Condition Property="IsDropDownOpen" Value="True" /> <Condition SourceName="Hint" Property="IsContentNullOrEmpty" Value="False" /> <Condition Property="wpf:TextFieldAssist.HasOutlinedTextField" Value="True" /> </MultiTrigger.Conditions> <Setter TargetName="HintWrapper" Property="Opacity" Value="1" /> </MultiTrigger> <!-- IsMouseOver --> <MultiTrigger> <MultiTrigger.Conditions> <Condition Property="IsMouseOver" Value="True" /> <Condition Property="wpf:TextFieldAssist.HasFilledTextField" Value="False" /> <Condition Property="wpf:TextFieldAssist.HasOutlinedTextField" Value="False" /> </MultiTrigger.Conditions> <Setter Property="BorderBrush" Value="{Binding Path=(wpf:TextFieldAssist.UnderlineBrush), RelativeSource={RelativeSource Self}}" /> </MultiTrigger> <MultiTrigger> <MultiTrigger.Conditions> <Condition Property="IsMouseOver" Value="True" /> <Condition Property="wpf:TextFieldAssist.HasFilledTextField" Value="True" /> </MultiTrigger.Conditions> <Setter Property="Background" Value="{DynamicResource MaterialDesign.Brush.ComboBox.HoverBackground}" /> <Setter Property="BorderBrush" Value="{DynamicResource MaterialDesign.Brush.ComboBox.HoverBorder}" /> </MultiTrigger> <MultiTrigger> <MultiTrigger.Conditions> <Condition Property="IsMouseOver" Value="True" /> <Condition Property="wpf:TextFieldAssist.HasOutlinedTextField" Value="True" /> </MultiTrigger.Conditions> <Setter TargetName="OuterBorder" Property="BorderThickness" Value="{Binding Path=(wpf:TextFieldAssist.OutlinedBorderActiveThickness), RelativeSource={RelativeSource TemplatedParent}}" /> <Setter TargetName="ContentGrid" Property="Margin"> <Setter.Value> <MultiBinding Converter="{x:Static converters:OutlinedStyleActiveBorderMarginCompensationConverter.Instance}"> <Binding Path="BorderThickness" RelativeSource="{RelativeSource TemplatedParent}" /> <Binding Path="(wpf:TextFieldAssist.OutlinedBorderActiveThickness)" RelativeSource="{RelativeSource TemplatedParent}" /> </MultiBinding> </Setter.Value> </Setter> </MultiTrigger> <MultiTrigger> <MultiTrigger.Conditions> <Condition Property="IsMouseOver" Value="True" /> <Condition Property="wpf:TextFieldAssist.HasOutlinedTextField" Value="True" /> <Condition Property="wpf:HintAssist.IsFloating" Value="True" /> <Condition SourceName="Hint" Property="IsHintInFloatingPosition" Value="True" /> </MultiTrigger.Conditions> <Setter TargetName="HintWrapper" Property="Opacity" Value="1" /> </MultiTrigger> <!-- Validation.HasError --> <Trigger Property="Validation.HasError" Value="True"> <Setter Property="BorderBrush" Value="{DynamicResource MaterialDesign.Brush.ValidationError}" /> <Setter TargetName="Underline" Property="Background" Value="{DynamicResource MaterialDesign.Brush.ValidationError}" /> <Setter TargetName="Hint" Property="Foreground" Value="{DynamicResource MaterialDesign.Brush.ValidationError}" /> </Trigger> <MultiTrigger> <MultiTrigger.Conditions> <Condition Property="Validation.HasError" Value="True" /> <Condition Property="wpf:TextFieldAssist.HasOutlinedTextField" Value="True" /> </MultiTrigger.Conditions> <Setter Property="BorderBrush" Value="{DynamicResource MaterialDesign.Brush.ValidationError}" /> <Setter TargetName="OuterBorder" Property="BorderThickness" Value="{Binding Path=(wpf:TextFieldAssist.OutlinedBorderActiveThickness), RelativeSource={RelativeSource TemplatedParent}}" /> <Setter TargetName="ContentGrid" Property="Margin"> <Setter.Value> <MultiBinding Converter="{x:Static converters:OutlinedStyleActiveBorderMarginCompensationConverter.Instance}"> <Binding Path="BorderThickness" RelativeSource="{RelativeSource TemplatedParent}" /> <Binding Path="(wpf:TextFieldAssist.OutlinedBorderActiveThickness)" RelativeSource="{RelativeSource TemplatedParent}" /> </MultiBinding> </Setter.Value> </Setter> </MultiTrigger> <!-- PART_Popup.IsOpen --> <MultiTrigger> <MultiTrigger.Conditions> <Condition SourceName="PART_Popup" Property="IsOpen" Value="True" /> <Condition Property="wpf:TextFieldAssist.HasOutlinedTextField" Value="True" /> </MultiTrigger.Conditions> <Setter TargetName="OuterBorder" Property="BorderThickness" Value="{Binding Path=(wpf:TextFieldAssist.OutlinedBorderActiveThickness), RelativeSource={RelativeSource TemplatedParent}}" /> <Setter TargetName="ContentGrid" Property="Margin"> <Setter.Value> <MultiBinding Converter="{x:Static converters:OutlinedStyleActiveBorderMarginCompensationConverter.Instance}"> <Binding Path="BorderThickness" RelativeSource="{RelativeSource TemplatedParent}" /> <Binding Path="(wpf:TextFieldAssist.OutlinedBorderActiveThickness)" RelativeSource="{RelativeSource TemplatedParent}" /> </MultiBinding> </Setter.Value> </Setter> </MultiTrigger> <MultiTrigger> <MultiTrigger.Conditions> <Condition SourceName="PART_Popup" Property="IsOpen" Value="True" /> <Condition SourceName="PART_Popup" Property="wpf:ColorZoneAssist.Mode" Value="Standard" /> </MultiTrigger.Conditions> <Setter Property="TextElement.Foreground" Value="{DynamicResource MaterialDesign.Brush.Foreground}" /> <Setter TargetName="PART_Popup" Property="Background" Value="{Binding Tag, RelativeSource={RelativeSource Self}, Converter={x:Static converters:RemoveAlphaBrushConverter.Instance}}" /> <Setter TargetName="PART_Popup" Property="Tag" Value="{DynamicResource MaterialDesign.Brush.Background}" /> </MultiTrigger> <MultiTrigger> <MultiTrigger.Conditions> <Condition SourceName="PART_Popup" Property="IsOpen" Value="True" /> <Condition SourceName="PART_Popup" Property="wpf:ColorZoneAssist.Mode" Value="Inverted" /> </MultiTrigger.Conditions> <Setter Property="TextElement.Foreground" Value="{DynamicResource MaterialDesign.Brush.Background}" /> <Setter TargetName="PART_Popup" Property="Background" Value="{Binding Tag, RelativeSource={RelativeSource Self}, Converter={x:Static converters:RemoveAlphaBrushConverter.Instance}}" /> <Setter TargetName="PART_Popup" Property="Tag" Value="{DynamicResource MaterialDesign.Brush.Foreground}" /> </MultiTrigger> <MultiTrigger> <MultiTrigger.Conditions> <Condition SourceName="PART_Popup" Property="IsOpen" Value="True" /> <Condition SourceName="PART_Popup" Property="wpf:ColorZoneAssist.Mode" Value="PrimaryLight" /> </MultiTrigger.Conditions> <Setter Property="TextElement.Foreground" Value="{DynamicResource MaterialDesign.Brush.Primary.Light.Foreground}" /> <Setter TargetName="PART_Popup" Property="Background" Value="{Binding Tag, RelativeSource={RelativeSource Self}, Converter={x:Static converters:RemoveAlphaBrushConverter.Instance}}" /> <Setter TargetName="PART_Popup" Property="Tag" Value="{DynamicResource MaterialDesign.Brush.Primary.Light}" /> </MultiTrigger> <MultiTrigger> <MultiTrigger.Conditions> <Condition SourceName="PART_Popup" Property="IsOpen" Value="True" /> <Condition SourceName="PART_Popup" Property="wpf:ColorZoneAssist.Mode" Value="PrimaryMid" /> </MultiTrigger.Conditions> <Setter Property="TextElement.Foreground" Value="{DynamicResource MaterialDesign.Brush.Primary.Foreground}" /> <Setter TargetName="PART_Popup" Property="Background" Value="{Binding Tag, RelativeSource={RelativeSource Self}, Converter={x:Static converters:RemoveAlphaBrushConverter.Instance}}" /> <Setter TargetName="PART_Popup" Property="Tag" Value="{DynamicResource MaterialDesign.Brush.Primary}" /> </MultiTrigger> <MultiTrigger> <MultiTrigger.Conditions> <Condition SourceName="PART_Popup" Property="IsOpen" Value="True" /> <Condition SourceName="PART_Popup" Property="wpf:ColorZoneAssist.Mode" Value="PrimaryDark" /> </MultiTrigger.Conditions> <Setter Property="TextElement.Foreground" Value="{DynamicResource MaterialDesign.Brush.Primary.Dark.Foreground}" /> <Setter TargetName="PART_Popup" Property="Background" Value="{Binding Tag, RelativeSource={RelativeSource Self}, Converter={x:Static converters:RemoveAlphaBrushConverter.Instance}}" /> <Setter TargetName="PART_Popup" Property="Tag" Value="{DynamicResource MaterialDesign.Brush.Primary.Dark}" /> </MultiTrigger> <MultiTrigger> <MultiTrigger.Conditions> <Condition SourceName="PART_Popup" Property="IsOpen" Value="True" /> <Condition SourceName="PART_Popup" Property="wpf:ColorZoneAssist.Mode" Value="SecondaryLight" /> </MultiTrigger.Conditions> <Setter Property="TextElement.Foreground" Value="{DynamicResource MaterialDesign.Brush.Secondary.Light.Foreground}" /> <Setter TargetName="PART_Popup" Property="Background" Value="{Binding Tag, RelativeSource={RelativeSource Self}, Converter={x:Static converters:RemoveAlphaBrushConverter.Instance}}" /> <Setter TargetName="PART_Popup" Property="Tag" Value="{DynamicResource MaterialDesign.Brush.Secondary.Light}" /> </MultiTrigger> <MultiTrigger> <MultiTrigger.Conditions> <Condition SourceName="PART_Popup" Property="IsOpen" Value="True" /> <Condition SourceName="PART_Popup" Property="wpf:ColorZoneAssist.Mode" Value="SecondaryMid" /> </MultiTrigger.Conditions> <Setter Property="TextElement.Foreground" Value="{DynamicResource MaterialDesign.Brush.Secondary.Foreground}" /> <Setter TargetName="PART_Popup" Property="Background" Value="{Binding Tag, RelativeSource={RelativeSource Self}, Converter={x:Static converters:RemoveAlphaBrushConverter.Instance}}" /> <Setter TargetName="PART_Popup" Property="Tag" Value="{DynamicResource MaterialDesign.Brush.Secondary}" /> </MultiTrigger> <MultiTrigger> <MultiTrigger.Conditions> <Condition SourceName="PART_Popup" Property="IsOpen" Value="True" /> <Condition SourceName="PART_Popup" Property="wpf:ColorZoneAssist.Mode" Value="SecondaryDark" /> </MultiTrigger.Conditions> <Setter Property="TextElement.Foreground" Value="{DynamicResource MaterialDesign.Brush.Secondary.Dark.Foreground}" /> <Setter TargetName="PART_Popup" Property="Background" Value="{Binding Tag, RelativeSource={RelativeSource Self}, Converter={x:Static converters:RemoveAlphaBrushConverter.Instance}}" /> <Setter TargetName="PART_Popup" Property="Tag" Value="{DynamicResource MaterialDesign.Brush.Secondary.Dark}" /> </MultiTrigger> <MultiTrigger> <MultiTrigger.Conditions> <Condition SourceName="PART_Popup" Property="IsOpen" Value="True" /> <Condition SourceName="PART_Popup" Property="wpf:ColorZoneAssist.Mode" Value="Light" /> </MultiTrigger.Conditions> <Setter Property="TextElement.Foreground" Value="{DynamicResource MaterialDesign.Brush.ComboBox.Popup.LightForeground}" /> <Setter TargetName="PART_Popup" Property="Background" Value="{Binding Tag, RelativeSource={RelativeSource Self}, Converter={x:Static converters:RemoveAlphaBrushConverter.Instance}}" /> <Setter TargetName="PART_Popup" Property="Tag" Value="{DynamicResource MaterialDesign.Brush.ComboBox.Popup.LightBackground}" /> </MultiTrigger> <MultiTrigger> <MultiTrigger.Conditions> <Condition SourceName="PART_Popup" Property="IsOpen" Value="True" /> <Condition SourceName="PART_Popup" Property="wpf:ColorZoneAssist.Mode" Value="Dark" /> </MultiTrigger.Conditions> <Setter Property="TextElement.Foreground" Value="{DynamicResource MaterialDesign.Brush.ComboBox.Popup.DarkForeground}" /> <Setter TargetName="PART_Popup" Property="Background" Value="{Binding Tag, RelativeSource={RelativeSource Self}, Converter={x:Static converters:RemoveAlphaBrushConverter.Instance}}" /> <Setter TargetName="PART_Popup" Property="Tag" Value="{DynamicResource MaterialDesign.Brush.ComboBox.Popup.DarkBackground}" /> </MultiTrigger> </ControlTemplate.Triggers> </ControlTemplate> <Style x:Key="MaterialDesignComboBox" TargetType="{x:Type ComboBox}"> <Setter Property="Background" Value="Transparent" /> <Setter Property="BorderBrush" Value="{DynamicResource MaterialDesign.Brush.ComboBox.Border}" /> <Setter Property="BorderThickness" Value="0,0,0,1" /> <Setter Property="FocusVisualStyle" Value="{x:Null}" /> <Setter Property="Foreground" Value="{Binding RelativeSource={RelativeSource AncestorType={x:Type FrameworkElement}}, Path=(TextElement.Foreground)}" /> <Setter Property="HorizontalAlignment" Value="Stretch" /> <Setter Property="HorizontalContentAlignment" Value="Stretch" /> <Setter Property="ItemContainerStyle" Value="{StaticResource MaterialDesignComboBoxItemStyle}" /> <!-- Virtualization --> <Setter Property="ItemsPanel"> <Setter.Value> <ItemsPanelTemplate> <VirtualizingStackPanel /> </ItemsPanelTemplate> </Setter.Value> </Setter> <Setter Property="Padding" Value="{x:Static wpf:Constants.TextBoxDefaultPadding}" /> <Setter Property="ScrollViewer.CanContentScroll" Value="True" /> <Setter Property="ScrollViewer.HorizontalScrollBarVisibility" Value="Auto" /> <Setter Property="ScrollViewer.PanningMode" Value="Both" /> <Setter Property="ScrollViewer.VerticalScrollBarVisibility" Value="Auto" /> <Setter Property="Stylus.IsFlicksEnabled" Value="False" /> <Setter Property="Template" Value="{StaticResource MaterialDesignFloatingHintComboBoxTemplate}" /> <Setter Property="Validation.ErrorTemplate" Value="{StaticResource MaterialDesignValidationErrorTemplate}" /> <Setter Property="VerticalAlignment" Value="Center" /> <Setter Property="VerticalContentAlignment" Value="Center" /> <Setter Property="internal:ClearText.HandlesClearCommand" Value="True" /> <Setter Property="wpf:ColorZoneAssist.Mode" Value="Standard" /> <Setter Property="wpf:ComboBoxAssist.ShowSelectedItem" Value="True" /> <Setter Property="wpf:HintAssist.Foreground" Value="{DynamicResource MaterialDesign.Brush.Primary}" /> <Setter Property="wpf:TextFieldAssist.TextBoxViewMargin" Value="{x:Static wpf:Constants.DefaultTextBoxViewMargin}" /> <Setter Property="wpf:TextFieldAssist.UnderlineBrush" Value="{DynamicResource MaterialDesign.Brush.Primary}" /> <Style.Triggers> <Trigger Property="IsEditable" Value="True"> <Setter Property="ContextMenu" Value="{StaticResource MaterialDesignDefaultContextMenu}" /> <Setter Property="IsTabStop" Value="False" /> <Setter Property="wpf:ComboBoxAssist.ShowSelectedItem" Value="True" /> </Trigger> <Trigger Property="wpf:ComboBoxAssist.ShowSelectedItem" Value="False"> <Setter Property="ItemContainerStyle" Value="{StaticResource MaterialDesignComboBoxItemSelectedCollapsedStyle}" /> </Trigger> </Style.Triggers> </Style> <Style x:Key="MaterialDesignFloatingHintComboBox" TargetType="{x:Type ComboBox}" BasedOn="{StaticResource MaterialDesignComboBox}"> <Setter Property="wpf:HintAssist.IsFloating" Value="True" /> <Setter Property="Padding" Value="{x:Static wpf:Constants.FloatingTextBoxDefaultPadding}" /> </Style> <Style x:Key="MaterialDesignFilledComboBox" TargetType="{x:Type ComboBox}" BasedOn="{StaticResource MaterialDesignFloatingHintComboBox}"> <Setter Property="Background" Value="{DynamicResource MaterialDesign.Brush.ComboBox.FilledBackground}" /> <Setter Property="Padding" Value="{x:Static wpf:Constants.FilledTextBoxDefaultPadding}" /> <Setter Property="VerticalAlignment" Value="Stretch" /> <Setter Property="VerticalContentAlignment" Value="Stretch" /> <Setter Property="wpf:TextFieldAssist.HasFilledTextField" Value="True" /> <Setter Property="wpf:TextFieldAssist.TextFieldCornerRadius" Value="4,4,0,0" /> <Style.Triggers> <Trigger Property="IsMouseOver" Value="True"> <Setter Property="Background" Value="{DynamicResource MaterialDesign.Brush.ComboBox.HoverBackground}" /> </Trigger> </Style.Triggers> </Style> <Style x:Key="MaterialDesignOutlinedComboBox" TargetType="ComboBox" BasedOn="{StaticResource MaterialDesignFloatingHintComboBox}"> <Setter Property="BorderBrush" Value="{DynamicResource MaterialDesign.Brush.ComboBox.OutlineBorder}" /> <Setter Property="BorderThickness" Value="{x:Static wpf:Constants.DefaultOutlinedBorderInactiveThickness}" /> <Setter Property="Padding" Value="{x:Static wpf:Constants.OutlinedTextBoxDefaultPadding}" /> <Setter Property="wpf:TextFieldAssist.HasOutlinedTextField" Value="True" /> <Setter Property="wpf:TextFieldAssist.TextFieldCornerRadius" Value="4" /> </Style> </ResourceDictionary> |