Skip to content

Commit

Permalink
Merge pull request #239 from JanTamis/3.0_major_update_ControlTheme
Browse files Browse the repository at this point in the history
Update ControlThemes
  • Loading branch information
SKProCH committed Jun 15, 2023
2 parents a1cf240 + c4e9a0c commit 77ea46c
Show file tree
Hide file tree
Showing 19 changed files with 947 additions and 26 deletions.
2 changes: 1 addition & 1 deletion Material.Demo/Pages/ButtonsDemo.axaml
Original file line number Diff line number Diff line change
Expand Up @@ -188,4 +188,4 @@
</StackPanel>

</StackPanel>
</UserControl>
</UserControl>
1 change: 1 addition & 0 deletions Material.Ripple/Material.Ripple.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
<PackageProjectUrl>https://github.com/AvaloniaUtils/material.avalonia</PackageProjectUrl>
<RepositoryUrl>https://github.com/AvaloniaUtils/material.avalonia</RepositoryUrl>
<RepositoryType>git</RepositoryType>
<LangVersion>latest</LangVersion>
</PropertyGroup>

<ItemGroup>
Expand Down
15 changes: 5 additions & 10 deletions Material.Styles/Material.Styles.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -15,29 +15,24 @@
</PropertyGroup>

<ItemGroup>
<None Remove="Fonts\**"/>
<AvaloniaResource Include="Fonts\**"/>
<None Remove="Fonts\**" />
<AvaloniaResource Include="Fonts\**" />

<AvaloniaResource Include="**\*.xaml">
<SubType>Designer</SubType>
</AvaloniaResource>
</ItemGroup>

<ItemGroup>
<ProjectReference Include="..\Material.Colors\Material.Colors.csproj"/>
<ProjectReference Include="..\Material.Ripple\Material.Ripple.csproj"/>
<ProjectReference Include="..\Material.Colors\Material.Colors.csproj" />
<ProjectReference Include="..\Material.Ripple\Material.Ripple.csproj" />
</ItemGroup>

<ItemGroup>
<PackageReference Include="aqua.tool.polyfill.IsExternalInit">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="System.Reactive"/>
<PackageReference Include="System.Reactive" />
</ItemGroup>

<ItemGroup>
<AvaloniaXaml Remove="Resources\Themes\WindowNotificationManager.axaml"/>
</ItemGroup>

