ComboBoxItemStyle.axaml 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. <Styles xmlns="https://github.com/avaloniaui"
  2. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  3. xmlns:icons="clr-namespace:SukiUI.Content">
  4. <Design.PreviewWith>
  5. <Border Padding="20">
  6. <StackPanel Spacing="10">
  7. <ComboBox PlaceholderText="Select an item">
  8. <ComboBoxItem>Item 1</ComboBoxItem>
  9. <ComboBoxItem>Item 2</ComboBoxItem>
  10. </ComboBox>
  11. <ComboBox Width="200"
  12. HorizontalContentAlignment="Center"
  13. IsEnabled="False"
  14. SelectedIndex="1">
  15. <ComboBoxItem>Item 1</ComboBoxItem>
  16. <ComboBoxItem>Item 2</ComboBoxItem>
  17. </ComboBox>
  18. </StackPanel>
  19. </Border>
  20. </Design.PreviewWith>
  21. <Style Selector="ComboBoxItem">
  22. <Setter Property="Background" Value="Transparent" />
  23. <Setter Property="Padding" Value="2" />
  24. <Setter Property="HorizontalAlignment" Value="Stretch" />
  25. <Setter Property="HorizontalContentAlignment" Value="Left" />
  26. <Setter Property="Template">
  27. <ControlTemplate>
  28. <Border Name="BorderBasicStyle"
  29. Margin="3,0,3,3"
  30. Padding="5,0"
  31. Background="{TemplateBinding Background}"
  32. BorderBrush="{TemplateBinding BorderBrush}"
  33. BorderThickness="{TemplateBinding BorderThickness}"
  34. CornerRadius="6">
  35. <DockPanel>
  36. <PathIcon Name="CheckSelected"
  37. Width="12"
  38. Height="12"
  39. Margin="0,0,3,0"
  40. Data="{x:Static icons:Icons.Check}"
  41. DockPanel.Dock="Right"
  42. Foreground="{DynamicResource SukiPrimaryColor}" />
  43. <ContentPresenter Name="PART_ContentPresenter"
  44. Margin="1"
  45. Padding="5"
  46. HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}"
  47. VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}"
  48. Content="{TemplateBinding Content}"
  49. ContentTemplate="{TemplateBinding ContentTemplate}"
  50. CornerRadius="{DynamicResource SmallCornerRadius}" />
  51. </DockPanel>
  52. </Border>
  53. </ControlTemplate>
  54. </Setter>
  55. </Style>
  56. <Style Selector="ComboBoxItem /template/ PathIcon#CheckSelected">
  57. <Setter Property="IsVisible" Value="False" />
  58. </Style>
  59. <Style Selector="ComboBoxItem:selected /template/ PathIcon#CheckSelected">
  60. <Setter Property="IsVisible" Value="True" />
  61. </Style>
  62. <Style Selector="ComboBoxItem:pointerover /template/ ContentPresenter">
  63. <Setter Property="Background" Value="Transparent" />
  64. </Style>
  65. <Style Selector="ComboBoxItem &gt; TextBlock">
  66. <Setter Property="Foreground" Value="{DynamicResource SukiText}" />
  67. </Style>
  68. <Style Selector="ComboBoxItem:selected /template/ ContentPresenter">
  69. <Setter Property="Background" Value="Transparent" />
  70. </Style>
  71. <Style Selector="ComboBoxItem:selected:focus /template/ ContentPresenter">
  72. <Setter Property="Background" Value="Transparent" />
  73. </Style>
  74. <Style Selector="ComboBoxItem:selected:pointerover /template/ ContentPresenter">
  75. <Setter Property="Background" Value="Transparent" />
  76. </Style>
  77. <Style Selector="ComboBoxItem:selected:focus:pointerover /template/ ContentPresenter">
  78. <Setter Property="Background" Value="Transparent" />
  79. </Style>
  80. <Style Selector="ComboBoxItem:pointerover /template/ Border#BorderBasicStyle">
  81. <Setter Property="Background" Value="{DynamicResource SukiLightBorderBrush}" />
  82. </Style>
  83. <Style Selector="ComboBoxItem:selected /template/ Border#BorderBasicStyle">
  84. <Setter Property="Background" Value="{DynamicResource SukiLightBorderBrush}" />
  85. </Style>
  86. <Style Selector="ComboBoxItem:selected:focus /template/ Border#BorderBasicStyle">
  87. <Setter Property="Background" Value="{DynamicResource SukiLightBorderBrush}" />
  88. </Style>
  89. <Style Selector="ComboBoxItem:selected:pointerover /template/ Border#BorderBasicStyle">
  90. <Setter Property="Background" Value="{DynamicResource SukiLightBorderBrush}" />
  91. </Style>
  92. <Style Selector="ComboBoxItem:selected:focus:pointerover /template/ Border#BorderBasicStyle">
  93. <Setter Property="Background" Value="{DynamicResource SukiLightBorderBrush}" />
  94. </Style>
  95. </Styles>