Files
ClassicAssist.Avalonia/ClassicAssist/Browser/Controls/ClearableComboBox.xaml
T
Beyhan Oğur d5f52cc3d3 first commit
2026-09-03 04:45:36 +03:00

151 lines
11 KiB
XML

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:controls="clr-namespace:ClassicAssist.Browser.Controls">
<SolidColorBrush x:Key="ThemeForegroundBrush" Color="#CCCCCC" />
<DrawingImage x:Key="ClearIcon">
<DrawingImage.Drawing>
<DrawingGroup ClipGeometry="M0,0 V512.001 H512.001 V0 H0 Z">
<DrawingGroup.Transform>
<TranslateTransform X="0.000250011682510376" Y="0" />
</DrawingGroup.Transform>
<DrawingGroup Opacity="1">
<DrawingGroup Opacity="1">
<GeometryDrawing Brush="{DynamicResource ThemeForegroundBrush}"
Geometry="F1 M512.001,512.001z M0,0z M284.286,256.002L506.143,34.144C513.954,26.333 513.954,13.669 506.143,5.859 498.332,-1.951 485.668,-1.952 477.858,5.859L256,227.717 34.143,5.859C26.332,-1.952 13.668,-1.952 5.858,5.859 -1.952,13.67 -1.953,26.334 5.858,34.144L227.715,256.001 5.858,477.859C-1.953,485.67 -1.953,498.334 5.858,506.144 9.763,510.049 14.882,512.001 20.001,512.001 25.12,512.001 30.238,510.049 34.144,506.144L256,284.287 477.857,506.144C481.762,510.049 486.881,512.001 492,512.001 497.119,512.001 502.237,510.049 506.143,506.144 513.954,498.333 513.954,485.669 506.143,477.859L284.286,256.002z" />
</DrawingGroup>
</DrawingGroup>
</DrawingGroup>
</DrawingImage.Drawing>
</DrawingImage>
<Style TargetType="{x:Type controls:ClearableComboBox}">
<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 controls:ClearableComboBox}">
<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}" DockPanel.Dock="Left" />
</Border>
<Button x:Name="ClearButton" Padding="0" Background="Transparent"
BorderBrush="Transparent" BorderThickness="0" Width="8" Height="8" Margin="0,0,20,0"
HorizontalAlignment="Right">
<Image Source="{DynamicResource ClearIcon}" Height="8" />
</Button>
<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>