Browse Source

Merge branch 'master' into compiledbindings-themes

pull/7388/head
Tako 5 years ago
committed by GitHub
parent
commit
eb86044226
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 21
      samples/ControlCatalog/App.xaml.cs
  2. 2
      samples/ControlCatalog/MainView.xaml.cs
  3. 2
      src/Avalonia.Controls/Platform/DefaultMenuInteractionHandler.cs
  4. 4
      src/Avalonia.Diagnostics/Diagnostics/Views/MainWindow.xaml
  5. 64
      src/Avalonia.Themes.Default/Accents/Base.xaml
  6. 77
      src/Avalonia.Themes.Default/Accents/BaseDark.xaml
  7. 82
      src/Avalonia.Themes.Default/Accents/BaseLight.xaml
  8. 5
      src/Avalonia.Themes.Default/Avalonia.Themes.Default.csproj
  9. 0
      src/Avalonia.Themes.Default/Controls/AutoCompleteBox.xaml
  10. 0
      src/Avalonia.Themes.Default/Controls/Button.xaml
  11. 0
      src/Avalonia.Themes.Default/Controls/ButtonSpinner.xaml
  12. 0
      src/Avalonia.Themes.Default/Controls/Calendar.xaml
  13. 0
      src/Avalonia.Themes.Default/Controls/CalendarButton.xaml
  14. 0
      src/Avalonia.Themes.Default/Controls/CalendarDatePicker.xaml
  15. 0
      src/Avalonia.Themes.Default/Controls/CalendarDayButton.xaml
  16. 0
      src/Avalonia.Themes.Default/Controls/CalendarItem.xaml
  17. 0
      src/Avalonia.Themes.Default/Controls/CaptionButtons.xaml
  18. 0
      src/Avalonia.Themes.Default/Controls/Carousel.xaml
  19. 0
      src/Avalonia.Themes.Default/Controls/CheckBox.xaml
  20. 0
      src/Avalonia.Themes.Default/Controls/ComboBox.xaml
  21. 0
      src/Avalonia.Themes.Default/Controls/ComboBoxItem.xaml
  22. 0
      src/Avalonia.Themes.Default/Controls/ContentControl.xaml
  23. 0
      src/Avalonia.Themes.Default/Controls/ContextMenu.xaml
  24. 0
      src/Avalonia.Themes.Default/Controls/DataValidationErrors.xaml
  25. 0
      src/Avalonia.Themes.Default/Controls/DatePicker.xaml
  26. 0
      src/Avalonia.Themes.Default/Controls/EmbeddableControlRoot.xaml
  27. 0
      src/Avalonia.Themes.Default/Controls/Expander.xaml
  28. 0
      src/Avalonia.Themes.Default/Controls/FlyoutPresenter.xaml
  29. 0
      src/Avalonia.Themes.Default/Controls/FocusAdorner.xaml
  30. 0
      src/Avalonia.Themes.Default/Controls/GridSplitter.xaml
  31. 0
      src/Avalonia.Themes.Default/Controls/ItemsControl.xaml
  32. 0
      src/Avalonia.Themes.Default/Controls/Label.xaml
  33. 0
      src/Avalonia.Themes.Default/Controls/ListBox.xaml
  34. 0
      src/Avalonia.Themes.Default/Controls/ListBoxItem.xaml
  35. 0
      src/Avalonia.Themes.Default/Controls/ManagedFileChooser.xaml
  36. 0
      src/Avalonia.Themes.Default/Controls/Menu.xaml
  37. 0
      src/Avalonia.Themes.Default/Controls/MenuFlyoutPresenter.xaml
  38. 0
      src/Avalonia.Themes.Default/Controls/MenuItem.xaml
  39. 0
      src/Avalonia.Themes.Default/Controls/NativeMenuBar.xaml
  40. 0
      src/Avalonia.Themes.Default/Controls/NotificationCard.xaml
  41. 0
      src/Avalonia.Themes.Default/Controls/NumericUpDown.xaml
  42. 0
      src/Avalonia.Themes.Default/Controls/OverlayPopupHost.xaml
  43. 0
      src/Avalonia.Themes.Default/Controls/PathIcon.xaml
  44. 0
      src/Avalonia.Themes.Default/Controls/PopupRoot.xaml
  45. 0
      src/Avalonia.Themes.Default/Controls/ProgressBar.xaml
  46. 0
      src/Avalonia.Themes.Default/Controls/RadioButton.xaml
  47. 0
      src/Avalonia.Themes.Default/Controls/RepeatButton.xaml
  48. 0
      src/Avalonia.Themes.Default/Controls/ScrollBar.xaml
  49. 0
      src/Avalonia.Themes.Default/Controls/ScrollViewer.xaml
  50. 0
      src/Avalonia.Themes.Default/Controls/Separator.xaml
  51. 0
      src/Avalonia.Themes.Default/Controls/Slider.xaml
  52. 0
      src/Avalonia.Themes.Default/Controls/SplitView.xaml
  53. 0
      src/Avalonia.Themes.Default/Controls/TabControl.xaml
  54. 0
      src/Avalonia.Themes.Default/Controls/TabItem.xaml
  55. 0
      src/Avalonia.Themes.Default/Controls/TabStrip.xaml
  56. 0
      src/Avalonia.Themes.Default/Controls/TabStripItem.xaml
  57. 0
      src/Avalonia.Themes.Default/Controls/TextBox.xaml
  58. 0
      src/Avalonia.Themes.Default/Controls/TimePicker.xaml
  59. 0
      src/Avalonia.Themes.Default/Controls/TitleBar.xaml
  60. 0
      src/Avalonia.Themes.Default/Controls/ToggleButton.xaml
  61. 0
      src/Avalonia.Themes.Default/Controls/ToggleSwitch.xaml
  62. 0
      src/Avalonia.Themes.Default/Controls/ToolTip.xaml
  63. 0
      src/Avalonia.Themes.Default/Controls/TreeView.xaml
  64. 0
      src/Avalonia.Themes.Default/Controls/TreeViewItem.xaml
  65. 0
      src/Avalonia.Themes.Default/Controls/UserControl.xaml
  66. 0
      src/Avalonia.Themes.Default/Controls/Window.xaml
  67. 0
      src/Avalonia.Themes.Default/Controls/WindowNotificationManager.xaml
  68. 118
      src/Avalonia.Themes.Default/DefaultTheme.xaml
  69. 1
      src/Avalonia.Themes.Default/DefaultTheme.xaml.cs
  70. 166
      src/Avalonia.Themes.Default/SimpleTheme.cs
  71. 8
      src/Avalonia.Themes.Default/SimpleThemeMode.cs
  72. 4
      src/Avalonia.Themes.Fluent/Controls/NumericUpDown.xaml
  73. 13
      src/Skia/Avalonia.Skia/DrawingContextImpl.cs
  74. 2
      src/Skia/Avalonia.Skia/PlatformRenderInterface.cs
  75. 13
      src/Windows/Avalonia.Win32/WindowImpl.AppWndProc.cs
  76. 1
      src/Windows/Avalonia.Win32/WindowImpl.cs
  77. 12
      tests/Avalonia.DesignerSupport.TestApp/App.xaml
  78. 2
      tests/Avalonia.Markup.Xaml.UnitTests/Xaml/BasicTests.cs
  79. 2
      tests/Avalonia.UnitTests/TestServices.cs
  80. 6
      tests/Avalonia.UnitTests/UnitTestApplication.cs

21
samples/ControlCatalog/App.xaml.cs

@ -5,6 +5,7 @@ using Avalonia.Controls.ApplicationLifetimes;
using Avalonia.Markup.Xaml;
using Avalonia.Markup.Xaml.Styling;
using Avalonia.Styling;
using Avalonia.Themes.Default;
using Avalonia.Themes.Fluent;
using ControlCatalog.ViewModels;
@ -29,6 +30,8 @@ namespace ControlCatalog
public static FluentTheme Fluent = new FluentTheme(new Uri("avares://ControlCatalog/Styles"));
public static SimpleTheme Default = new SimpleTheme(new Uri("avares://ControlCatalog/Styles"));
public static Styles DefaultLight = new Styles
{
new StyleInclude(new Uri("resm:Styles?assembly=ControlCatalog"))
@ -43,14 +46,7 @@ namespace ControlCatalog
{
Source = new Uri("avares://Avalonia.Themes.Fluent/Accents/BaseLight.xaml")
},
new StyleInclude(new Uri("resm:Styles?assembly=ControlCatalog"))
{
Source = new Uri("avares://Avalonia.Themes.Default/Accents/BaseLight.xaml")
},
new StyleInclude(new Uri("resm:Styles?assembly=ControlCatalog"))
{
Source = new Uri("avares://Avalonia.Themes.Default/DefaultTheme.xaml")
}
Default
};
public static Styles DefaultDark = new Styles
@ -67,14 +63,7 @@ namespace ControlCatalog
{
Source = new Uri("avares://Avalonia.Themes.Fluent/Accents/BaseDark.xaml")
},
new StyleInclude(new Uri("resm:Styles?assembly=ControlCatalog"))
{
Source = new Uri("avares://Avalonia.Themes.Default/Accents/BaseDark.xaml")
},
new StyleInclude(new Uri("resm:Styles?assembly=ControlCatalog"))
{
Source = new Uri("avares://Avalonia.Themes.Default/DefaultTheme.xaml")
}
Default
};
public override void Initialize()

