Skip to content

ComboBox Drop Down Does Not Open When Text Is Clicked #6

@jsmcneal

Description

@jsmcneal

ComboBox Drop Down only works when the down arrow is clicked.

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> <Style x:Key="ComboBoxStyle" TargetType="{x:Type ComboBox}"> <Setter Property="OverridesDefaultStyle" Value="True" /> <Setter Property="Background" Value="{DynamicResource TextBoxBackgroundBrush}" /> <Setter Property="Foreground" Value="{DynamicResource TextBoxForegroundBrush}" /> <Setter Property="ScrollViewer.HorizontalScrollBarVisibility" Value="Auto" /> <Setter Property="ScrollViewer.VerticalScrollBarVisibility" Value="Auto" /> <Setter Property="ScrollViewer.CanContentScroll" Value="True" /> <Setter Property="TextElement.Foreground" Value="{DynamicResource TextBoxForegroundBrush}" /> <Setter Property="FocusVisualStyle" Value="{x:Null}" /> <Setter Property="Validation.ErrorTemplate" Value="{DynamicResource ValidationErrorOverlayTemplate}" /> <Setter Property="Padding" Value="3,0" /> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type ComboBox}"> <Grid> <TextBox x:Name="PART_EditableTextBox" IsReadOnly="{TemplateBinding IsReadOnly}" Focusable="True" Style="{DynamicResource TextBoxStyle}" Visibility="Hidden" /> <Border x:Name="NonEditableBorder" Background="{DynamicResource ComboBoxNonEditableBackgroundBrush}" BorderThickness="1" BorderBrush="{DynamicResource ComboBoxNonEditableBorderBrush}"> <ContentPresenter IsHitTestVisible="False" HorizontalAlignment="Left" VerticalAlignment="Center" Content="{TemplateBinding ComboBox.SelectionBoxItem}" ContentTemplate="{TemplateBinding ComboBox.SelectionBoxItemTemplate}" ContentTemplateSelector="{TemplateBinding ItemTemplateSelector}" Margin="{TemplateBinding Padding}" /> </Border> <ToggleButton x:Name="ToggleButton" ClickMode="Press" HorizontalAlignment="Right" Background="{DynamicResource ComboBoxButtonBackgroundBrush}" BorderBrush="{DynamicResource ComboBoxButtonBorderBrush}" BorderThickness="0" Foreground="{DynamicResource ComboBoxButtonForegroundBrush}" IsChecked="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=IsDropDownOpen, Mode=TwoWay}"> <ToggleButton.Template> <ControlTemplate TargetType="{x:Type ToggleButton}"> <Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="*" /> <ColumnDefinition Width="20" /> </Grid.ColumnDefinitions> <Border Grid.Column="1" x:Name="ButtonBorder" Margin="0" BorderThickness="{TemplateBinding BorderThickness}" BorderBrush="{TemplateBinding BorderBrush}" Background="{TemplateBinding Background}" /> <Path x:Name="Arrow" Grid.Column="1" Data="M0,0 L0,2 L4,6 L8,2 L8,0 L4,4 z" Fill="{TemplateBinding Foreground}" HorizontalAlignment="Center" VerticalAlignment="Center" /> </Grid> <ControlTemplate.Triggers> <Trigger Property="IsMouseOver" Value="True"> <Setter TargetName="ButtonBorder" Property="Background" Value="{DynamicResource ComboBoxButtonHoverBackgroundBrush}" /> </Trigger> <Trigger Property="IsPressed" Value="True"> <Setter TargetName="ButtonBorder" Property="Background" Value="{DynamicResource ComboBoxButtonPressBackgroundBrush}" /> </Trigger> <Trigger Property="IsChecked" Value="True"> <Setter TargetName="ButtonBorder" Property="Background" Value="{DynamicResource ComboBoxButtonCheckedBackgroundBrush}" /> </Trigger> <Trigger Property="IsEnabled" Value="False"> <Setter TargetName="ButtonBorder" Property="Background" Value="{DynamicResource ComboBoxButtonDisabledBackgroundBrush}" /> <Setter TargetName="ButtonBorder" Property="BorderBrush" Value="{DynamicResource ComboBoxButtonDisabledBorderBrush}" /> <Setter TargetName="Arrow" Property="Fill" Value="{DynamicResource ComboBoxButtonDisabledForegroundBrush}" /> </Trigger> </ControlTemplate.Triggers> </ControlTemplate> </ToggleButton.Template> </ToggleButton> <Popup Placement="Bottom" Focusable="False" AllowsTransparency="True" IsOpen="{TemplateBinding ComboBox.IsDropDownOpen}" PopupAnimation="Slide"> <Grid MinWidth="{TemplateBinding ActualWidth}" MaxHeight="{TemplateBinding MaxDropDownHeight}"> <Border BorderThickness="1" Background="{DynamicResource ComboBoxListBackgroundBrush}" BorderBrush="{DynamicResource ComboBoxListBorderBrush}" Margin="0,1,0,0"> <ScrollViewer SnapsToDevicePixels="True"> <ItemsPresenter KeyboardNavigation.DirectionalNavigation="Contained" /> </ScrollViewer> </Border> </Grid> </Popup> </Grid> <ControlTemplate.Triggers> <Trigger Property="IsMouseOver" Value="True"> <Setter TargetName="NonEditableBorder" Property="Background" Value="{DynamicResource ComboBoxNonEditableHoverBackgroundBrush}" /> </Trigger> <Trigger Property="IsEnabled" Value="False"> <Setter TargetName="NonEditableBorder" Property="Background" Value="{DynamicResource ComboBoxNonEditableDisabledBackgroundBrush}" /> <Setter TargetName="NonEditableBorder" Property="BorderBrush" Value="{DynamicResource ComboBoxNonEditableDisabledBorderBrush}" /> </Trigger> <Trigger Property="IsEditable" Value="True"> <Setter Property="IsTabStop" Value="False" /> <Setter TargetName="PART_EditableTextBox" Property="Visibility" Value="Visible" /> <Setter TargetName="NonEditableBorder" Property="Visibility" Value="Hidden" /> <Setter TargetName="ToggleButton" Property="BorderThickness" Value="1,0,0,0" /> <Setter TargetName="ToggleButton" Property="Focusable" Value="False" /> </Trigger> </ControlTemplate.Triggers> </ControlTemplate> </Setter.Value> </Setter> </Style> </ResourceDictionary>

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions