389 lines
		
	
	
		
			25 KiB
		
	
	
	
		
			XML
		
	
	
	
			
		
		
	
	
			389 lines
		
	
	
		
			25 KiB
		
	
	
	
		
			XML
		
	
	
	
<ResourceDictionary
 | 
						|
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
 | 
						|
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
 | 
						|
    xmlns:local="clr-namespace:SearchableComboBox"
 | 
						|
    xmlns:sys="clr-namespace:System;assembly=mscorlib"
 | 
						|
    xmlns:theme="clr-namespace:Microsoft.Windows.Themes;assembly=PresentationFramework.Aero2">
 | 
						|
 | 
						|
    <BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter" />
 | 
						|
 | 
						|
    <Style x:Key="FocusVisual">
 | 
						|
        <Setter Property="Control.Template">
 | 
						|
            <Setter.Value>
 | 
						|
                <ControlTemplate>
 | 
						|
                    <Rectangle
 | 
						|
                        Margin="2"
 | 
						|
                        SnapsToDevicePixels="true"
 | 
						|
                        Stroke="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}"
 | 
						|
                        StrokeDashArray="1 2"
 | 
						|
                        StrokeThickness="1" />
 | 
						|
                </ControlTemplate>
 | 
						|
            </Setter.Value>
 | 
						|
        </Setter>
 | 
						|
    </Style>
 | 
						|
    <SolidColorBrush x:Key="TextBox.Static.Background" Color="#FFFFFFFF" />
 | 
						|
    <Style x:Key="ComboBoxEditableTextBox" TargetType="{x:Type TextBox}">
 | 
						|
        <Setter Property="OverridesDefaultStyle" Value="true" />
 | 
						|
        <Setter Property="AllowDrop" Value="true" />
 | 
						|
        <Setter Property="MinWidth" Value="0" />
 | 
						|
        <Setter Property="MinHeight" Value="0" />
 | 
						|
        <Setter Property="FocusVisualStyle" Value="{x:Null}" />
 | 
						|
        <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"
 | 
						|
                        Background="Transparent"
 | 
						|
                        Focusable="false"
 | 
						|
                        HorizontalScrollBarVisibility="Hidden"
 | 
						|
                        VerticalScrollBarVisibility="Hidden" />
 | 
						|
                </ControlTemplate>
 | 
						|
            </Setter.Value>
 | 
						|
        </Setter>
 | 
						|
    </Style>
 | 
						|
    <LinearGradientBrush x:Key="ComboBox.Static.Background" StartPoint="0,0" EndPoint="0,1">
 | 
						|
        <GradientStop Offset="0.0" Color="#FFF0F0F0" />
 | 
						|
        <GradientStop Offset="1.0" Color="#FFE5E5E5" />
 | 
						|
    </LinearGradientBrush>
 | 
						|
    <SolidColorBrush x:Key="ComboBox.Static.Border" Color="#FFACACAC" />
 | 
						|
    <SolidColorBrush x:Key="ComboBox.Static.Glyph" Color="#FF606060" />
 | 
						|
    <SolidColorBrush x:Key="ComboBox.Static.Editable.Background" Color="#FFFFFFFF" />
 | 
						|
    <SolidColorBrush x:Key="ComboBox.Static.Editable.Border" Color="#FFABADB3" />
 | 
						|
    <SolidColorBrush x:Key="ComboBox.Static.Editable.Button.Background" Color="Transparent" />
 | 
						|
    <SolidColorBrush x:Key="ComboBox.Static.Editable.Button.Border" Color="Transparent" />
 | 
						|
    <LinearGradientBrush x:Key="ComboBox.MouseOver.Background" StartPoint="0,0" EndPoint="0,1">
 | 
						|
        <GradientStop Offset="0.0" Color="#FFECF4FC" />
 | 
						|
        <GradientStop Offset="1.0" Color="#FFDCECFC" />
 | 
						|
    </LinearGradientBrush>
 | 
						|
    <SolidColorBrush x:Key="ComboBox.MouseOver.Border" Color="#FF7EB4EA" />
 | 
						|
    <SolidColorBrush x:Key="ComboBox.MouseOver.Glyph" Color="#FF000000" />
 | 
						|
    <SolidColorBrush x:Key="ComboBox.MouseOver.Editable.Background" Color="#FFFFFFFF" />
 | 
						|
    <SolidColorBrush x:Key="ComboBox.MouseOver.Editable.Border" Color="#FF7EB4EA" />
 | 
						|
    <LinearGradientBrush x:Key="ComboBox.MouseOver.Editable.Button.Background" StartPoint="0,0" EndPoint="0,1">
 | 
						|
        <GradientStop Offset="0.0" Color="#FFEBF4FC" />
 | 
						|
        <GradientStop Offset="1.0" Color="#FFDCECFC" />
 | 
						|
    </LinearGradientBrush>
 | 
						|
    <SolidColorBrush x:Key="ComboBox.MouseOver.Editable.Button.Border" Color="#FF7EB4EA" />
 | 
						|
    <LinearGradientBrush x:Key="ComboBox.Pressed.Background" StartPoint="0,0" EndPoint="0,1">
 | 
						|
        <GradientStop Offset="0.0" Color="#FFDAECFC" />
 | 
						|
        <GradientStop Offset="1.0" Color="#FFC4E0FC" />
 | 
						|
    </LinearGradientBrush>
 | 
						|
    <SolidColorBrush x:Key="ComboBox.Pressed.Border" Color="#FF569DE5" />
 | 
						|
    <SolidColorBrush x:Key="ComboBox.Pressed.Glyph" Color="#FF000000" />
 | 
						|
    <SolidColorBrush x:Key="ComboBox.Pressed.Editable.Background" Color="#FFFFFFFF" />
 | 
						|
    <SolidColorBrush x:Key="ComboBox.Pressed.Editable.Border" Color="#FF569DE5" />
 | 
						|
    <LinearGradientBrush x:Key="ComboBox.Pressed.Editable.Button.Background" StartPoint="0,0" EndPoint="0,1">
 | 
						|
        <GradientStop Offset="0.0" Color="#FFDAEBFC" />
 | 
						|
        <GradientStop Offset="1.0" Color="#FFC4E0FC" />
 | 
						|
    </LinearGradientBrush>
 | 
						|
    <SolidColorBrush x:Key="ComboBox.Pressed.Editable.Button.Border" Color="#FF569DE5" />
 | 
						|
    <SolidColorBrush x:Key="ComboBox.Disabled.Background" Color="#FFF0F0F0" />
 | 
						|
    <SolidColorBrush x:Key="ComboBox.Disabled.Border" Color="#FFD9D9D9" />
 | 
						|
    <SolidColorBrush x:Key="ComboBox.Disabled.Glyph" Color="#FFBFBFBF" />
 | 
						|
    <SolidColorBrush x:Key="ComboBox.Disabled.Editable.Background" Color="#FFFFFFFF" />
 | 
						|
    <SolidColorBrush x:Key="ComboBox.Disabled.Editable.Border" Color="#FFBFBFBF" />
 | 
						|
    <SolidColorBrush x:Key="ComboBox.Disabled.Editable.Button.Background" Color="Transparent" />
 | 
						|
    <SolidColorBrush x:Key="ComboBox.Disabled.Editable.Button.Border" Color="Transparent" />
 | 
						|
 | 
						|
    <Style x:Key="ComboBoxToggleButton" TargetType="{x:Type ToggleButton}">
 | 
						|
        <Setter Property="OverridesDefaultStyle" Value="true" />
 | 
						|
        <Setter Property="IsTabStop" Value="false" />
 | 
						|
        <Setter Property="Focusable" Value="false" />
 | 
						|
        <Setter Property="ClickMode" Value="Press" />
 | 
						|
        <Setter Property="Template">
 | 
						|
            <Setter.Value>
 | 
						|
                <ControlTemplate TargetType="{x:Type ToggleButton}">
 | 
						|
                    <Border
 | 
						|
                        x:Name="templateRoot"
 | 
						|
                        Background="{StaticResource ComboBox.Static.Background}"
 | 
						|
                        BorderBrush="{StaticResource ComboBox.Static.Border}"
 | 
						|
                        BorderThickness="{TemplateBinding BorderThickness}"
 | 
						|
                        SnapsToDevicePixels="true">
 | 
						|
                        <Border
 | 
						|
                            x:Name="splitBorder"
 | 
						|
                            Width="{DynamicResource {x:Static SystemParameters.VerticalScrollBarWidthKey}}"
 | 
						|
                            Margin="0"
 | 
						|
                            HorizontalAlignment="Right"
 | 
						|
                            BorderBrush="Transparent"
 | 
						|
                            BorderThickness="1"
 | 
						|
                            SnapsToDevicePixels="true">
 | 
						|
                            <Path
 | 
						|
                                x:Name="arrow"
 | 
						|
                                Margin="0"
 | 
						|
                                HorizontalAlignment="Center"
 | 
						|
                                VerticalAlignment="Center"
 | 
						|
                                Data="F1 M 0,0 L 2.667,2.66665 L 5.3334,0 L 5.3334,-1.78168 L 2.6667,0.88501 L0,-1.78168 L0,0 Z"
 | 
						|
                                Fill="{StaticResource ComboBox.Static.Glyph}" />
 | 
						|
                        </Border>
 | 
						|
                    </Border>
 | 
						|
                    <ControlTemplate.Triggers>
 | 
						|
                        <MultiDataTrigger>
 | 
						|
                            <MultiDataTrigger.Conditions>
 | 
						|
                                <Condition Binding="{Binding IsEditable, RelativeSource={RelativeSource AncestorType={x:Type ComboBox}}}" Value="true" />
 | 
						|
                                <Condition Binding="{Binding IsMouseOver, RelativeSource={RelativeSource Self}}" Value="false" />
 | 
						|
                                <Condition Binding="{Binding IsPressed, RelativeSource={RelativeSource Self}}" Value="false" />
 | 
						|
                                <Condition Binding="{Binding IsEnabled, RelativeSource={RelativeSource Self}}" Value="true" />
 | 
						|
                            </MultiDataTrigger.Conditions>
 | 
						|
                            <Setter TargetName="templateRoot" Property="Background" Value="{StaticResource ComboBox.Static.Editable.Background}" />
 | 
						|
                            <Setter TargetName="templateRoot" Property="BorderBrush" Value="{StaticResource ComboBox.Static.Editable.Border}" />
 | 
						|
                            <Setter TargetName="splitBorder" Property="Background" Value="{StaticResource ComboBox.Static.Editable.Button.Background}" />
 | 
						|
                            <Setter TargetName="splitBorder" Property="BorderBrush" Value="{StaticResource ComboBox.Static.Editable.Button.Border}" />
 | 
						|
                        </MultiDataTrigger>
 | 
						|
                        <Trigger Property="IsMouseOver" Value="true">
 | 
						|
                            <Setter TargetName="arrow" Property="Fill" Value="{StaticResource ComboBox.MouseOver.Glyph}" />
 | 
						|
                        </Trigger>
 | 
						|
                        <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>
 | 
						|
                            <Setter TargetName="templateRoot" Property="Background" Value="{StaticResource ComboBox.MouseOver.Background}" />
 | 
						|
                            <Setter TargetName="templateRoot" Property="BorderBrush" Value="{StaticResource ComboBox.MouseOver.Border}" />
 | 
						|
                        </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 TargetName="templateRoot" Property="Background" Value="{StaticResource ComboBox.MouseOver.Editable.Background}" />
 | 
						|
                            <Setter TargetName="templateRoot" Property="BorderBrush" Value="{StaticResource ComboBox.MouseOver.Editable.Border}" />
 | 
						|
                            <Setter TargetName="splitBorder" Property="Background" Value="{StaticResource ComboBox.MouseOver.Editable.Button.Background}" />
 | 
						|
                            <Setter TargetName="splitBorder" Property="BorderBrush" Value="{StaticResource ComboBox.MouseOver.Editable.Button.Border}" />
 | 
						|
                        </MultiDataTrigger>
 | 
						|
                        <Trigger Property="IsPressed" Value="true">
 | 
						|
                            <Setter TargetName="arrow" Property="Fill" Value="{StaticResource ComboBox.Pressed.Glyph}" />
 | 
						|
                        </Trigger>
 | 
						|
                        <MultiDataTrigger>
 | 
						|
                            <MultiDataTrigger.Conditions>
 | 
						|
                                <Condition Binding="{Binding IsPressed, RelativeSource={RelativeSource Self}}" Value="true" />
 | 
						|
                                <Condition Binding="{Binding IsEditable, RelativeSource={RelativeSource AncestorType={x:Type ComboBox}}}" Value="false" />
 | 
						|
                            </MultiDataTrigger.Conditions>
 | 
						|
                            <Setter TargetName="templateRoot" Property="Background" Value="{StaticResource ComboBox.Pressed.Background}" />
 | 
						|
                            <Setter TargetName="templateRoot" Property="BorderBrush" Value="{StaticResource ComboBox.Pressed.Border}" />
 | 
						|
                        </MultiDataTrigger>
 | 
						|
                        <MultiDataTrigger>
 | 
						|
                            <MultiDataTrigger.Conditions>
 | 
						|
                                <Condition Binding="{Binding IsPressed, RelativeSource={RelativeSource Self}}" Value="true" />
 | 
						|
                                <Condition Binding="{Binding IsEditable, RelativeSource={RelativeSource AncestorType={x:Type ComboBox}}}" Value="true" />
 | 
						|
                            </MultiDataTrigger.Conditions>
 | 
						|
                            <Setter TargetName="templateRoot" Property="Background" Value="{StaticResource ComboBox.Pressed.Editable.Background}" />
 | 
						|
                            <Setter TargetName="templateRoot" Property="BorderBrush" Value="{StaticResource ComboBox.Pressed.Editable.Border}" />
 | 
						|
                            <Setter TargetName="splitBorder" Property="Background" Value="{StaticResource ComboBox.Pressed.Editable.Button.Background}" />
 | 
						|
                            <Setter TargetName="splitBorder" Property="BorderBrush" Value="{StaticResource ComboBox.Pressed.Editable.Button.Border}" />
 | 
						|
                        </MultiDataTrigger>
 | 
						|
                        <Trigger Property="IsEnabled" Value="false">
 | 
						|
                            <Setter TargetName="arrow" Property="Fill" Value="{StaticResource ComboBox.Disabled.Glyph}" />
 | 
						|
                        </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="templateRoot" Property="Background" Value="{StaticResource ComboBox.Disabled.Background}" />
 | 
						|
                            <Setter TargetName="templateRoot" Property="BorderBrush" Value="{StaticResource ComboBox.Disabled.Border}" />
 | 
						|
                        </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="templateRoot" Property="Background" Value="{StaticResource ComboBox.Disabled.Editable.Background}" />
 | 
						|
                            <Setter TargetName="templateRoot" Property="BorderBrush" Value="{StaticResource ComboBox.Disabled.Editable.Border}" />
 | 
						|
                            <Setter TargetName="splitBorder" Property="Background" Value="{StaticResource ComboBox.Disabled.Editable.Button.Background}" />
 | 
						|
                            <Setter TargetName="splitBorder" Property="BorderBrush" Value="{StaticResource ComboBox.Disabled.Editable.Button.Border}" />
 | 
						|
                        </MultiDataTrigger>
 | 
						|
                    </ControlTemplate.Triggers>
 | 
						|
                </ControlTemplate>
 | 
						|
            </Setter.Value>
 | 
						|
        </Setter>
 | 
						|
    </Style>
 | 
						|
 | 
						|
    <ControlTemplate x:Key="ComboBoxTemplate" TargetType="{x:Type ComboBox}">
 | 
						|
        <Grid x:Name="templateRoot" SnapsToDevicePixels="true">
 | 
						|
            <Grid.ColumnDefinitions>
 | 
						|
                <ColumnDefinition Width="*" />
 | 
						|
                <ColumnDefinition Width="0" MinWidth="{DynamicResource {x:Static SystemParameters.VerticalScrollBarWidthKey}}" />
 | 
						|
            </Grid.ColumnDefinitions>
 | 
						|
 | 
						|
            <TextBlock
 | 
						|
                x:Name="PlaceholderTextBlock"
 | 
						|
                Margin="{TemplateBinding Padding}"
 | 
						|
                HorizontalAlignment="Left"
 | 
						|
                VerticalAlignment="Center"
 | 
						|
                Panel.ZIndex="1"
 | 
						|
                Foreground="Gray"
 | 
						|
                IsHitTestVisible="False"
 | 
						|
                Style="{Binding PlaceholderStyle, RelativeSource={RelativeSource TemplatedParent}}"
 | 
						|
                Text="{Binding Placeholder, RelativeSource={RelativeSource TemplatedParent}, FallbackValue='Failed to Bind'}"
 | 
						|
                Visibility="Collapsed" />
 | 
						|
 | 
						|
            <Popup
 | 
						|
                x:Name="PART_Popup"
 | 
						|
                Grid.ColumnSpan="2"
 | 
						|
                Margin="1"
 | 
						|
                AllowsTransparency="true"
 | 
						|
                IsOpen="{Binding IsDropDownOpen, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}"
 | 
						|
                Placement="Bottom"
 | 
						|
                PopupAnimation="{DynamicResource {x:Static SystemParameters.ComboBoxPopupAnimationKey}}">
 | 
						|
                <theme:SystemDropShadowChrome
 | 
						|
                    x:Name="shadow"
 | 
						|
                    MinWidth="{Binding ActualWidth, ElementName=templateRoot}"
 | 
						|
                    MaxHeight="{TemplateBinding MaxDropDownHeight}"
 | 
						|
                    Color="Transparent">
 | 
						|
                    <Border
 | 
						|
                        x:Name="dropDownBorder"
 | 
						|
                        MinWidth="{Binding ActualWidth, ElementName=templateRoot}"
 | 
						|
                        MaxHeight="{TemplateBinding MaxDropDownHeight}"
 | 
						|
                        Background="White"
 | 
						|
                        CornerRadius="0">
 | 
						|
                        <Grid>
 | 
						|
                            <Grid.RowDefinitions>
 | 
						|
                                <RowDefinition Height="auto" />
 | 
						|
                                <RowDefinition Height="auto" />
 | 
						|
                                <RowDefinition Height="*" />
 | 
						|
                            </Grid.RowDefinitions>
 | 
						|
 | 
						|
                            <Grid Grid.Row="0" Visibility="{Binding IsSearchEnabled, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type local:SearchableComboBox}}, Converter={StaticResource BooleanToVisibilityConverter}}">
 | 
						|
                                <TextBox
 | 
						|
                                    x:Name="SearchTermTextBox"
 | 
						|
                                    Padding="5"
 | 
						|
                                    FontSize="12"
 | 
						|
                                    Foreground="Black"
 | 
						|
                                    Text="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type local:SearchableComboBox}}, Path=SearchTerm, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}" />
 | 
						|
 | 
						|
                                <TextBlock
 | 
						|
                                    Margin="6"
 | 
						|
                                    HorizontalAlignment="Left"
 | 
						|
                                    VerticalAlignment="Center"
 | 
						|
                                    Foreground="DarkGray"
 | 
						|
                                    Text="Search">
 | 
						|
                                    <TextBlock.Style>
 | 
						|
                                        <Style TargetType="{x:Type TextBlock}">
 | 
						|
                                            <Setter Property="Visibility" Value="Collapsed" />
 | 
						|
                                            <Style.Triggers>
 | 
						|
                                                <DataTrigger Binding="{Binding Text, ElementName=SearchTermTextBox}" Value="">
 | 
						|
                                                    <Setter Property="Visibility" Value="Visible" />
 | 
						|
                                                </DataTrigger>
 | 
						|
                                            </Style.Triggers>
 | 
						|
                                        </Style>
 | 
						|
                                    </TextBlock.Style>
 | 
						|
                                </TextBlock>
 | 
						|
                            </Grid>
 | 
						|
 | 
						|
                            <Border
 | 
						|
                                Grid.Row="1"
 | 
						|
                                Background="White"
 | 
						|
                                BorderBrush="Gray"
 | 
						|
                                BorderThickness="1">
 | 
						|
 | 
						|
                                <Label
 | 
						|
                                    Margin="5"
 | 
						|
                                    HorizontalAlignment="Center"
 | 
						|
                                    Content="Not Found"
 | 
						|
                                    FontWeight="DemiBold"
 | 
						|
                                    Foreground="DarkGray"
 | 
						|
                                    Visibility="{Binding NotFoundLabelVisibility, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type local:SearchableComboBox}}}" />
 | 
						|
 | 
						|
                            </Border>
 | 
						|
 | 
						|
                            <Border
 | 
						|
                                x:Name="dropDownBorder2"
 | 
						|
                                Grid.Row="2"
 | 
						|
                                Background="{DynamicResource {x:Static SystemColors.WindowBrushKey}}"
 | 
						|
                                BorderBrush="{DynamicResource {x:Static SystemColors.WindowFrameBrushKey}}"
 | 
						|
                                BorderThickness="1"
 | 
						|
                                CornerRadius="0"
 | 
						|
                                Visibility="{Binding DropDownBorderVisibility, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type local:SearchableComboBox}}}">
 | 
						|
                                <ScrollViewer
 | 
						|
                                    x:Name="DropDownScrollViewer"
 | 
						|
                                    CanContentScroll="True"
 | 
						|
                                    VerticalScrollBarVisibility="auto">
 | 
						|
                                    <Grid x:Name="grid" RenderOptions.ClearTypeHint="Enabled">
 | 
						|
                                        <Canvas
 | 
						|
                                            x:Name="canvas"
 | 
						|
                                            Width="0"
 | 
						|
                                            Height="0"
 | 
						|
                                            HorizontalAlignment="Left"
 | 
						|
                                            VerticalAlignment="Top">
 | 
						|
                                            <Border
 | 
						|
                                                x:Name="opaqueRect"
 | 
						|
                                                Width="{Binding ActualWidth, ElementName=dropDownBorder}"
 | 
						|
                                                Height="{Binding ActualHeight, ElementName=dropDownBorder}"
 | 
						|
                                                Padding="10"
 | 
						|
                                                Background="Transparent"
 | 
						|
                                                CornerRadius="0" />
 | 
						|
                                        </Canvas>
 | 
						|
                                        <ItemsPresenter
 | 
						|
                                            x:Name="ItemsPresenter"
 | 
						|
                                            KeyboardNavigation.DirectionalNavigation="Contained"
 | 
						|
                                            SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
 | 
						|
                                    </Grid>
 | 
						|
                                </ScrollViewer>
 | 
						|
                            </Border>
 | 
						|
 | 
						|
                        </Grid>
 | 
						|
 | 
						|
                    </Border>
 | 
						|
                </theme:SystemDropShadowChrome>
 | 
						|
            </Popup>
 | 
						|
            <ToggleButton
 | 
						|
                x:Name="toggleButton"
 | 
						|
                Grid.ColumnSpan="2"
 | 
						|
                Background="{TemplateBinding Background}"
 | 
						|
                BorderBrush="{TemplateBinding BorderBrush}"
 | 
						|
                BorderThickness="{TemplateBinding BorderThickness}"
 | 
						|
                IsChecked="{Binding IsDropDownOpen, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}"
 | 
						|
                Style="{StaticResource ComboBoxToggleButton}" />
 | 
						|
            <ContentPresenter
 | 
						|
                x:Name="contentPresenter"
 | 
						|
                Margin="{TemplateBinding Padding}"
 | 
						|
                HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
 | 
						|
                VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
 | 
						|
                Content="{TemplateBinding SelectionBoxItem}"
 | 
						|
                ContentStringFormat="{TemplateBinding SelectionBoxItemStringFormat}"
 | 
						|
                ContentTemplate="{TemplateBinding SelectionBoxItemTemplate}"
 | 
						|
                ContentTemplateSelector="{TemplateBinding ItemTemplateSelector}"
 | 
						|
                IsHitTestVisible="false"
 | 
						|
                SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
 | 
						|
        </Grid>
 | 
						|
        <ControlTemplate.Triggers>
 | 
						|
            <Trigger SourceName="PART_Popup" Property="HasDropShadow" Value="true">
 | 
						|
                <Setter TargetName="shadow" Property="Margin" Value="0,0,5,5" />
 | 
						|
                <Setter TargetName="shadow" Property="Color" Value="#71000000" />
 | 
						|
            </Trigger>
 | 
						|
            <Trigger Property="HasItems" Value="false">
 | 
						|
                <Setter TargetName="dropDownBorder2" Property="Height" Value="95" />
 | 
						|
            </Trigger>
 | 
						|
            <MultiTrigger>
 | 
						|
                <MultiTrigger.Conditions>
 | 
						|
                    <Condition Property="IsGrouping" Value="true" />
 | 
						|
                    <Condition Property="VirtualizingPanel.IsVirtualizingWhenGrouping" Value="false" />
 | 
						|
                </MultiTrigger.Conditions>
 | 
						|
                <Setter Property="ScrollViewer.CanContentScroll" Value="false" />
 | 
						|
            </MultiTrigger>
 | 
						|
            <Trigger SourceName="DropDownScrollViewer" Property="ScrollViewer.CanContentScroll" Value="false">
 | 
						|
                <Setter TargetName="opaqueRect" Property="Canvas.Top" Value="{Binding VerticalOffset, ElementName=DropDownScrollViewer}" />
 | 
						|
                <Setter TargetName="opaqueRect" Property="Canvas.Left" Value="{Binding HorizontalOffset, ElementName=DropDownScrollViewer}" />
 | 
						|
            </Trigger>
 | 
						|
        </ControlTemplate.Triggers>
 | 
						|
    </ControlTemplate>
 | 
						|
 | 
						|
    <Style TargetType="{x:Type local:SearchableComboBox}">
 | 
						|
        <Setter Property="FocusVisualStyle" Value="{StaticResource FocusVisual}" />
 | 
						|
        <Setter Property="Background" Value="{StaticResource ComboBox.Static.Background}" />
 | 
						|
        <Setter Property="BorderBrush" Value="{StaticResource ComboBox.Static.Border}" />
 | 
						|
        <Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.WindowTextBrushKey}}" />
 | 
						|
        <Setter Property="BorderThickness" Value="1" />
 | 
						|
        <Setter Property="BorderBrush" Value="Red"/>
 | 
						|
        <Setter Property="ScrollViewer.HorizontalScrollBarVisibility" Value="Auto" />
 | 
						|
        <Setter Property="ScrollViewer.VerticalScrollBarVisibility" Value="Auto" />
 | 
						|
        <Setter Property="Padding" Value="6,3,5,3" />
 | 
						|
        <Setter Property="ScrollViewer.CanContentScroll" Value="true" />
 | 
						|
        <Setter Property="ScrollViewer.PanningMode" Value="Both" />
 | 
						|
        <Setter Property="Stylus.IsFlicksEnabled" Value="False" />
 | 
						|
        <Setter Property="Template" Value="{StaticResource ComboBoxTemplate}" />
 | 
						|
    </Style>
 | 
						|
</ResourceDictionary>
 |