Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions Material.Avalonia.Demo/Pages/ComboBoxesDemo.axaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
xmlns:showMeTheXaml="clr-namespace:ShowMeTheXaml;assembly=ShowMeTheXaml.Avalonia"
xmlns:assist="clr-namespace:Material.Styles.Assists;assembly=Material.Styles"
xmlns:assists="clr-namespace:Material.Styles.Assists;assembly=Material.Styles"
xmlns:system="clr-namespace:System;assembly=System.Runtime"
xmlns:generic="using:System.Collections.Generic"
xmlns:sys="clr-namespace:System;assembly=mscorlib"
Expand Down Expand Up @@ -46,15 +46,15 @@
</ComboBox>
</showMeTheXaml:XamlDisplay>
<showMeTheXaml:XamlDisplay UniqueId="ComboBoxes3">
<ComboBox Theme="{StaticResource MaterialOutlineComboBox}" assist:ComboBoxAssist.Label="ComboBox">
<ComboBox Theme="{StaticResource MaterialOutlineComboBox}" assists:ComboBoxAssist.Label="ComboBox">
<ComboBoxItem>Item 1</ComboBoxItem>
<ComboBoxItem>Item 2</ComboBoxItem>
<ComboBoxItem>Item 3</ComboBoxItem>
<ComboBoxItem>Item 4</ComboBoxItem>
</ComboBox>
</showMeTheXaml:XamlDisplay>
<showMeTheXaml:XamlDisplay UniqueId="ComboBoxesDense">
<ComboBox Theme="{StaticResource MaterialOutlineComboBox}" assist:ComboBoxAssist.Label="ComboBoxDense"
<ComboBox Theme="{StaticResource MaterialOutlineComboBox}" assists:ComboBoxAssist.Label="ComboBoxDense"
Classes="dense">
<ComboBoxItem>Item 1</ComboBoxItem>
<ComboBoxItem>Item 2</ComboBoxItem>
Expand Down Expand Up @@ -100,7 +100,7 @@
</AutoCompleteBox>
</showMeTheXaml:XamlDisplay>
<showMeTheXaml:XamlDisplay UniqueId="AutoCompleteBoxes1">
<AutoCompleteBox Watermark="Select a Item">
<AutoCompleteBox assists:TextFieldAssist.Label="Countries" assists:AutoCompleteBoxAssist.UseFloatingWatermark="True" Watermark="Select a Item">
<AutoCompleteBox.ItemsSource>
<generic:List x:TypeArguments="x:String">
<sys:String>Alabama</sys:String>
Expand All @@ -116,7 +116,7 @@
</AutoCompleteBox>
</showMeTheXaml:XamlDisplay>
<showMeTheXaml:XamlDisplay UniqueId="AutoCompleteBoxes2">
<AutoCompleteBox Theme="{StaticResource MaterialFilledAutoCompleteBox}" Watermark="Select a Item">
<AutoCompleteBox assists:TextFieldAssist.Label="Countries" assists:AutoCompleteBoxAssist.UseFloatingWatermark="True" Theme="{StaticResource MaterialFilledAutoCompleteBox}" Watermark="Select a Item">
<AutoCompleteBox.ItemsSource>
<generic:List x:TypeArguments="x:String">
<sys:String>Alabama</sys:String>
Expand Down
16 changes: 16 additions & 0 deletions Material.Styles/Assists/AutoCompleteBoxAssist.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
using Avalonia;
using Avalonia.Controls;

namespace Material.Styles.Assists {
public static class AutoCompleteBoxAssist {
public static readonly AttachedProperty<bool> UseFloatingWatermarkProperty =
AvaloniaProperty.RegisterAttached<AutoCompleteBox, bool>(
"UseFloatingWatermark", typeof(AutoCompleteBox), false);

public static void SetUseFloatingWatermark(AvaloniaObject element, bool value) =>
element.SetValue(UseFloatingWatermarkProperty, value);

public static bool GetUseFloatingWatermark(AvaloniaObject element) =>
element.GetValue(UseFloatingWatermarkProperty);
}
}
42 changes: 17 additions & 25 deletions Material.Styles/Resources/Themes/AutoCompleteBox.axaml
Original file line number Diff line number Diff line change
@@ -1,11 +1,7 @@
<ResourceDictionary xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<ResourceDictionary xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:assists="clr-namespace:Material.Styles.Assists;assembly=Material.Styles">
<ControlTheme x:Key="MaterialAutoCompleteBox" TargetType="AutoCompleteBox">
<Setter Property="Background" Value="Transparent" />
<Setter Property="BorderBrush" Value="{DynamicResource MaterialTextBoxBorderBrush}" />
<Setter Property="BorderThickness" Value="0" />
<Setter Property="Padding" Value="4" />
<Setter Property="Margin" Value="4" />
<Setter Property="Template">
<ControlTemplate>
<Panel>
Expand All @@ -14,9 +10,12 @@
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"
CornerRadius="{TemplateBinding CornerRadius}"
InnerLeftContent="{TemplateBinding InnerLeftContent}"
InnerRightContent="{TemplateBinding InnerRightContent}"
Padding="{TemplateBinding Padding}"
Margin="{TemplateBinding Margin}"
UseFloatingWatermark="{TemplateBinding assists:AutoCompleteBoxAssist.UseFloatingWatermark}"
Watermark="{TemplateBinding Watermark}"
assists:TextFieldAssist.Label="{TemplateBinding assists:TextFieldAssist.Label}"
DataValidationErrors.Errors="{TemplateBinding (DataValidationErrors.Errors)}" />

<Popup Name="PART_Popup"
Expand Down Expand Up @@ -46,29 +45,22 @@
<ControlTheme x:Key="MaterialFilledAutoCompleteBox"
BasedOn="{StaticResource MaterialAutoCompleteBox}"
TargetType="AutoCompleteBox">
<Setter Property="Background" Value="{DynamicResource MaterialTextFieldBoxBackgroundBrush}" />
<Setter Property="CornerRadius" Value="4,4,0,0" />
<Setter Property="Padding" Value="16,8" />

<Style Selector="^ /template/ TextBox#PART_TextBox">
<Setter Property="Theme" Value="{DynamicResource FilledTextBox}" />
</Style>

<Style Selector="^:pointerover">
<Setter Property="Background" Value="{DynamicResource MaterialTextFieldBoxHoverBackgroundBrush}" />
</Style>
</ControlTheme>

<ControlTheme x:Key="MaterialOutlineAutoCompleteBox"
BasedOn="{StaticResource MaterialAutoCompleteBox}"
TargetType="AutoCompleteBox">
<Setter Property="BorderThickness" Value="1" />
<Setter Property="BorderBrush" Value="{DynamicResource MaterialTextBoxBorderBrush}" />
<Setter Property="CornerRadius" Value="4" />
<Setter Property="Padding" Value="16,8" />

<Style Selector="^">
<Setter Property="BorderThickness" Value="1" />
</Style>

<Style Selector="^:focus-within">
<Setter Property="BorderBrush" Value="{DynamicResource MaterialPrimaryMidBrush}" />
<Setter Property="BorderThickness" Value="2" />
<Style Selector="^ /template/ TextBlock#floatingWatermark">
<Setter Property="Foreground" Value="{DynamicResource MaterialPrimaryMidBrush}" />
</Style>
<Style Selector="^ /template/ TextBox#PART_TextBox">
<Setter Property="Theme" Value="{DynamicResource OutlineTextBox}" />
</Style>
</ControlTheme>
</ResourceDictionary>