</Project>
40 changes: 27 additions & 13 deletions Material.Styles/MaterialToolKit.xaml
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,19 @@
<!-- Seems like we cant reference something from other projects... -->
<!-- I think what we need to move ripple to this project -->
<ResourceInclude Source="avares://Material.Ripple/Theme.axaml" />
<ResourceInclude Source="avares://Material.Styles/Resources/Themes/AutoCompleteBox.axaml" />
<ResourceInclude Source="avares://Material.Styles/Resources/Themes/Button.axaml" />
<ResourceInclude Source="avares://Material.Styles/Resources/Themes/ButtonSpinner.axaml" />
<ResourceInclude Source="avares://Material.Styles/Resources/Themes/Calendar.axaml" />
<ResourceInclude Source="avares://Material.Styles/Resources/Themes/CalendarButton.axaml" />
<ResourceInclude Source="avares://Material.Styles/Resources/Themes/CalendarDayButton.axaml" />
<ResourceInclude Source="avares://Material.Styles/Resources/Themes/CalendarItem.axaml" />
<ResourceInclude Source="avares://Material.Styles/Resources/Themes/ColorZone.axaml" />
<ResourceInclude Source="avares://Material.Styles/Resources/Themes/FloatingButton.axaml" />
<ResourceInclude Source="avares://Material.Styles/Resources/Themes/ToggleSwitch.axaml" />
<ResourceInclude Source="avares://Material.Styles/Resources/Themes/ToggleButton.axaml" />
<ResourceInclude Source="avares://Material.Styles/Resources/Themes/Expander.axaml" />
<ResourceInclude Source="avares://Material.Styles/Resources/Themes/Carousel.axaml" />
<ResourceInclude Source="avares://Material.Styles/Resources/Themes/CheckBox.axaml" />
<ResourceInclude Source="avares://Material.Styles/Resources/Themes/ContentControl.axaml" />
<ResourceInclude Source="avares://Material.Styles/Resources/Themes/ContentExpandControl.axaml" />
Expand All @@ -33,9 +41,11 @@
<ResourceInclude Source="avares://Material.Styles/Resources/Themes/ScrollViewer.axaml" />
<ResourceInclude Source="avares://Material.Styles/Resources/Themes/Label.axaml" />
<ResourceInclude Source="avares://Material.Styles/Resources/Themes/ListBox.axaml" />
<ResourceInclude Source="avares://Material.Styles/Resources/Themes/MaterialInternalIcon.axaml" />
<ResourceInclude Source="avares://Material.Styles/Resources/Themes/NativeMenuBar.axaml" />
<ResourceInclude Source="avares://Material.Styles/Resources/Themes/NavigationDrawer.axaml" />
<ResourceInclude Source="avares://Material.Styles/Resources/Themes/NotificationCard.axaml" />
<ResourceInclude Source="avares://Material.Styles/Resources/Themes/NumericUpDown.axaml" />
<ResourceInclude Source="avares://Material.Styles/Resources/Themes/OverlayPopupHost.axaml" />
<ResourceInclude Source="avares://Material.Styles/Resources/Themes/PopupRoot.axaml" />
<ResourceInclude Source="avares://Material.Styles/Resources/Themes/ListBoxItem.axaml" />
Expand All @@ -51,6 +61,9 @@
<ResourceInclude Source="avares://Material.Styles/Resources/Themes/Separator.axaml" />
<ResourceInclude Source="avares://Material.Styles/Resources/Themes/SplitView.axaml" />

<ResourceInclude Source="avares://Material.Styles/Resources/Themes/CircleClockPicker.axaml" />
<ResourceInclude Source="avares://Material.Styles/Resources/Themes/CircleClockPickerCell.axaml" />

<ResourceInclude Source="avares://Material.Styles/Resources/Themes/TabControl.axaml" />
<ResourceInclude Source="avares://Material.Styles/Resources/Themes/TabItem.axaml" />
<ResourceInclude Source="avares://Material.Styles/Resources/Themes/TabStrip.axaml" />
Expand All @@ -60,6 +73,7 @@
<ResourceInclude Source="avares://Material.Styles/Resources/Themes/ProgressBar.axaml" />
<ResourceInclude Source="avares://Material.Styles/Resources/Themes/Slider.axaml" />
<ResourceInclude Source="avares://Material.Styles/Resources/Themes/SideSheet.axaml" />
<ResourceInclude Source="avares://Material.Styles/Resources/Themes/WindowNotificationManager.axaml" />
</ResourceDictionary.MergedDictionaries>
<SolidColorBrush x:Key="MaterialDesignLightBackground" Color="#FFFAFAFA" />
<SolidColorBrush x:Key="MaterialDesignLightForeground" Color="#DD000000" />
Expand All @@ -74,16 +88,16 @@

<!--custom controls-->

<StyleInclude Source="avares://Material.Styles/FloatingButton.xaml" />
<!-- <StyleInclude Source="avares://Material.Styles/FloatingButton.xaml" /> -->
<StyleInclude Source="avares://Material.Styles/Card.xaml" />
<StyleInclude Source="avares://Material.Styles/ColorZone.xaml" />
<!-- <StyleInclude Source="avares://Material.Styles/ColorZone.xaml" /> -->
<!--<StyleInclude Source="avares://Material.Styles/NavigationDrawer.xaml"/>-->
<!--<StyleInclude Source="avares://Material.Styles/MaterialUnderline.xaml"/>-->
<StyleInclude Source="avares://Material.Styles/SnackbarHost.xaml" />
<StyleInclude Source="avares://Material.Styles/MaterialInternalIcon.axaml" />
<!-- <StyleInclude Source="avares://Material.Styles/MaterialInternalIcon.axaml" /> -->