2
samples/ControlCatalog/MainView.xaml.cs

@ -63,11 +63,13 @@ namespace ControlCatalog
}
else if (theme == CatalogTheme.DefaultLight)
{
App.Default.Mode = Avalonia.Themes.Default.SimpleThemeMode.Light;
Application.Current.Styles[0] = App.DefaultLight;
Application.Current.Styles[1] = App.DataGridDefault;
}
else if (theme == CatalogTheme.DefaultDark)
{
App.Default.Mode = Avalonia.Themes.Default.SimpleThemeMode.Dark;
Application.Current.Styles[0] = App.DefaultDark;
Application.Current.Styles[1] = App.DataGridDefault;
}

2
src/Avalonia.Controls/Platform/DefaultMenuInteractionHandler.cs

@ -101,7 +101,7 @@ namespace Avalonia.Controls.Platform
root.Deactivated -= WindowDeactivated;
}
if (_root is TopLevel tl)
if (_root is TopLevel tl && tl.PlatformImpl != null)
tl.PlatformImpl.LostFocus -= TopLevelLostPlatformFocus;
_inputManagerSubscription?.Dispose();

4
src/Avalonia.Diagnostics/Diagnostics/Views/MainWindow.xaml

@ -2,6 +2,7 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:views="clr-namespace:Avalonia.Diagnostics.Views"
xmlns:diag="clr-namespace:Avalonia.Diagnostics"
xmlns:default="using:Avalonia.Themes.Default"
Title="Avalonia DevTools"
x:Class="Avalonia.Diagnostics.Views.MainWindow">
<Window.DataTemplates>
@ -9,8 +10,7 @@
</Window.DataTemplates>
<Window.Styles>
<StyleInclude Source="resm:Avalonia.Themes.Default.DefaultTheme.xaml?assembly=Avalonia.Themes.Default"/>
<StyleInclude Source="resm:Avalonia.Themes.Default.Accents.BaseLight.xaml?assembly=Avalonia.Themes.Default"/>
<default:SimpleTheme Mode="Light"/>
<StyleInclude Source="resm:Avalonia.Controls.DataGrid.Themes.Default.xaml?assembly=Avalonia.Controls.DataGrid"/>
<Style Selector="DataGrid ContextMenu">
<Setter Property="Foreground" Value="Black"/>

64
src/Avalonia.Themes.Default/Accents/Base.xaml

@ -0,0 +1,64 @@
<Style
xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:sys="clr-namespace:System;assembly=netstandard">
<Style.Resources>
<Color x:Key="ThemeAccentColor">#CC119EDA</Color>
<Color x:Key="ThemeAccentColor2">#99119EDA</Color>
<Color x:Key="ThemeAccentColor3">#66119EDA</Color>
<Color x:Key="ThemeAccentColor4">#33119EDA</Color>
<Color x:Key="ThemeForegroundLowColor">#FF808080</Color>
<Color x:Key="HighlightForegroundColor">#FFFFFFFF</Color>
<Color x:Key="ErrorColor">#FFFF0000</Color>
<Color x:Key="ErrorLowColor">#10FF0000</Color>
<SolidColorBrush x:Key="HighlightForegroundBrush" Color="{StaticResource HighlightForegroundColor}" />
<SolidColorBrush x:Key="ThemeForegroundLowBrush" Color="{StaticResource ThemeForegroundLowColor}" />
<SolidColorBrush x:Key="ThemeAccentBrush2" Color="{StaticResource ThemeAccentColor2}" />
<SolidColorBrush x:Key="ThemeAccentBrush3" Color="{StaticResource ThemeAccentColor3}" />
<SolidColorBrush x:Key="ThemeAccentBrush4" Color="{StaticResource ThemeAccentColor4}" />
<SolidColorBrush x:Key="ThemeAccentBrush" Color="{StaticResource ThemeAccentColor}" />
<SolidColorBrush x:Key="ErrorBrush" Color="{StaticResource ErrorColor}" />
<SolidColorBrush x:Key="ErrorLowBrush" Color="{StaticResource ErrorLowColor}" />
<SolidColorBrush
x:Key="NotificationCardBackgroundBrush"
Opacity="0.75"
Color="#444444" />
<SolidColorBrush
x:Key="NotificationCardInformationBackgroundBrush"
Opacity="0.75"
Color="#007ACC" />
<SolidColorBrush
x:Key="NotificationCardSuccessBackgroundBrush"
Opacity="0.75"
Color="#1F9E45" />
<SolidColorBrush
x:Key="NotificationCardWarningBackgroundBrush"
Opacity="0.75"
Color="#FDB328" />
<SolidColorBrush
x:Key="NotificationCardErrorBackgroundBrush"
Opacity="0.75"
Color="#BD202C" />
<SolidColorBrush x:Key="ThemeControlTransparentBrush" Color="Transparent" />
<SolidColorBrush
x:Key="DatePickerFlyoutPresenterHighlightFill"
Opacity="0.4"
Color="{StaticResource ThemeAccentColor}" />
<SolidColorBrush
x:Key="TimePickerFlyoutPresenterHighlightFill"
Opacity="0.4"
Color="{StaticResource ThemeAccentColor}" />
<Thickness x:Key="ThemeBorderThickness">1</Thickness>
<sys:Double x:Key="ThemeDisabledOpacity">0.5</sys:Double>
<sys:Double x:Key="FontSizeSmall">10</sys:Double>
<sys:Double x:Key="FontSizeNormal">12</sys:Double>
<sys:Double x:Key="FontSizeLarge">16</sys:Double>
<sys:Double x:Key="ScrollBarThickness">18</sys:Double>
<sys:Double x:Key="ScrollBarThumbThickness">8</sys:Double>
<sys:Double x:Key="IconElementThemeHeight">20</sys:Double>
<sys:Double x:Key="IconElementThemeWidth">20</sys:Double>
</Style.Resources>
</Style>

77
src/Avalonia.Themes.Default/Accents/BaseDark.xaml

@ -1,13 +1,9 @@
<Style xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:sys="clr-namespace:System;assembly=netstandard">
<Style
xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:sys="clr-namespace:System;assembly=netstandard">
<Style.Resources>
<Color x:Key="ThemeAccentColor">#CC119EDA</Color>
<Color x:Key="ThemeAccentColor2">#99119EDA</Color>
<Color x:Key="ThemeAccentColor3">#66119EDA</Color>
<Color x:Key="ThemeAccentColor4">#33119EDA</Color>
<Color x:Key="ThemeBackgroundColor">#FF282828</Color>
<Color x:Key="ThemeBorderLowColor">#FF505050</Color>
<Color x:Key="ThemeBorderMidColor">#FF808080</Color>
@ -21,59 +17,22 @@
<Color x:Key="ThemeControlHighlightMidColor">#FF828282</Color>
<Color x:Key="ThemeControlHighlightHighColor">#FF505050</Color>
<Color x:Key="ThemeForegroundColor">#FFDEDEDE</Color>
<Color x:Key="ThemeForegroundLowColor">#FF808080</Color>
<Color x:Key="HighlightColor">#FF119EDA</Color>
<Color x:Key="HighlightForegroundColor">#FFFFFFFF</Color>
<Color x:Key="ErrorColor">#FFFF0000</Color>
<Color x:Key="ErrorLowColor">#10FF0000</Color>
<SolidColorBrush x:Key="ThemeBackgroundBrush" Color="{DynamicResource ThemeBackgroundColor}"></SolidColorBrush>
<SolidColorBrush x:Key="ThemeBorderLowBrush" Color="{DynamicResource ThemeBorderLowColor}"></SolidColorBrush>
<SolidColorBrush x:Key="ThemeBorderMidBrush" Color="{DynamicResource ThemeBorderMidColor}"></SolidColorBrush>
<SolidColorBrush x:Key="ThemeBorderHighBrush" Color="{DynamicResource ThemeBorderHighColor}"></SolidColorBrush>
<SolidColorBrush x:Key="ThemeControlLowBrush" Color="{DynamicResource ThemeControlLowColor}"></SolidColorBrush>
<SolidColorBrush x:Key="ThemeControlMidBrush" Color="{DynamicResource ThemeControlMidColor}"></SolidColorBrush>
<SolidColorBrush x:Key="ThemeControlMidHighBrush" Color="{DynamicResource ThemeControlMidHighColor}"></SolidColorBrush>
<SolidColorBrush x:Key="ThemeControlHighBrush" Color="{DynamicResource ThemeControlHighColor}"></SolidColorBrush>
<SolidColorBrush x:Key="ThemeControlVeryHighBrush" Color="{DynamicResource ThemeControlVeryHighColor}"></SolidColorBrush>
<SolidColorBrush x:Key="ThemeControlHighlightLowBrush" Color="{DynamicResource ThemeControlHighlightLowColor}"></SolidColorBrush>
<SolidColorBrush x:Key="ThemeControlHighlightMidBrush" Color="{DynamicResource ThemeControlHighlightMidColor}"></SolidColorBrush>
<SolidColorBrush x:Key="ThemeControlHighlightHighBrush" Color="{DynamicResource ThemeControlHighlightHighColor}"></SolidColorBrush>
<SolidColorBrush x:Key="ThemeForegroundBrush" Color="{DynamicResource ThemeForegroundColor}"></SolidColorBrush>
<SolidColorBrush x:Key="ThemeForegroundLowBrush" Color="{DynamicResource ThemeForegroundLowColor}"></SolidColorBrush>
<SolidColorBrush x:Key="HighlightBrush" Color="{DynamicResource HighlightColor}"></SolidColorBrush>
<SolidColorBrush x:Key="HighlightForegroundBrush" Color="{DynamicResource HighlightForegroundColor}"></SolidColorBrush>
<SolidColorBrush x:Key="ThemeAccentBrush" Color="{DynamicResource ThemeAccentColor}"></SolidColorBrush>
<SolidColorBrush x:Key="ThemeAccentBrush2" Color="{DynamicResource ThemeAccentColor2}"></SolidColorBrush>
<SolidColorBrush x:Key="ThemeAccentBrush3" Color="{DynamicResource ThemeAccentColor3}"></SolidColorBrush>
<SolidColorBrush x:Key="ThemeAccentBrush4" Color="{DynamicResource ThemeAccentColor4}"></SolidColorBrush>
<SolidColorBrush x:Key="ErrorBrush" Color="{DynamicResource ErrorColor}"></SolidColorBrush>
<SolidColorBrush x:Key="ErrorLowBrush" Color="{DynamicResource ErrorLowColor}"></SolidColorBrush>
<SolidColorBrush x:Key="NotificationCardBackgroundBrush" Color="#444444" Opacity="0.75"/>
<SolidColorBrush x:Key="NotificationCardInformationBackgroundBrush" Color="#007ACC" Opacity="0.75"/>
<SolidColorBrush x:Key="NotificationCardSuccessBackgroundBrush" Color="#1F9E45" Opacity="0.75"/>
<SolidColorBrush x:Key="NotificationCardWarningBackgroundBrush" Color="#FDB328" Opacity="0.75"/>
<SolidColorBrush x:Key="NotificationCardErrorBackgroundBrush" Color="#BD202C" Opacity="0.75"/>
<SolidColorBrush x:Key="DatePickerFlyoutPresenterHighlightFill" Color="{DynamicResource ThemeAccentColor}" Opacity="0.4" />
<SolidColorBrush x:Key="TimePickerFlyoutPresenterHighlightFill" Color="{DynamicResource ThemeAccentColor}" Opacity="0.4" />
<SolidColorBrush x:Key="ThemeControlTransparentBrush" Color="Transparent" />
<Thickness x:Key="ThemeBorderThickness">1,1,1,1</Thickness>
<sys:Double x:Key="ThemeDisabledOpacity">0.5</sys:Double>
<sys:Double x:Key="FontSizeSmall">10</sys:Double>
<sys:Double x:Key="FontSizeNormal">12</sys:Double>
<sys:Double x:Key="FontSizeLarge">16</sys:Double>
<sys:Double x:Key="ScrollBarThickness">18</sys:Double>
<sys:Double x:Key="ScrollBarThumbThickness">8</sys:Double>
<SolidColorBrush x:Key="ThemeBackgroundBrush" Color="{StaticResource ThemeBackgroundColor}" />
<SolidColorBrush x:Key="ThemeBorderLowBrush" Color="{StaticResource ThemeBorderLowColor}" />
<SolidColorBrush x:Key="ThemeBorderMidBrush" Color="{StaticResource ThemeBorderMidColor}" />
<SolidColorBrush x:Key="ThemeBorderHighBrush" Color="{StaticResource ThemeBorderHighColor}" />
<SolidColorBrush x:Key="ThemeControlLowBrush" Color="{StaticResource ThemeControlLowColor}" />
<SolidColorBrush x:Key="ThemeControlMidBrush" Color="{StaticResource ThemeControlMidColor}" />
<SolidColorBrush x:Key="ThemeControlMidHighBrush" Color="{StaticResource ThemeControlMidHighColor}" />
<SolidColorBrush x:Key="ThemeControlHighBrush" Color="{StaticResource ThemeControlHighColor}" />
<SolidColorBrush x:Key="ThemeControlVeryHighBrush" Color="{StaticResource ThemeControlVeryHighColor}" />
<SolidColorBrush x:Key="ThemeControlHighlightLowBrush" Color="{StaticResource ThemeControlHighlightLowColor}" />
<SolidColorBrush x:Key="ThemeControlHighlightMidBrush" Color="{StaticResource ThemeControlHighlightMidColor}" />
<SolidColorBrush x:Key="ThemeControlHighlightHighBrush" Color="{StaticResource ThemeControlHighlightHighColor}" />
<SolidColorBrush x:Key="ThemeForegroundBrush" Color="{StaticResource ThemeForegroundColor}" />
<SolidColorBrush x:Key="HighlightBrush" Color="{StaticResource HighlightColor}" />
<sys:Double x:Key="IconElementThemeHeight">20</sys:Double>
<sys:Double x:Key="IconElementThemeWidth">20</sys:Double>
</Style.Resources>
</Style>

82
src/Avalonia.Themes.Default/Accents/BaseLight.xaml

@ -1,82 +1,38 @@
<Style xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:sys="clr-namespace:System;assembly=netstandard">
<Style
xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:sys="clr-namespace:System;assembly=netstandard">
<Style.Resources>
<Color x:Key="ThemeAccentColor">#CC119EDA</Color>
<Color x:Key="ThemeAccentColor2">#99119EDA</Color>
<Color x:Key="ThemeAccentColor3">#66119EDA</Color>
<Color x:Key="ThemeAccentColor4">#33119EDA</Color>
<Color x:Key="ThemeBackgroundColor">#FFFFFFFF</Color>
<Color x:Key="ThemeBorderLowColor">#FFAAAAAA</Color>
<Color x:Key="ThemeBorderMidColor">#FF888888</Color>
<Color x:Key="ThemeBorderHighColor">#FF333333</Color>
<Color x:Key="ThemeControlLowColor">#FF868999</Color>
<Color x:Key="ThemeControlMidColor">#FFF5F5F5</Color>
<Color x:Key="ThemeControlMidHighColor">#FFC2C3C9</Color>
<Color x:Key="ThemeControlHighColor">#FF686868</Color>
<Color x:Key="ThemeControlVeryHighColor">#FF5B5B5B</Color>
<Color x:Key="ThemeControlHighlightLowColor">#FFF0F0F0</Color>
<Color x:Key="ThemeControlHighlightMidColor">#FFD0D0D0</Color>
<Color x:Key="ThemeControlHighlightHighColor">#FF808080</Color>
<Color x:Key="ThemeForegroundColor">#FF000000</Color>
<Color x:Key="ThemeForegroundLowColor">#FF808080</Color>
<Color x:Key="HighlightColor">#FF086F9E</Color>
<Color x:Key="HighlightForegroundColor">#FFFFFFFF</Color>
<Color x:Key="ErrorColor">#FFFF0000</Color>
<Color x:Key="ErrorLowColor">#10FF0000</Color>
<SolidColorBrush x:Key="ThemeBackgroundBrush" Color="{DynamicResource ThemeBackgroundColor}"></SolidColorBrush>
<SolidColorBrush x:Key="ThemeBorderLowBrush" Color="{DynamicResource ThemeBorderLowColor}"></SolidColorBrush>
<SolidColorBrush x:Key="ThemeBorderMidBrush" Color="{DynamicResource ThemeBorderMidColor}"></SolidColorBrush>
<SolidColorBrush x:Key="ThemeBorderHighBrush" Color="{DynamicResource ThemeBorderHighColor}"></SolidColorBrush>
<SolidColorBrush x:Key="ThemeControlLowBrush" Color="{DynamicResource ThemeControlLowColor}"></SolidColorBrush>
<SolidColorBrush x:Key="ThemeControlMidBrush" Color="{DynamicResource ThemeControlMidColor}"></SolidColorBrush>
<SolidColorBrush x:Key="ThemeControlMidHighBrush" Color="{DynamicResource ThemeControlMidHighColor}"></SolidColorBrush>
<SolidColorBrush x:Key="ThemeControlHighBrush" Color="{DynamicResource ThemeControlHighColor}"></SolidColorBrush>
<SolidColorBrush x:Key="ThemeControlVeryHighBrush" Color="{DynamicResource ThemeControlVeryHighColor}"></SolidColorBrush>
<SolidColorBrush x:Key="ThemeControlHighlightLowBrush" Color="{DynamicResource ThemeControlHighlightLowColor}"></SolidColorBrush>
<SolidColorBrush x:Key="ThemeControlHighlightMidBrush" Color="{DynamicResource ThemeControlHighlightMidColor}"></SolidColorBrush>
<SolidColorBrush x:Key="ThemeControlHighlightHighBrush" Color="{DynamicResource ThemeControlHighlightHighColor}"></SolidColorBrush>
<SolidColorBrush x:Key="ThemeForegroundBrush" Color="{DynamicResource ThemeForegroundColor}"></SolidColorBrush>
<SolidColorBrush x:Key="ThemeForegroundLowBrush" Color="{DynamicResource ThemeForegroundLowColor}"></SolidColorBrush>
<SolidColorBrush x:Key="HighlightBrush" Color="{DynamicResource HighlightColor}"></SolidColorBrush>
<SolidColorBrush x:Key="HighlightForegroundBrush" Color="{DynamicResource HighlightForegroundColor}"></SolidColorBrush>
<SolidColorBrush x:Key="ThemeAccentBrush" Color="{DynamicResource ThemeAccentColor}"></SolidColorBrush>
<SolidColorBrush x:Key="ThemeAccentBrush2" Color="{DynamicResource ThemeAccentColor2}"></SolidColorBrush>
<SolidColorBrush x:Key="ThemeAccentBrush3" Color="{DynamicResource ThemeAccentColor3}"></SolidColorBrush>
<SolidColorBrush x:Key="ThemeAccentBrush4" Color="{DynamicResource ThemeAccentColor4}"></SolidColorBrush>
<SolidColorBrush x:Key="ErrorBrush" Color="{DynamicResource ErrorColor}"></SolidColorBrush>
<SolidColorBrush x:Key="ErrorLowBrush" Color="{DynamicResource ErrorLowColor}"></SolidColorBrush>
<SolidColorBrush x:Key="NotificationCardBackgroundBrush" Color="#444444" Opacity="0.75"/>
<SolidColorBrush x:Key="NotificationCardInformationBackgroundBrush" Color="#007ACC" Opacity="0.75"/>
<SolidColorBrush x:Key="NotificationCardSuccessBackgroundBrush" Color="#1F9E45" Opacity="0.75"/>
<SolidColorBrush x:Key="NotificationCardWarningBackgroundBrush" Color="#FDB328" Opacity="0.75"/>
<SolidColorBrush x:Key="NotificationCardErrorBackgroundBrush" Color="#BD202C" Opacity="0.75"/>
<SolidColorBrush x:Key="DatePickerFlyoutPresenterHighlightFill" Color="{DynamicResource ThemeAccentColor}" Opacity="0.4" />
<SolidColorBrush x:Key="TimePickerFlyoutPresenterHighlightFill" Color="{DynamicResource ThemeAccentColor}" Opacity="0.4" />
<SolidColorBrush x:Key="ThemeControlTransparentBrush" Color="Transparent" />
<Thickness x:Key="ThemeBorderThickness">1</Thickness>
<sys:Double x:Key="ThemeDisabledOpacity">0.5</sys:Double>
<sys:Double x:Key="FontSizeSmall">10</sys:Double>
<sys:Double x:Key="FontSizeNormal">12</sys:Double>
<sys:Double x:Key="FontSizeLarge">16</sys:Double>
<sys:Double x:Key="ScrollBarThickness">18</sys:Double>
<sys:Double x:Key="ScrollBarThumbThickness">8</sys:Double>
<sys:Double x:Key="IconElementThemeHeight">20</sys:Double>
<sys:Double x:Key="IconElementThemeWidth">20</sys:Double>
<SolidColorBrush x:Key="ThemeBackgroundBrush" Color="{StaticResource ThemeBackgroundColor}" />
<SolidColorBrush x:Key="ThemeBorderLowBrush" Color="{StaticResource ThemeBorderLowColor}" />
<SolidColorBrush x:Key="ThemeBorderMidBrush" Color="{StaticResource ThemeBorderMidColor}" />
<SolidColorBrush x:Key="ThemeBorderHighBrush" Color="{StaticResource ThemeBorderHighColor}" />
<SolidColorBrush x:Key="ThemeControlLowBrush" Color="{StaticResource ThemeControlLowColor}" />
<SolidColorBrush x:Key="ThemeControlMidBrush" Color="{StaticResource ThemeControlMidColor}" />
<SolidColorBrush x:Key="ThemeControlMidHighBrush" Color="{StaticResource ThemeControlMidHighColor}" />
<SolidColorBrush x:Key="ThemeControlHighBrush" Color="{StaticResource ThemeControlHighColor}" />
<SolidColorBrush x:Key="ThemeControlVeryHighBrush" Color="{StaticResource ThemeControlVeryHighColor}" />
<SolidColorBrush x:Key="ThemeControlHighlightLowBrush" Color="{StaticResource ThemeControlHighlightLowColor}" />
<SolidColorBrush x:Key="ThemeControlHighlightMidBrush" Color="{StaticResource ThemeControlHighlightMidColor}" />
<SolidColorBrush x:Key="ThemeControlHighlightHighBrush" Color="{StaticResource ThemeControlHighlightHighColor}" />
<SolidColorBrush x:Key="ThemeForegroundBrush" Color="{StaticResource ThemeForegroundColor}" />
<SolidColorBrush x:Key="HighlightBrush" Color="{StaticResource HighlightColor}" />
</Style.Resources>
</Style>

5
src/Avalonia.Themes.Default/Avalonia.Themes.Default.csproj

@ -13,10 +13,7 @@
<ProjectReference Include="..\Avalonia.Visuals\Avalonia.Visuals.csproj" />
<ProjectReference Include="..\Avalonia.Styling\Avalonia.Styling.csproj" />
<ProjectReference Include="..\Avalonia.Dialogs\Avalonia.Dialogs.csproj" />
<AvaloniaResource Include="DefaultTheme.xaml" />
<AvaloniaResource Include="Accents/*.xaml" />
<!-- Compatibility with old apps, probably need to replace with AvaloniaResource -->
<EmbeddedResource Include="**/*.xaml" />
<AvaloniaResource Include="**/*.xaml" />
</ItemGroup>
<Import Project="..\..\build\BuildTargets.targets" />
<Import Project="..\..\build\Rx.props" />

0
src/Avalonia.Themes.Default/AutoCompleteBox.xaml → src/Avalonia.Themes.Default/Controls/AutoCompleteBox.xaml

0
src/Avalonia.Themes.Default/Button.xaml → src/Avalonia.Themes.Default/Controls/Button.xaml

0
src/Avalonia.Themes.Default/ButtonSpinner.xaml → src/Avalonia.Themes.Default/Controls/ButtonSpinner.xaml

0
src/Avalonia.Themes.Default/Calendar.xaml → src/Avalonia.Themes.Default/Controls/Calendar.xaml

0
src/Avalonia.Themes.Default/CalendarButton.xaml → src/Avalonia.Themes.Default/Controls/CalendarButton.xaml

0
src/Avalonia.Themes.Default/CalendarDatePicker.xaml → src/Avalonia.Themes.Default/Controls/CalendarDatePicker.xaml

0
src/Avalonia.Themes.Default/CalendarDayButton.xaml → src/Avalonia.Themes.Default/Controls/CalendarDayButton.xaml

0
src/Avalonia.Themes.Default/CalendarItem.xaml → src/Avalonia.Themes.Default/Controls/CalendarItem.xaml

0
src/Avalonia.Themes.Default/CaptionButtons.xaml → src/Avalonia.Themes.Default/Controls/CaptionButtons.xaml

0
src/Avalonia.Themes.Default/Carousel.xaml → src/Avalonia.Themes.Default/Controls/Carousel.xaml

0
src/Avalonia.Themes.Default/CheckBox.xaml → src/Avalonia.Themes.Default/Controls/CheckBox.xaml

0
src/Avalonia.Themes.Default/ComboBox.xaml → src/Avalonia.Themes.Default/Controls/ComboBox.xaml

0
src/Avalonia.Themes.Default/ComboBoxItem.xaml → src/Avalonia.Themes.Default/Controls/ComboBoxItem.xaml

0
src/Avalonia.Themes.Default/ContentControl.xaml → src/Avalonia.Themes.Default/Controls/ContentControl.xaml

0
src/Avalonia.Themes.Default/ContextMenu.xaml → src/Avalonia.Themes.Default/Controls/ContextMenu.xaml

0
src/Avalonia.Themes.Default/DataValidationErrors.xaml → src/Avalonia.Themes.Default/Controls/DataValidationErrors.xaml

0
src/Avalonia.Themes.Default/DatePicker.xaml → src/Avalonia.Themes.Default/Controls/DatePicker.xaml

0
src/Avalonia.Themes.Default/EmbeddableControlRoot.xaml → src/Avalonia.Themes.Default/Controls/EmbeddableControlRoot.xaml

0
src/Avalonia.Themes.Default/Expander.xaml → src/Avalonia.Themes.Default/Controls/Expander.xaml

0
src/Avalonia.Themes.Default/FlyoutPresenter.xaml → src/Avalonia.Themes.Default/Controls/FlyoutPresenter.xaml

0
src/Avalonia.Themes.Default/FocusAdorner.xaml → src/Avalonia.Themes.Default/Controls/FocusAdorner.xaml

0
src/Avalonia.Themes.Default/GridSplitter.xaml → src/Avalonia.Themes.Default/Controls/GridSplitter.xaml

0
src/Avalonia.Themes.Default/ItemsControl.xaml → src/Avalonia.Themes.Default/Controls/ItemsControl.xaml

0
src/Avalonia.Themes.Default/Label.xaml → src/Avalonia.Themes.Default/Controls/Label.xaml

0
src/Avalonia.Themes.Default/ListBox.xaml → src/Avalonia.Themes.Default/Controls/ListBox.xaml

0
src/Avalonia.Themes.Default/ListBoxItem.xaml → src/Avalonia.Themes.Default/Controls/ListBoxItem.xaml

0
src/Avalonia.Themes.Default/ManagedFileChooser.xaml → src/Avalonia.Themes.Default/Controls/ManagedFileChooser.xaml

0
src/Avalonia.Themes.Default/Menu.xaml → src/Avalonia.Themes.Default/Controls/Menu.xaml

0
src/Avalonia.Themes.Default/MenuFlyoutPresenter.xaml → src/Avalonia.Themes.Default/Controls/MenuFlyoutPresenter.xaml

0
src/Avalonia.Themes.Default/MenuItem.xaml → src/Avalonia.Themes.Default/Controls/MenuItem.xaml

0
src/Avalonia.Themes.Default/NativeMenuBar.xaml → src/Avalonia.Themes.Default/Controls/NativeMenuBar.xaml

0
src/Avalonia.Themes.Default/NotificationCard.xaml → src/Avalonia.Themes.Default/Controls/NotificationCard.xaml

0
src/Avalonia.Themes.Default/NumericUpDown.xaml → src/Avalonia.Themes.Default/Controls/NumericUpDown.xaml

0
src/Avalonia.Themes.Default/OverlayPopupHost.xaml → src/Avalonia.Themes.Default/Controls/OverlayPopupHost.xaml

0
src/Avalonia.Themes.Default/PathIcon.xaml → src/Avalonia.Themes.Default/Controls/PathIcon.xaml

0
src/Avalonia.Themes.Default/PopupRoot.xaml → src/Avalonia.Themes.Default/Controls/PopupRoot.xaml

0
src/Avalonia.Themes.Default/ProgressBar.xaml → src/Avalonia.Themes.Default/Controls/ProgressBar.xaml

0
src/Avalonia.Themes.Default/RadioButton.xaml → src/Avalonia.Themes.Default/Controls/RadioButton.xaml

0
src/Avalonia.Themes.Default/RepeatButton.xaml → src/Avalonia.Themes.Default/Controls/RepeatButton.xaml

0
src/Avalonia.Themes.Default/ScrollBar.xaml → src/Avalonia.Themes.Default/Controls/ScrollBar.xaml

0
src/Avalonia.Themes.Default/ScrollViewer.xaml → src/Avalonia.Themes.Default/Controls/ScrollViewer.xaml

0
src/Avalonia.Themes.Default/Separator.xaml → src/Avalonia.Themes.Default/Controls/Separator.xaml

0
src/Avalonia.Themes.Default/Slider.xaml → src/Avalonia.Themes.Default/Controls/Slider.xaml

0
src/Avalonia.Themes.Default/SplitView.xaml → src/Avalonia.Themes.Default/Controls/SplitView.xaml

0
src/Avalonia.Themes.Default/TabControl.xaml → src/Avalonia.Themes.Default/Controls/TabControl.xaml

0
src/Avalonia.Themes.Default/TabItem.xaml → src/Avalonia.Themes.Default/Controls/TabItem.xaml

0
src/Avalonia.Themes.Default/TabStrip.xaml → src/Avalonia.Themes.Default/Controls/TabStrip.xaml

0
src/Avalonia.Themes.Default/TabStripItem.xaml → src/Avalonia.Themes.Default/Controls/TabStripItem.xaml

0
src/Avalonia.Themes.Default/TextBox.xaml → src/Avalonia.Themes.Default/Controls/TextBox.xaml

0
src/Avalonia.Themes.Default/TimePicker.xaml → src/Avalonia.Themes.Default/Controls/TimePicker.xaml

0
src/Avalonia.Themes.Default/TitleBar.xaml → src/Avalonia.Themes.Default/Controls/TitleBar.xaml

0
src/Avalonia.Themes.Default/ToggleButton.xaml → src/Avalonia.Themes.Default/Controls/ToggleButton.xaml

0
src/Avalonia.Themes.Default/ToggleSwitch.xaml → src/Avalonia.Themes.Default/Controls/ToggleSwitch.xaml

0
src/Avalonia.Themes.Default/ToolTip.xaml → src/Avalonia.Themes.Default/Controls/ToolTip.xaml

0
src/Avalonia.Themes.Default/TreeView.xaml → src/Avalonia.Themes.Default/Controls/TreeView.xaml

0
src/Avalonia.Themes.Default/TreeViewItem.xaml → src/Avalonia.Themes.Default/Controls/TreeViewItem.xaml

0
src/Avalonia.Themes.Default/UserControl.xaml → src/Avalonia.Themes.Default/Controls/UserControl.xaml

0
src/Avalonia.Themes.Default/Window.xaml → src/Avalonia.Themes.Default/Controls/Window.xaml

0
src/Avalonia.Themes.Default/WindowNotificationManager.xaml → src/Avalonia.Themes.Default/Controls/WindowNotificationManager.xaml

118
src/Avalonia.Themes.Default/DefaultTheme.xaml

@ -2,65 +2,65 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="Avalonia.Themes.Default.DefaultTheme">
<!-- Define ToolTip first so its styles can be overriden by other controls (e.g. TextBox) -->
<StyleInclude Source="resm:Avalonia.Themes.Default.ToolTip.xaml?assembly=Avalonia.Themes.Default"/>
<StyleInclude Source="resm:Avalonia.Themes.Default.DataValidationErrors.xaml?assembly=Avalonia.Themes.Default"/>
<StyleInclude Source="avares://Avalonia.Themes.Default/Controls/ToolTip.xaml"/>
<StyleInclude Source="avares://Avalonia.Themes.Default/Controls/DataValidationErrors.xaml"/>
<StyleInclude Source="resm:Avalonia.Themes.Default.FocusAdorner.xaml?assembly=Avalonia.Themes.Default"/>
<StyleInclude Source="resm:Avalonia.Themes.Default.Button.xaml?assembly=Avalonia.Themes.Default"/>
<StyleInclude Source="resm:Avalonia.Themes.Default.Carousel.xaml?assembly=Avalonia.Themes.Default"/>
<StyleInclude Source="resm:Avalonia.Themes.Default.CheckBox.xaml?assembly=Avalonia.Themes.Default"/>
<StyleInclude Source="resm:Avalonia.Themes.Default.CaptionButtons.xaml?assembly=Avalonia.Themes.Default"/>
<StyleInclude Source="resm:Avalonia.Themes.Default.ComboBox.xaml?assembly=Avalonia.Themes.Default"/>
<StyleInclude Source="resm:Avalonia.Themes.Default.ComboBoxItem.xaml?assembly=Avalonia.Themes.Default"/>
<StyleInclude Source="resm:Avalonia.Themes.Default.ContentControl.xaml?assembly=Avalonia.Themes.Default"/>
<StyleInclude Source="resm:Avalonia.Themes.Default.Label.xaml?assembly=Avalonia.Themes.Default"/>
<StyleInclude Source="resm:Avalonia.Themes.Default.GridSplitter.xaml?assembly=Avalonia.Themes.Default"/>
<StyleInclude Source="resm:Avalonia.Themes.Default.ItemsControl.xaml?assembly=Avalonia.Themes.Default"/>
<StyleInclude Source="resm:Avalonia.Themes.Default.ListBox.xaml?assembly=Avalonia.Themes.Default"/>
<StyleInclude Source="resm:Avalonia.Themes.Default.ListBoxItem.xaml?assembly=Avalonia.Themes.Default"/>
<StyleInclude Source="resm:Avalonia.Themes.Default.Menu.xaml?assembly=Avalonia.Themes.Default"/>
<StyleInclude Source="resm:Avalonia.Themes.Default.ContextMenu.xaml?assembly=Avalonia.Themes.Default"/>
<StyleInclude Source="resm:Avalonia.Themes.Default.MenuItem.xaml?assembly=Avalonia.Themes.Default"/>
<StyleInclude Source="resm:Avalonia.Themes.Default.OverlayPopupHost.xaml?assembly=Avalonia.Themes.Default"/>
<StyleInclude Source="resm:Avalonia.Themes.Default.PathIcon.xaml?assembly=Avalonia.Themes.Default" />
<StyleInclude Source="resm:Avalonia.Themes.Default.PopupRoot.xaml?assembly=Avalonia.Themes.Default"/>
<StyleInclude Source="resm:Avalonia.Themes.Default.ProgressBar.xaml?assembly=Avalonia.Themes.Default"/>
<StyleInclude Source="resm:Avalonia.Themes.Default.RadioButton.xaml?assembly=Avalonia.Themes.Default"/>
<StyleInclude Source="resm:Avalonia.Themes.Default.RepeatButton.xaml?assembly=Avalonia.Themes.Default" />
<StyleInclude Source="resm:Avalonia.Themes.Default.Separator.xaml?assembly=Avalonia.Themes.Default"/>
<StyleInclude Source="resm:Avalonia.Themes.Default.Slider.xaml?assembly=Avalonia.Themes.Default"/>
<StyleInclude Source="resm:Avalonia.Themes.Default.ScrollBar.xaml?assembly=Avalonia.Themes.Default"/>
<StyleInclude Source="resm:Avalonia.Themes.Default.ScrollViewer.xaml?assembly=Avalonia.Themes.Default"/>
<StyleInclude Source="resm:Avalonia.Themes.Default.TabStrip.xaml?assembly=Avalonia.Themes.Default"/>
<StyleInclude Source="resm:Avalonia.Themes.Default.TabStripItem.xaml?assembly=Avalonia.Themes.Default"/>
<StyleInclude Source="avares://Avalonia.Themes.Default/Controls/FocusAdorner.xaml"/>
<StyleInclude Source="avares://Avalonia.Themes.Default/Controls/Button.xaml"/>
<StyleInclude Source="avares://Avalonia.Themes.Default/Controls/Carousel.xaml"/>
<StyleInclude Source="avares://Avalonia.Themes.Default/Controls/CheckBox.xaml"/>
<StyleInclude Source="avares://Avalonia.Themes.Default/Controls/CaptionButtons.xaml"/>
<StyleInclude Source="avares://Avalonia.Themes.Default/Controls/ComboBox.xaml"/>
<StyleInclude Source="avares://Avalonia.Themes.Default/Controls/ComboBoxItem.xaml"/>
<StyleInclude Source="avares://Avalonia.Themes.Default/Controls/ContentControl.xaml"/>
<StyleInclude Source="avares://Avalonia.Themes.Default/Controls/Label.xaml"/>
<StyleInclude Source="avares://Avalonia.Themes.Default/Controls/GridSplitter.xaml"/>
<StyleInclude Source="avares://Avalonia.Themes.Default/Controls/ItemsControl.xaml"/>
<StyleInclude Source="avares://Avalonia.Themes.Default/Controls/ListBox.xaml"/>
<StyleInclude Source="avares://Avalonia.Themes.Default/Controls/ListBoxItem.xaml"/>
<StyleInclude Source="avares://Avalonia.Themes.Default/Controls/Menu.xaml"/>
<StyleInclude Source="avares://Avalonia.Themes.Default/Controls/ContextMenu.xaml"/>
<StyleInclude Source="avares://Avalonia.Themes.Default/Controls/MenuItem.xaml"/>
<StyleInclude Source="avares://Avalonia.Themes.Default/Controls/OverlayPopupHost.xaml"/>
<StyleInclude Source="avares://Avalonia.Themes.Default/Controls/PathIcon.xaml" />
<StyleInclude Source="avares://Avalonia.Themes.Default/Controls/PopupRoot.xaml"/>
<StyleInclude Source="avares://Avalonia.Themes.Default/Controls/ProgressBar.xaml"/>
<StyleInclude Source="avares://Avalonia.Themes.Default/Controls/RadioButton.xaml"/>
<StyleInclude Source="avares://Avalonia.Themes.Default/Controls/RepeatButton.xaml" />
<StyleInclude Source="avares://Avalonia.Themes.Default/Controls/Separator.xaml"/>
<StyleInclude Source="avares://Avalonia.Themes.Default/Controls/Slider.xaml"/>
<StyleInclude Source="avares://Avalonia.Themes.Default/Controls/ScrollBar.xaml"/>
<StyleInclude Source="avares://Avalonia.Themes.Default/Controls/ScrollViewer.xaml"/>
<StyleInclude Source="avares://Avalonia.Themes.Default/Controls/TabStrip.xaml"/>
<StyleInclude Source="avares://Avalonia.Themes.Default/Controls/TabStripItem.xaml"/>
<!-- TabControl needs to come after TabStrip as it redefines the inner TabStrip.ItemsPanel-->
<StyleInclude Source="resm:Avalonia.Themes.Default.TabControl.xaml?assembly=Avalonia.Themes.Default"/>
<StyleInclude Source="resm:Avalonia.Themes.Default.TabItem.xaml?assembly=Avalonia.Themes.Default"/>
<StyleInclude Source="resm:Avalonia.Themes.Default.TextBox.xaml?assembly=Avalonia.Themes.Default"/>
<StyleInclude Source="resm:Avalonia.Themes.Default.ToggleButton.xaml?assembly=Avalonia.Themes.Default"/>
<StyleInclude Source="resm:Avalonia.Themes.Default.Expander.xaml?assembly=Avalonia.Themes.Default"/>
<StyleInclude Source="resm:Avalonia.Themes.Default.TitleBar.xaml?assembly=Avalonia.Themes.Default"/>
<StyleInclude Source="resm:Avalonia.Themes.Default.TreeView.xaml?assembly=Avalonia.Themes.Default"/>
<StyleInclude Source="resm:Avalonia.Themes.Default.TreeViewItem.xaml?assembly=Avalonia.Themes.Default"/>
<StyleInclude Source="resm:Avalonia.Themes.Default.UserControl.xaml?assembly=Avalonia.Themes.Default"/>
<StyleInclude Source="resm:Avalonia.Themes.Default.Window.xaml?assembly=Avalonia.Themes.Default"/>
<StyleInclude Source="resm:Avalonia.Themes.Default.EmbeddableControlRoot.xaml?assembly=Avalonia.Themes.Default"/>
<StyleInclude Source="resm:Avalonia.Themes.Default.CalendarButton.xaml?assembly=Avalonia.Themes.Default"/>
<StyleInclude Source="resm:Avalonia.Themes.Default.CalendarDayButton.xaml?assembly=Avalonia.Themes.Default"/>
<StyleInclude Source="resm:Avalonia.Themes.Default.CalendarItem.xaml?assembly=Avalonia.Themes.Default"/>
<StyleInclude Source="resm:Avalonia.Themes.Default.Calendar.xaml?assembly=Avalonia.Themes.Default"/>
<StyleInclude Source="resm:Avalonia.Themes.Default.CalendarDatePicker.xaml?assembly=Avalonia.Themes.Default"/>
<StyleInclude Source="resm:Avalonia.Themes.Default.ButtonSpinner.xaml?assembly=Avalonia.Themes.Default"/>
<StyleInclude Source="resm:Avalonia.Themes.Default.NumericUpDown.xaml?assembly=Avalonia.Themes.Default"/>
<StyleInclude Source="resm:Avalonia.Themes.Default.AutoCompleteBox.xaml?assembly=Avalonia.Themes.Default"/>
<StyleInclude Source="resm:Avalonia.Themes.Default.WindowNotificationManager.xaml?assembly=Avalonia.Themes.Default"/>
<StyleInclude Source="resm:Avalonia.Themes.Default.NotificationCard.xaml?assembly=Avalonia.Themes.Default"/>
<StyleInclude Source="resm:Avalonia.Themes.Default.NativeMenuBar.xaml?assembly=Avalonia.Themes.Default"/>
<StyleInclude Source="resm:Avalonia.Themes.Default.ToggleSwitch.xaml?assembly=Avalonia.Themes.Default"/>
<StyleInclude Source="resm:Avalonia.Themes.Default.SplitView.xaml?assembly=Avalonia.Themes.Default"/>
<StyleInclude Source="resm:Avalonia.Themes.Default.DatePicker.xaml?assembly=Avalonia.Themes.Default"/>
<StyleInclude Source="resm:Avalonia.Themes.Default.TimePicker.xaml?assembly=Avalonia.Themes.Default"/>
<StyleInclude Source="resm:Avalonia.Themes.Default.FlyoutPresenter.xaml?assembly=Avalonia.Themes.Default"/>
<StyleInclude Source="resm:Avalonia.Themes.Default.MenuFlyoutPresenter.xaml?assembly=Avalonia.Themes.Default"/>
<StyleInclude Source="resm:Avalonia.Themes.Default.ManagedFileChooser.xaml?assembly=Avalonia.Themes.Default"/>
<StyleInclude Source="avares://Avalonia.Themes.Default/Controls/TabControl.xaml"/>
<StyleInclude Source="avares://Avalonia.Themes.Default/Controls/TabItem.xaml"/>
<StyleInclude Source="avares://Avalonia.Themes.Default/Controls/TextBox.xaml"/>
<StyleInclude Source="avares://Avalonia.Themes.Default/Controls/ToggleButton.xaml"/>
<StyleInclude Source="avares://Avalonia.Themes.Default/Controls/Expander.xaml"/>
<StyleInclude Source="avares://Avalonia.Themes.Default/Controls/TitleBar.xaml"/>
<StyleInclude Source="avares://Avalonia.Themes.Default/Controls/TreeView.xaml"/>
<StyleInclude Source="avares://Avalonia.Themes.Default/Controls/TreeViewItem.xaml"/>
<StyleInclude Source="avares://Avalonia.Themes.Default/Controls/UserControl.xaml"/>
<StyleInclude Source="avares://Avalonia.Themes.Default/Controls/Window.xaml"/>
<StyleInclude Source="avares://Avalonia.Themes.Default/Controls/EmbeddableControlRoot.xaml"/>
<StyleInclude Source="avares://Avalonia.Themes.Default/Controls/CalendarButton.xaml"/>
<StyleInclude Source="avares://Avalonia.Themes.Default/Controls/CalendarDayButton.xaml"/>
<StyleInclude Source="avares://Avalonia.Themes.Default/Controls/CalendarItem.xaml"/>
<StyleInclude Source="avares://Avalonia.Themes.Default/Controls/Calendar.xaml"/>
<StyleInclude Source="avares://Avalonia.Themes.Default/Controls/CalendarDatePicker.xaml"/>
<StyleInclude Source="avares://Avalonia.Themes.Default/Controls/ButtonSpinner.xaml"/>
<StyleInclude Source="avares://Avalonia.Themes.Default/Controls/NumericUpDown.xaml"/>
<StyleInclude Source="avares://Avalonia.Themes.Default/Controls/AutoCompleteBox.xaml"/>
<StyleInclude Source="avares://Avalonia.Themes.Default/Controls/WindowNotificationManager.xaml"/>
<StyleInclude Source="avares://Avalonia.Themes.Default/Controls/NotificationCard.xaml"/>
<StyleInclude Source="avares://Avalonia.Themes.Default/Controls/NativeMenuBar.xaml"/>
<StyleInclude Source="avares://Avalonia.Themes.Default/Controls/ToggleSwitch.xaml"/>
<StyleInclude Source="avares://Avalonia.Themes.Default/Controls/SplitView.xaml"/>
<StyleInclude Source="avares://Avalonia.Themes.Default/Controls/DatePicker.xaml"/>
<StyleInclude Source="avares://Avalonia.Themes.Default/Controls/TimePicker.xaml"/>
<StyleInclude Source="avares://Avalonia.Themes.Default/Controls/FlyoutPresenter.xaml"/>
<StyleInclude Source="avares://Avalonia.Themes.Default/Controls/MenuFlyoutPresenter.xaml"/>
<StyleInclude Source="avares://Avalonia.Themes.Default/Controls/ManagedFileChooser.xaml"/>
</Styles>

1
src/Avalonia.Themes.Default/DefaultTheme.xaml.cs

@ -1,4 +1,3 @@
using Avalonia.Markup.Xaml;
using Avalonia.Styling;
namespace Avalonia.Themes.Default

166
src/Avalonia.Themes.Default/SimpleTheme.cs

@ -0,0 +1,166 @@
using System;
using System.Collections.Generic;
using Avalonia.Controls;
using Avalonia.Markup.Xaml;
using Avalonia.Markup.Xaml.Styling;
using Avalonia.Styling;
#nullable enable
namespace Avalonia.Themes.Default
{
public class SimpleTheme : AvaloniaObject, IStyle, IResourceProvider
{
public static readonly StyledProperty<SimpleThemeMode> ModeProperty =
AvaloniaProperty.Register<SimpleTheme, SimpleThemeMode>(nameof(Mode));
private readonly Uri _baseUri;
private bool _isLoading;
private IStyle? _loaded;
private Styles _sharedStyles = new();
private Styles _simpleDark = new();
private Styles _simpleLight = new();
/// <summary>
/// Initializes a new instance of the <see cref="SimpleTheme"/> class.
/// </summary>
/// <param name="baseUri">The base URL for the XAML context.</param>
public SimpleTheme(Uri baseUri)
{
_baseUri = baseUri;
InitStyles(_baseUri);
}
/// <summary>
/// Initializes a new instance of the <see cref="SimpleTheme"/> class.
/// </summary>
/// <param name="serviceProvider">The XAML service provider.</param>
public SimpleTheme(IServiceProvider serviceProvider)
{
var service = serviceProvider.GetService(typeof(IUriContext));
if (service == null)
{
throw new Exception("There is no service object of type IUriContext!");
}
_baseUri = ((IUriContext)service).BaseUri;
InitStyles(_baseUri);
}
public event EventHandler OwnerChanged
{
add
{
if (Loaded is IResourceProvider rp)
{
rp.OwnerChanged += value;
}
}
remove
{
if (Loaded is IResourceProvider rp)
{
rp.OwnerChanged -= value;
}
}
}
IReadOnlyList<IStyle> IStyle.Children => _loaded?.Children ?? Array.Empty<IStyle>();
bool IResourceNode.HasResources => (Loaded as IResourceProvider)?.HasResources ?? false;
public IStyle Loaded
{
get
{
if (_loaded == null)
{
_isLoading = true;
if (Mode == SimpleThemeMode.Light)
{
_loaded = new Styles { _sharedStyles, _simpleLight };
}
else if (Mode == SimpleThemeMode.Dark)
{
_loaded = new Styles { _sharedStyles, _simpleDark };
}
_isLoading = false;
}
return _loaded!;
}
}
/// <summary>
/// Gets or sets the mode of the fluent theme (light, dark).
/// </summary>
public SimpleThemeMode Mode
{
get => GetValue(ModeProperty);
set => SetValue(ModeProperty, value);
}
public IResourceHost? Owner => (Loaded as IResourceProvider)?.Owner;
void IResourceProvider.AddOwner(IResourceHost owner) => (Loaded as IResourceProvider)?.AddOwner(owner);
void IResourceProvider.RemoveOwner(IResourceHost owner) => (Loaded as IResourceProvider)?.RemoveOwner(owner);
public SelectorMatchResult TryAttach(IStyleable target, IStyleHost? host) => Loaded.TryAttach(target, host);
public bool TryGetResource(object key, out object? value)
{
if (!_isLoading && Loaded is IResourceProvider p)
{
return p.TryGetResource(key, out value);
}
value = null;
return false;
}
protected override void OnPropertyChanged<T>(AvaloniaPropertyChangedEventArgs<T> change)
{
base.OnPropertyChanged(change);
if (change.Property == ModeProperty)
{
if (Mode == SimpleThemeMode.Dark)
{
(Loaded as Styles)![1] = _simpleDark[0];
}
else
{
(Loaded as Styles)![1] = _simpleLight[0];
}
}
}
private void InitStyles(Uri baseUri)
{
_sharedStyles = new Styles
{
new StyleInclude(baseUri)
{
Source = new Uri("avares://Avalonia.Themes.Default/DefaultTheme.xaml")
},
new StyleInclude(baseUri)
{
Source = new Uri("avares://Avalonia.Themes.Default/Accents/Base.xaml")
}
};
_simpleLight = new Styles
{
new StyleInclude(baseUri)
{
Source = new Uri("avares://Avalonia.Themes.Default/Accents/BaseLight.xaml")
}
};
_simpleDark = new Styles
{
new StyleInclude(baseUri)
{
Source = new Uri("avares://Avalonia.Themes.Default/Accents/BaseDark.xaml")
}
};
}
}
}

8
src/Avalonia.Themes.Default/SimpleThemeMode.cs

@ -0,0 +1,8 @@
namespace Avalonia.Themes.Default
{
public enum SimpleThemeMode
{
Light,
Dark
}
}

4
src/Avalonia.Themes.Fluent/Controls/NumericUpDown.xaml

@ -38,7 +38,7 @@
BorderBrush="{TemplateBinding BorderBrush}"
CornerRadius="{TemplateBinding CornerRadius}"
Padding="0"
MinWidth="{TemplateBinding MinWidth}"
MinWidth="0"
HorizontalContentAlignment="Stretch"
VerticalContentAlignment="Stretch"
AllowSpin="{TemplateBinding AllowSpin}"
@ -50,7 +50,7 @@
BorderBrush="Transparent"
Margin="-1"
Padding="{TemplateBinding Padding}"
MinWidth="{TemplateBinding MinWidth}"
MinWidth="0"
Foreground="{TemplateBinding Foreground}"
FontSize="{TemplateBinding FontSize}"
Watermark="{TemplateBinding Watermark}"

13
src/Skia/Avalonia.Skia/DrawingContextImpl.cs

@ -459,8 +459,6 @@ namespace Avalonia.Skia
{
var glyphRunImpl = (GlyphRunImpl)glyphRun.GlyphRunImpl;
ConfigureTextRendering(paintWrapper);
Canvas.DrawText(glyphRunImpl.TextBlob, (float)glyphRun.BaselineOrigin.X,
(float)glyphRun.BaselineOrigin.Y, paintWrapper.Paint);
}
@ -482,7 +480,7 @@ namespace Avalonia.Skia
public void PushClip(RoundedRect clip)
{
Canvas.Save();
Canvas.ClipRoundRect(clip.ToSKRoundRect());
Canvas.ClipRoundRect(clip.ToSKRoundRect(), antialias:true);
}
/// <inheritdoc />
@ -606,15 +604,6 @@ namespace Avalonia.Skia
}
}
internal void ConfigureTextRendering(PaintWrapper wrapper)
{
var paint = wrapper.Paint;
paint.IsEmbeddedBitmapText = true;
paint.SubpixelText = true;
paint.LcdRenderText = _canTextUseLcdRendering;
}
/// <summary>
/// Configure paint wrapper for using gradient brush.
/// </summary>

2
src/Skia/Avalonia.Skia/PlatformRenderInterface.cs

@ -198,7 +198,7 @@ namespace Avalonia.Skia
private static readonly SKFont s_font = new SKFont
{
Subpixel = true,
Edging = SKFontEdging.Antialias,
Edging = SKFontEdging.SubpixelAntialias,
Hinting = SKFontHinting.Full,
LinearMetrics = true
};

13
src/Windows/Avalonia.Win32/WindowImpl.AppWndProc.cs

@ -151,8 +151,8 @@ namespace Avalonia.Win32
}
case WindowsMessage.WM_CHAR:
{
// Ignore control chars
if (ToInt32(wParam) >= 32)
// Ignore control chars and chars that were handled in WM_KEYDOWN.
if (ToInt32(wParam) >= 32 && !_ignoreWmChar)
{
e = new RawTextInputEventArgs(WindowsKeyboardDevice.Instance, timestamp, _owner,
new string((char)ToInt32(wParam), 1));
@ -519,6 +519,15 @@ namespace Avalonia.Win32
{
Input(e);
if ((WindowsMessage)msg == WindowsMessage.WM_KEYDOWN)
{
// Handling a WM_KEYDOWN message should cause the subsequent WM_CHAR message to
// be ignored. This should be safe to do as WM_CHAR should only be produced in
// response to the call to TranslateMessage/DispatchMessage after a WM_KEYDOWN
// is handled.
_ignoreWmChar = e.Handled;
}
if (e.Handled)
{
return IntPtr.Zero;

1
src/Windows/Avalonia.Win32/WindowImpl.cs

@ -90,6 +90,7 @@ namespace Avalonia.Win32
private bool _shown;
private bool _hiddenWindowIsParent;
private uint _langid;
private bool _ignoreWmChar;
public WindowImpl()
{

12
tests/Avalonia.DesignerSupport.TestApp/App.xaml

@ -1,8 +1,10 @@
<Application xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="Avalonia.DesignerSupport.TestApp.App">
<Application
x:Class="Avalonia.DesignerSupport.TestApp.App"
xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Application.Styles>
<StyleInclude Source="resm:Avalonia.Themes.Default.DefaultTheme.xaml?assembly=Avalonia.Themes.Default"/>
<StyleInclude Source="resm:Avalonia.Themes.Default.Accents.BaseLight.xaml?assembly=Avalonia.Themes.Default"/>
<StyleInclude Source="avares://Avalonia.Themes.Default/DefaultTheme.xaml" />
<StyleInclude Source="avares://Avalonia.Themes.Default/Accents/Base.xaml" />
<StyleInclude Source="avares://Avalonia.Themes.Default/Accents/BaseLight.xaml" />
</Application.Styles>
</Application>

2
tests/Avalonia.Markup.Xaml.UnitTests/Xaml/BasicTests.cs

@ -528,7 +528,7 @@ namespace Avalonia.Markup.Xaml.UnitTests.Xaml
var xaml = @"
<Styles xmlns='https://github.com/avaloniaui'
xmlns:x='http://schemas.microsoft.com/winfx/2006/xaml'>
<StyleInclude Source='resm:Avalonia.Themes.Default.ContextMenu.xaml?assembly=Avalonia.Themes.Default'/>
<StyleInclude Source='avares://Avalonia.Themes.Default/Controls/ContextMenu.xaml'/>
</Styles>";
var styles = AvaloniaRuntimeXamlLoader.Parse<Styles>(xaml);

2
tests/Avalonia.UnitTests/TestServices.cs

@ -168,7 +168,7 @@ namespace Avalonia.UnitTests
};
var baseLight = (IStyle)AvaloniaXamlLoader.Load(
new Uri("resm:Avalonia.Themes.Default.Accents.BaseLight.xaml?assembly=Avalonia.Themes.Default"));
new Uri("avares://Avalonia.Themes.Default/Accents/BaseLight.xaml"));
result.Add(baseLight);
return result;

6
tests/Avalonia.UnitTests/UnitTestApplication.cs

@ -10,6 +10,7 @@ using System.Reactive.Disposables;
using System.Reactive.Concurrency;
using Avalonia.Input.Platform;
using Avalonia.Animation;
using Avalonia.Shared.PlatformSupport;
namespace Avalonia.UnitTests
{
@ -29,6 +30,11 @@ namespace Avalonia.UnitTests
RegisterServices();
}
static UnitTestApplication()
{
AssetLoader.RegisterResUriParsers();
}
public static new UnitTestApplication Current => (UnitTestApplication)Application.Current;
public TestServices Services => _services;

Loading…
Cancel
Save