diff --git a/Documentation/build.md b/Documentation/build.md index 5f75290424..a7d68eb599 100644 --- a/Documentation/build.md +++ b/Documentation/build.md @@ -9,10 +9,24 @@ git clone https://github.com/AvaloniaUI/Avalonia.git git submodule update --init ``` +### Install the required version of the .NET Core SDK + +Go to https://dotnet.microsoft.com/download/visual-studio-sdks and install the latest version of the .NET Core SDK compatible with Avalonia UI. Make sure to download the SDK (not just the "runtime") package. The version compatible is indicated within the [global.json](https://github.com/AvaloniaUI/Avalonia/blob/master/global.json) file. Note that Avalonia UI does not always use the latest version and is hardcoded to use the last version known to be compatible (SDK releases may break the builds from time-to-time). + ### Open in Visual Studio -Open the `Avalonia.sln` solution in Visual Studio 2019 or newer. The free Visual Studio Community -edition works fine. Run the `Samples\ControlCatalog.Desktop` project to see the sample application. +Open the `Avalonia.sln` solution in Visual Studio 2019 or newer. The free Visual Studio Community edition works fine. Build and run the `Samples\ControlCatalog.Desktop` or `ControlCatalog.NetCore` project to see the sample application. + +### Troubleshooting + + * **Error CS0006: Avalonia.DesktopRuntime.dll could not be found** + + It is common for the first build to fail with the errors below (also discussed in [#4257](https://github.com/AvaloniaUI/Avalonia/issues/4257)). + ``` + >CSC : error CS0006: Metadata file 'C:\...\Avalonia\src\Avalonia.DesktopRuntime\bin\Debug\netcoreapp2.0\Avalonia.DesktopRuntime.dll' could not be found + >CSC : error CS0006: Metadata file 'C:\...\Avalonia\packages\Avalonia\bin\Debug\netcoreapp2.0\Avalonia.dll' could not be found + ``` + To correct this, right click on the `Avalonia.DesktopRuntime` project then press `Build` to build the project manually. Afterwards the solution should build normally and the ControlCatalog can be run. # Linux/macOS @@ -20,9 +34,9 @@ It's *not* possible to build the *whole* project on Linux/macOS. You can only bu MonoDevelop, Xamarin Studio and Visual Studio for Mac aren't capable of properly opening our solution. You can use Rider (at least 2017.2 EAP) or VSCode instead. They will fail to load most of platform specific projects, but you don't need them to run on .NET Core. -### Install the latest version of .NET Core +### Install the latest version of the .NET Core SDK -Go to https://www.microsoft.com/net/core and follow instructions for your OS. You need SDK (not just "runtime") package. +Go to https://www.microsoft.com/net/core and follow the instructions for your OS. Make sure to download the SDK (not just the "runtime") package. ### Additional requirements for macOS diff --git a/src/Avalonia.Animation/Animation.cs b/src/Avalonia.Animation/Animation.cs index 05142532e9..c42153ec4f 100644 --- a/src/Avalonia.Animation/Animation.cs +++ b/src/Avalonia.Animation/Animation.cs @@ -209,6 +209,17 @@ namespace Avalonia.Animation ( prop => typeof(decimal).IsAssignableFrom(prop.PropertyType), typeof(DecimalAnimator) ), }; + /// + /// Registers a that can handle + /// a value type that matches the specified condition. + /// + /// + /// The condition to which the + /// is to be activated and used. + /// + /// + /// The type of the animator to instantiate. + /// public static void RegisterAnimator(Func condition) where TAnimator : IAnimator { diff --git a/src/Avalonia.Animation/Animators/Animator`1.cs b/src/Avalonia.Animation/Animators/Animator`1.cs index 0660440e30..d784227620 100644 --- a/src/Avalonia.Animation/Animators/Animator`1.cs +++ b/src/Avalonia.Animation/Animators/Animator`1.cs @@ -104,6 +104,11 @@ namespace Avalonia.Animation.Animators throw new Exception("Index time is out of keyframe time range."); } + public virtual IDisposable BindAnimation(Animatable control, IObservable instance) + { + return control.Bind((AvaloniaProperty)Property, instance, BindingPriority.Animation); + } + /// /// Runs the KeyFrames Animation. /// @@ -116,7 +121,8 @@ namespace Avalonia.Animation.Animators clock ?? control.Clock ?? Clock.GlobalClock, onComplete, InterpolationHandler); - return control.Bind((AvaloniaProperty)Property, instance, BindingPriority.Animation); + + return BindAnimation(control, instance); } /// diff --git a/src/Avalonia.Themes.Fluent/Accents/AccentColors.xaml b/src/Avalonia.Themes.Fluent/Accents/AccentColors.xaml new file mode 100644 index 0000000000..1cf2f7e43d --- /dev/null +++ b/src/Avalonia.Themes.Fluent/Accents/AccentColors.xaml @@ -0,0 +1,15 @@ + diff --git a/src/Avalonia.Themes.Fluent/Accents/Base.xaml b/src/Avalonia.Themes.Fluent/Accents/Base.xaml index 0e34eb3f3b..8597c76998 100644 --- a/src/Avalonia.Themes.Fluent/Accents/Base.xaml +++ b/src/Avalonia.Themes.Fluent/Accents/Base.xaml @@ -22,5 +22,13 @@ 10,6,6,5 20 20 + + + 3 + 5 + + + scaleX(0.125) translateX(-2px) + scaleY(0.125) translateY(-2px) diff --git a/src/Avalonia.Themes.Fluent/Accents/BaseDark.xaml b/src/Avalonia.Themes.Fluent/Accents/BaseDark.xaml index fb08b97b47..915be08e53 100644 --- a/src/Avalonia.Themes.Fluent/Accents/BaseDark.xaml +++ b/src/Avalonia.Themes.Fluent/Accents/BaseDark.xaml @@ -2,16 +2,6 @@ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:sys="clr-namespace:System;assembly=netstandard"> - - - #FF0078D7 - #FF005A9E - #FF004275 - #FF002642 - #FF429CE3 - #FF76B9ED - #FFA6D8FF - #FF000000 #33000000 @@ -40,6 +30,9 @@ #33FFFFFF #FFF000 + #18FFFFFF + #30FFFFFF + @@ -135,7 +128,6 @@ - @@ -150,197 +142,39 @@ - False + + + + + + + #FF000000 + - - XamlAutoFontFamily - XamlAutoFontFamily - Segoe WP - Segoe WP SemiLight - XamlAutoFontFamily - Segoe MDL2 Assets - XamlAutoFontFamily - 24 - 48 - 56 - 24 - 40 - 3 374 - 0 - 2 - 0 - 21 - 64 - 80 - 240 - 14 - 14 - 320 - 548 - 184 - 756 - 130 - 202 - 32 - 32 - 56 - 80 - 20 - 20 - 758 - 456 - 40 - 96 - 240 - 4 - 34 - 20 - 14 - 80 - 16.0 - 42 - 180 - 12 - 48 - 48 - 96 - 16 - 21 - 62 - -112 - 42 - 289 - 96 - 8 - 16 - 0.6 - 4 - 2 - 0 - 14 - 32 - 32 - 270 - 300 - 28 - 4 - 26.667 - - 4 - 2 - 320 - 48 - 0.8 - 0.8 - 1 - 0.87 - 0.87 - 1 - 0.4 - 0.6 - 1 - 32 - 64 - 18.14 - 25.5 - - 80 - 12 - 44 - 44 - 20 - 20 - - 0 - 44 - 44 - 12 - 0,0,0,0 - 0,0,0,0 - 0,0,0,0 - 0,0,0,0 - 3,0,3,0 - 1 0,2,0,2 + 1 -1,0,-1,0 - 12,11,0,13 - 2 - 2 - 2 - 1 - 0 - 0,4,0,4 - 0,0,0,4 - 2 - 11,5,11,7 - 11,11,11,13 - 11,11,11,13 - 1 - 0,0,4,0 - 0,0,0,0 - 0,0,0,0 - 0,0,0,0 - 0,24,0,0 - 0,0,0,12 - 24,18,24,24 - 0,0,0,4 + 32 + 64 + 456 + 0 1 0 - 0 - 0,37,0,0 - 0,19,0,0 - 19,0,19,17.5 - 0 - 0,0,0,0 + 12,11,12,12 - 4 - 2.5 - 5,6,5,6 - 0,0,0,9 - 24,0,0,11 - 0 - 0,9.5,0,0 - 0,0,0,19 - 19,19,19,0 - 19,37,19,0 - 0,0,0,32.5 - 0 - 2 - 1 - 12,11,8,13 - 12,11,8,13 - 12,11,8,13 - 0,0,12,0 - 12,4,8,4 - 0,2,0,0 - 2 - 0 - 0,0,0,4 - 0,0,1,0 - 1,0,0,0 - 2 - 0,9.5,0,9.5 - 10,3,6,6 - 0,0,-2,0 - 12,5,10,5 - 0,0,0,4 - 0,0,20,0 - 20,0,0,0 - 2 - 1 - 4 - Normal - SemiLight - Normal - Normal - Normal - Normal - Normal - Light - Normal - 48 - 48,0,48,27 + 96 + 40 + 758 + + + 0 + + + 0,4,0,4 + + + 12,0,12,0 diff --git a/src/Avalonia.Themes.Fluent/Accents/BaseLight.xaml b/src/Avalonia.Themes.Fluent/Accents/BaseLight.xaml index 6c8d16ddfa..e5c0babb80 100644 --- a/src/Avalonia.Themes.Fluent/Accents/BaseLight.xaml +++ b/src/Avalonia.Themes.Fluent/Accents/BaseLight.xaml @@ -2,16 +2,6 @@ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:sys="clr-namespace:System;assembly=netstandard"> - - - #FF0078D7 - #FF005A9E - #FF004275 - #FF002642 - #FF429CE3 - #FF76B9ED - #FFA6D8FF - #FFFFFFFF #33FFFFFF @@ -40,6 +30,9 @@ #33000000 #C50500 + #17000000 + #2E000000 + @@ -135,7 +128,6 @@ - @@ -150,196 +142,42 @@ - False + + + + + + - - XamlAutoFontFamily - XamlAutoFontFamily - Segoe WP - Segoe WP SemiLight - XamlAutoFontFamily - Segoe MDL2 Assets - XamlAutoFontFamily - 24 - 48 - 56 - 24 - 40 - 3 - 374 - 0 - 2 - 0 - 21 - 64 - 80 - 240 - 14 - 14 - 320 - 548 - 184 - 756 - 130 - 202 - 32 - 32 - 56 - 80 - 20 - 20 - 758 - 456 - 40 - 96 - 240 - 4 - 34 - 20 - 14 - 80 - 16.0 - 42 - 180 - 12 - 48 - 48 - 96 - 16 - 21 - 62 - -112 - 42 - 289 - 96 - 8 - 16 - 0.6 - 4 - 2 - 0 - 14 - 32 - 32 - 270 - 300 - 28 - 4 - 26.667 - 4 - 2 - 320 - 48 - 0.8 - 0.45 - 0.5625 - 0.87 - 0.73 - 0.839 - 0.4 - 0.6 - 1 - 32 - 64 - 18.14 - 25.5 + + #FFFFFFFF + - 80 - 12 - 44 - 44 - 20 - 20 - 0 - 44 - 44 - 12 - 0,0,0,0 - 0,0,0,0 - 0,0,0,0 - 0,0,0,0 - 3,0,3,0 - 1 + 374 0,2,0,2 + 1 -1,0,-1,0 - 12,11,0,13 - 2 - 2 - 2 - 1 - 0 - 0,4,0,4 - 0,0,0,4 - 2 - 11,5,11,7 - 11,11,11,13 - 11,11,11,13 - 1 - 0,0,4,0 - 0,0,0,0 - 0,0,0,0 - 0,0,0,0 - 0,24,0,0 - 0,0,0,12 - 24,18,24,24 - 0,0,0,4 + 32 + 64 + 456 + 0 1 0 - 0 - 0,37,0,0 - 0,19,0,0 - 19,0,19,17.5 - 0 - 0,0,0,0 + 12,11,12,12 - 4 - 2.5 - 5,6,5,6 - 0,0,0,9 - 24,0,0,11 - 0 - 0,9.5,0,0 - 0,0,0,19 - 19,19,19,0 - 19,37,19,0 - 0,0,0,32.5 - 0 - 0 - 1 - 12,11,8,13 - 12,11,8,13 - 12,11,8,13 - 0,0,12,0 - 12,4,8,4 - 0,2,0,0 - 2 - 0 - 0,0,0,4 - 0,0,1,0 - 1,0,0,0 - 2 - 0,9.5,0,9.5 - 10,3,6,6 - 0,0,-2,0 - 12,5,10,5 - 0,0,0,4 - 0,0,20,0 - 20,0,0,0 - 2 - 1 - 4 - Normal - SemiLight - Normal - Normal - Normal - Normal - Normal - Light - Normal - 48 - 48,0,48,27 + 96 + 40 + 758 + + + 0 + + + 0,4,0,4 + + + 12,0,12,0 diff --git a/src/Avalonia.Themes.Fluent/Accents/FluentBaseDark.xaml b/src/Avalonia.Themes.Fluent/Accents/FluentBaseDark.xaml deleted file mode 100644 index 1c65911593..0000000000 --- a/src/Avalonia.Themes.Fluent/Accents/FluentBaseDark.xaml +++ /dev/null @@ -1,455 +0,0 @@ - diff --git a/src/Avalonia.Themes.Fluent/Accents/FluentBaseLight.xaml b/src/Avalonia.Themes.Fluent/Accents/FluentBaseLight.xaml deleted file mode 100644 index ad23955776..0000000000 --- a/src/Avalonia.Themes.Fluent/Accents/FluentBaseLight.xaml +++ /dev/null @@ -1,458 +0,0 @@ - diff --git a/src/Avalonia.Themes.Fluent/Accents/FluentControlResourcesDark.xaml b/src/Avalonia.Themes.Fluent/Accents/FluentControlResourcesDark.xaml index ae1fe42031..a1f423c059 100644 --- a/src/Avalonia.Themes.Fluent/Accents/FluentControlResourcesDark.xaml +++ b/src/Avalonia.Themes.Fluent/Accents/FluentControlResourcesDark.xaml @@ -28,19 +28,8 @@ - - - - - - - - - - - - 1 + @@ -53,15 +42,6 @@ - - - - - - - - - 1 @@ -101,45 +81,18 @@ - - - - - - - - - - - - - - - - - - - 21 64 - 80 - 240 1 1 - 0,0,0,4 - 2 11,5,11,7 - 11,11,11,13 - 11,11,11,13 - Normal - SemiLight + Normal - - + @@ -147,17 +100,14 @@ - - + - - + - - + @@ -182,73 +132,18 @@ - - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 0,4,0,4 - - - - - 0 - - - - - - - - - - - - - - - + + + 4 + 0 1 @@ -268,8 +163,7 @@ - - + @@ -279,50 +173,43 @@ 1 - - - 0.6 - 4 - 0 - - - - - + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - - 12 - + 1 - 0 @@ -362,8 +249,7 @@ - - + @@ -395,23 +281,9 @@ - - - - - - - - - - - - - - + - @@ -419,12 +291,9 @@ - - - @@ -432,12 +301,11 @@ - - + @@ -484,27 +352,11 @@ - - - - - - - - - - - - - - - - + 4 2 0 - 0,0,0,4 Normal @@ -527,44 +379,18 @@ - - - - - - - - - - - - - - - - - - - - - - - + 0 1 - - - - @@ -585,29 +411,6 @@ - - - - - - - - - - - - - - - - - - - - - - - 12 @@ -615,16 +418,12 @@ - - - - 8,5,8,7 + 8,5,8,7 - @@ -633,17 +432,14 @@ - - - @@ -653,6 +449,7 @@ + @@ -667,30 +464,22 @@ - - - - - - XamlAutoFontFamily 24 - 40 - -25 12,0,12,0 12,0,12,0 SemiLight - + @@ -705,24 +494,19 @@ - - + + 0 - 1 - - - - @@ -731,46 +515,19 @@ - - - - - - - - - - - - - - - - - - - - - - - 00:00:00.1 - 00:00:02 - 00:00:00.1 - 00:00:02.1 16 8 - 00:00:00.40 - 00:00:02.00 + @@ -796,11 +553,9 @@ - - - 1 32 + @@ -812,7 +567,9 @@ - + + + diff --git a/src/Avalonia.Themes.Fluent/Accents/FluentControlResourcesLight.xaml b/src/Avalonia.Themes.Fluent/Accents/FluentControlResourcesLight.xaml index 5af24f57a8..f75af76144 100644 --- a/src/Avalonia.Themes.Fluent/Accents/FluentControlResourcesLight.xaml +++ b/src/Avalonia.Themes.Fluent/Accents/FluentControlResourcesLight.xaml @@ -28,19 +28,8 @@ - - - - - - - - - - - + - 1 @@ -53,15 +42,7 @@ - - - - - - - - - + 1 @@ -100,45 +81,18 @@ - - - - - - - - - - - - - - - - - - - + - 21 - 64 - 80 - 240 + 64 1 - 1 - 0,0,0,4 - 2 - 11,5,11,7 - 11,11,11,13 - 11,11,11,13 + 1 + 11,5,11,7 Normal - SemiLight - @@ -147,20 +101,16 @@ - - - - @@ -182,81 +132,18 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 0,4,0,4 - - - - - - + 0 - - - - - - - - - - - - - - - - - 0.6 + + 4 0 - - - - - + 1 32 @@ -276,7 +163,6 @@ - @@ -286,41 +172,41 @@ 1 - + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - + - - 12 - + 1 - 0 @@ -360,8 +246,7 @@ - - + @@ -393,23 +278,8 @@ - - - - - - - - - - - - - - - + - @@ -417,12 +287,9 @@ - - - @@ -430,12 +297,11 @@ - - + @@ -482,27 +348,11 @@ - - - - - - - - - - - - - - - - + 4 2 0 - 0,0,0,4 Normal @@ -525,44 +375,18 @@ - - - - - - - - - - - - - - - - - - - - - - - + 0 1 - - - - @@ -583,46 +407,19 @@ - - - - - - - - - - - - - - - - - - - - - - - - + 12 1 - - - 8,5,8,7 - + - @@ -631,17 +428,14 @@ - - - @@ -651,7 +445,7 @@ - + @@ -665,30 +459,22 @@ - - - - - - + - XamlAutoFontFamily 24 - 40 - -25 12,0,12,0 12,0,12,0 SemiLight - + @@ -704,23 +490,17 @@ - - + 0 - 1 - - - - @@ -729,46 +509,19 @@ - - - - - - - - - - - - - - - - - - - - - - - - 00:00:00.1 - 00:00:02 - 00:00:00.1 - 00:00:02.1 + 16 8 - 00:00:00.40 - 00:00:02.00 + @@ -794,11 +547,9 @@ - - - 1 32 + @@ -810,7 +561,9 @@ - + + + diff --git a/src/Avalonia.Themes.Fluent/Controls/ContextMenu.xaml b/src/Avalonia.Themes.Fluent/Controls/ContextMenu.xaml index a4e716c7f6..5110d70a80 100644 --- a/src/Avalonia.Themes.Fluent/Controls/ContextMenu.xaml +++ b/src/Avalonia.Themes.Fluent/Controls/ContextMenu.xaml @@ -1,4 +1,5 @@