<StyleInclude Source="avares://Material.Styles/CircleClockPickerCell.axaml" />
<StyleInclude Source="avares://Material.Styles/CircleClockPicker.axaml" />
<!-- <StyleInclude Source="avares://Material.Styles/CircleClockPickerCell.axaml" /> -->
<!-- <StyleInclude Source="avares://Material.Styles/CircleClockPicker.axaml" /> -->

<!-- Basic controls -->

Expand All @@ -99,11 +113,11 @@

<!-- Uncommented -->

<StyleInclude Source="avares://Material.Styles/AutoCompleteBox.xaml" />
<StyleInclude Source="avares://Material.Styles/CalendarButton.xaml" />
<StyleInclude Source="avares://Material.Styles/CalendarDayButton.xaml" />
<StyleInclude Source="avares://Material.Styles/CalendarItem.xaml" />
<StyleInclude Source="avares://Material.Styles/Carousel.xaml" />
<!-- <StyleInclude Source="avares://Material.Styles/AutoCompleteBox.xaml" /> -->
<!-- <StyleInclude Source="avares://Material.Styles/CalendarButton.xaml" /> -->
<!-- <StyleInclude Source="avares://Material.Styles/CalendarDayButton.xaml" /> -->
<!-- <StyleInclude Source="avares://Material.Styles/CalendarItem.xaml" /> -->
<!-- <StyleInclude Source="avares://Material.Styles/Carousel.xaml" /> -->
<!--<StyleInclude Source="avares://Material.Styles/CheckBox.xaml" />-->
<StyleInclude Source="avares://Material.Styles/ComboBox.xaml" />
<StyleInclude Source="avares://Material.Styles/ComboBoxItem.xaml" />
Expand All @@ -129,7 +143,7 @@
<StyleInclude Source="avares://Material.Styles/MenuItem.xaml" />
<!-- <StyleInclude Source="avares://Material.Styles/NativeMenuBar.xaml" /> -->
<!-- <StyleInclude Source="avares://Material.Styles/NotificationCard.xaml" /> -->
<StyleInclude Source="avares://Material.Styles/NumericUpDown.xaml" />
<!-- <StyleInclude Source="avares://Material.Styles/NumericUpDown.xaml" /> -->
<!-- <StyleInclude Source="avares://Material.Styles/OverlayPopupHost.xaml" /> -->
<!-- <StyleInclude Source="avares://Material.Styles/PopupRoot.xaml" /> -->
<!-- <StyleInclude Source="avares://Material.Styles/ProgressBar.xaml" /> -->
Expand All @@ -148,12 +162,12 @@
<!-- <StyleInclude Source="avares://Material.Styles/ToolTip.xaml" /> -->
<!--<StyleInclude Source="avares://Material.Styles/TreeView.xaml" />-->
<StyleInclude Source="avares://Material.Styles/UserControl.xaml" />
<StyleInclude Source="avares://Material.Styles/WindowNotificationManager.xaml" />
<!-- <StyleInclude Source="avares://Material.Styles/WindowNotificationManager.xaml" /> -->

<!-- Complex controls -->


<StyleInclude Source="avares://Material.Styles/Calendar.xaml" />
<!-- <StyleInclude Source="avares://Material.Styles/Calendar.xaml" /> -->
<!--<StyleInclude Source="avares://Material.Styles/ScrollViewer.xaml" />-->
<!--<StyleInclude Source="avares://Material.Styles/Scroller.xaml" />-->
<!--<StyleInclude Source="avares://Material.Styles/Slider.xaml" />-->
Expand Down
14 changes: 14 additions & 0 deletions Material.Styles/Resources/Naming/PartNames.cs
Original file line number Diff line number Diff line change
Expand Up @@ -132,11 +132,25 @@ public static class PartNames
/// </summary>
public static string AvaloniaSwitchKnob => "PART_SwitchKnob";

/// <summary>
/// <b>avaloniaUI before-11.0 Compatibility use!</b>
/// <p>This name is used for AvaloniaUI integration.</p>
/// <p>Use this name on canvas of ToggleSwitch to get a zone for draggable knob</p>
/// </summary>
public static string AvaloniaSwitchKnobOld => "SwitchKnob";

/// <summary>
/// <p>This name is used for AvaloniaUI integration.</p>
/// Use this name on panel under of canvas of ToggleSwitch to get a draggable knob
/// </summary>
public static string AvaloniaMovingKnobs => "PART_MovingKnobs";

/// <summary>
/// <b>avaloniaUI before-11.0 Compatibility use!</b>
/// <p>This name is used for AvaloniaUI integration.</p>
/// Use this name on panel under of canvas of ToggleSwitch to get a draggable knob
/// </summary>
public static string AvaloniaMovingKnobsOld => "MovingKnobs";

#endregion

Expand Down
41 changes: 41 additions & 0 deletions Material.Styles/Resources/Themes/AutoCompleteBox.axaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
<ResourceDictionary xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<ControlTheme x:Key="{x:Type AutoCompleteBox}"
TargetType="AutoCompleteBox">
<Setter Property="Background" Value="Transparent" />
<Setter Property="BorderBrush" Value="{DynamicResource MaterialDesignTextBoxBorder}" />
<Setter Property="BorderThickness" Value="1" />
<Setter Property="Padding" Value="4" />
<Setter Property="Template">
<ControlTemplate>
<Panel>
<TextBox Name="PART_TextBox"
Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"
Padding="{TemplateBinding Padding}"
Watermark="{TemplateBinding Watermark}"
DataValidationErrors.Errors="{TemplateBinding (DataValidationErrors.Errors)}" />

<Popup Name="PART_Popup"
MinWidth="{Binding Bounds.Width, RelativeSource={RelativeSource TemplatedParent}}"
MaxHeight="{TemplateBinding MaxDropDownHeight}"
PlacementTarget="{TemplateBinding}"
IsLightDismissEnabled="True">
<Border BorderBrush="{DynamicResource MaterialDesignTextAreaBorder}"
BorderThickness="1">
<ListBox Name="PART_SelectingItemsControl"
BorderThickness="0"
Background="{TemplateBinding Background}"
Foreground="{TemplateBinding Foreground}"
ItemTemplate="{TemplateBinding ItemTemplate}"
ScrollViewer.HorizontalScrollBarVisibility="Auto"
ScrollViewer.VerticalScrollBarVisibility="Auto" />
</Border>
</Popup>
</Panel>
</ControlTemplate>
</Setter>
</ControlTheme>
</ResourceDictionary>

45 changes: 45 additions & 0 deletions Material.Styles/Resources/Themes/Calendar.axaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
<ResourceDictionary xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<ControlTheme x:Key="{x:Type Calendar}"
TargetType="Calendar">
<Setter Property="Background" Value="Transparent" />
<Setter Property="BorderThickness" Value="0" />
<Setter Property="HeaderBackground" Value="Transparent" />
<Setter Property="Template">
<ControlTemplate>
<Panel Name="PART_Root" ClipToBounds="True">
<CalendarItem Name="PART_CalendarItem"
Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"
HeaderBackground="{TemplateBinding HeaderBackground}" />
</Panel>
</ControlTemplate>
</Setter>

<!-- TODO: multiselect variant -->
<!--
<Style Selector="Calendar[SelectionMode=MultipleRange] /template/
CalendarItem /template/
Grid#MonthView > CalendarDayButton:selected:nth-child(n+2):not(:nth-last-child(1))">
<Setter Property="CornerRadius" Value="0"/>
<Setter Property="Padding" Value="0,2,0,2"/>
</Style>
<Style Selector="Calendar[SelectionMode=MultipleRange] /template/
CalendarItem /template/
Grid#MonthView > CalendarDayButton:selected:nth-last-child(n+1):not(:nth-last-child(n+2))">
<Setter Property="CornerRadius" Value="0,18,18,0"/>
<Setter Property="Padding" Value="0,2,2,2"/>
</Style>-->

<Style
Selector="^[SelectionMode=MultipleRange] /template/
CalendarItem /template/
Grid#MonthView > CalendarDayButton:selected:nth-child(n+2)">
<Setter Property="CornerRadius" Value="18,0,0,18" />
<Setter Property="Padding" Value="2,2,0,2" />
</Style>
</ControlTheme>
</ResourceDictionary>

74 changes: 74 additions & 0 deletions Material.Styles/Resources/Themes/CalendarButton.axaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
<ResourceDictionary xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<ControlTheme x:Key="{x:Type CalendarButton}"
TargetType="CalendarButton">
<Setter Property="ClickMode" Value="Release" />
<Setter Property="MinWidth" Value="40" />
<Setter Property="MinHeight" Value="40" />
<Setter Property="Foreground" Value="{DynamicResource MaterialDesignBody}" />
<Setter Property="Background" Value="Transparent" />
<Setter Property="BorderBrush" Value="{DynamicResource PrimaryHueMidBrush}" />
<Setter Property="BorderThickness" Value="2" />
<Setter Property="FontSize" Value="20" />
<Setter Property="ClipToBounds" Value="False" />
<Setter Property="HorizontalAlignment" Value="Center" />
<Setter Property="VerticalAlignment" Value="Center" />
<Setter Property="HorizontalContentAlignment" Value="Center" />
<Setter Property="VerticalContentAlignment" Value="Center" />
<Setter Property="Template">
<ControlTemplate>
<Panel>
<Border Name="PART_InnerBorder" CornerRadius="2"
Background="{TemplateBinding BorderBrush}" />

<Border Name="Root" Background="{TemplateBinding Background}"
BorderThickness="0" ClipToBounds="True">
<ContentControl Name="Content"
ContentTemplate="{TemplateBinding ContentTemplate}"
Content="{TemplateBinding Content}"
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
FontSize="{TemplateBinding FontSize}"
Margin="{TemplateBinding Padding}" />
</Border>

<Border Name="PART_Border" CornerRadius="2"
BorderBrush="{TemplateBinding BorderBrush}" />
</Panel>
</ControlTemplate>
</Setter>

<Style Selector="^ TextBlock">
<Setter Property="VerticalAlignment" Value="Center" />
<Setter Property="HorizontalAlignment" Value="Center" />
<Setter Property="TextAlignment" Value="Center" />
</Style>

<Style Selector="^ /template/ Border#PART_Border">
<Setter Property="Opacity" Value="0" />
<Setter Property="BorderThickness" Value="0" />
</Style>

<Style Selector="^ /template/ Border#PART_InnerBorder">
<Setter Property="Opacity" Value="0" />
</Style>

<Style Selector="^:pointerover /template/ Border#PART_InnerBorder">
<Setter Property="Opacity" Value="0.32" />
</Style>
<Style Selector="^:pressed /template/ Border#PART_InnerBorder">
<Setter Property="Opacity" Value="1" />
</Style>
<Style Selector="^:selected /template/ Border#PART_InnerBorder">
<Setter Property="Opacity" Value="1" />
</Style>

<Style Selector="^:inactive /template/ Border#Root">
<Setter Property="Opacity" Value="0.32" />
</Style>

<Style Selector="^:disabled /template/ ContentControl#Content">
<Setter Property="Opacity" Value="0.32" />
</Style>
</ControlTheme>
</ResourceDictionary>
Loading

0 comments on commit 77ea46c

Please sign in to comment.