diff --git a/Avalonia.sln b/Avalonia.sln
index 5043f474c2..a216229a5b 100644
--- a/Avalonia.sln
+++ b/Avalonia.sln
@@ -5,48 +5,26 @@ VisualStudioVersion = 17.0.31903.59
MinimumVisualStudioVersion = 10.0.40219.1
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Base", "src\Avalonia.Base\Avalonia.Base.csproj", "{B09B78D8-9B26-48B0-9149-D64A2F120F3F}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Visuals", "src\Avalonia.Visuals\Avalonia.Visuals.csproj", "{EB582467-6ABB-43A1-B052-E981BA910E3A}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Layout", "src\Avalonia.Layout\Avalonia.Layout.csproj", "{42472427-4774-4C81-8AFF-9F27B8E31721}"
-EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Windows", "Windows", "{B39A8919-9F95-48FE-AD7B-76E08B509888}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Win32", "src\Windows\Avalonia.Win32\Avalonia.Win32.csproj", "{811A76CF-1CF6-440F-963B-BBE31BD72A82}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Direct2D1", "src\Windows\Avalonia.Direct2D1\Avalonia.Direct2D1.csproj", "{3E908F67-5543-4879-A1DC-08EACE79B3CD}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Input", "src\Avalonia.Input\Avalonia.Input.csproj", "{62024B2D-53EB-4638-B26B-85EEAA54866E}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Interactivity", "src\Avalonia.Interactivity\Avalonia.Interactivity.csproj", "{6B0ED19D-A08B-461C-A9D9-A9EE40B0C06B}"
-EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Controls", "src\Avalonia.Controls\Avalonia.Controls.csproj", "{D2221C82-4A25-4583-9B43-D791E3F6820C}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Styling", "src\Avalonia.Styling\Avalonia.Styling.csproj", "{F1BAA01A-F176-4C6A-B39D-5B40BB1B148F}"
-EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Themes.Default", "src\Avalonia.Themes.Default\Avalonia.Themes.Default.csproj", "{3E10A5FA-E8DA-48B1-AD44-6A5B6CB7750F}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Diagnostics", "src\Avalonia.Diagnostics\Avalonia.Diagnostics.csproj", "{7062AE20-5DCC-4442-9645-8195BDECE63E}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Animation", "src\Avalonia.Animation\Avalonia.Animation.csproj", "{D211E587-D8BC-45B9-95A4-F297C8FA5200}"
-EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{C5A00AC3-B34C-4564-9BDD-2DA473EF4D8B}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Styling.UnitTests", "tests\Avalonia.Styling.UnitTests\Avalonia.Styling.UnitTests.csproj", "{47ECDF59-DEF8-4C53-87B1-2098A3429059}"
-EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Controls.UnitTests", "tests\Avalonia.Controls.UnitTests\Avalonia.Controls.UnitTests.csproj", "{5CCB5571-7C30-4E7D-967D-0E2158EBD91F}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Visuals.UnitTests", "tests\Avalonia.Visuals.UnitTests\Avalonia.Visuals.UnitTests.csproj", "{76716382-3159-460E-BDA6-C5715CF606D7}"
-EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Base.UnitTests", "tests\Avalonia.Base.UnitTests\Avalonia.Base.UnitTests.csproj", "{2905FF23-53FB-45E6-AA49-6AF47A172056}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Layout.UnitTests", "tests\Avalonia.Layout.UnitTests\Avalonia.Layout.UnitTests.csproj", "{DB070A10-BF39-4752-8456-86E9D5928478}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Interactivity.UnitTests", "tests\Avalonia.Interactivity.UnitTests\Avalonia.Interactivity.UnitTests.csproj", "{08478EF5-44E8-42E9-92D6-15E00EC038D8}"
-EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Direct2D1.RenderTests", "tests\Avalonia.Direct2D1.RenderTests\Avalonia.Direct2D1.RenderTests.csproj", "{DABFD304-D6A4-4752-8123-C2CCF7AC7831}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Input.UnitTests", "tests\Avalonia.Input.UnitTests\Avalonia.Input.UnitTests.csproj", "{AC18926A-E784-40FE-B09D-BB0FE2B599F0}"
-EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Direct2D1.UnitTests", "tests\Avalonia.Direct2D1.UnitTests\Avalonia.Direct2D1.UnitTests.csproj", "{EFB11458-9CDF-41C0-BE4F-44AF45A4CAB8}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Markup.Xaml.UnitTests", "tests\Avalonia.Markup.Xaml.UnitTests\Avalonia.Markup.Xaml.UnitTests.csproj", "{99135EAB-653D-47E4-A378-C96E1278CA44}"
@@ -185,8 +163,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Build.Tasks", "src
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "_build", "nukebuild\_build.csproj", "{3F00BC43-5095-477F-93D8-E65B08179A00}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Animation.UnitTests", "tests\Avalonia.Animation.UnitTests\Avalonia.Animation.UnitTests.csproj", "{AF227847-E65C-4BE9-BCE9-B551357788E0}"
-EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.X11", "src\Avalonia.X11\Avalonia.X11.csproj", "{41B02319-965D-4945-8005-C1A3D1224165}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PlatformSanityChecks", "samples\PlatformSanityChecks\PlatformSanityChecks.csproj", "{D775DECB-4E00-4ED5-A75A-5FCE58ADFF0B}"
@@ -279,54 +255,6 @@ Global
{B09B78D8-9B26-48B0-9149-D64A2F120F3F}.Release|iPhone.Build.0 = Release|Any CPU
{B09B78D8-9B26-48B0-9149-D64A2F120F3F}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{B09B78D8-9B26-48B0-9149-D64A2F120F3F}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {EB582467-6ABB-43A1-B052-E981BA910E3A}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
- {EB582467-6ABB-43A1-B052-E981BA910E3A}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
- {EB582467-6ABB-43A1-B052-E981BA910E3A}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
- {EB582467-6ABB-43A1-B052-E981BA910E3A}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
- {EB582467-6ABB-43A1-B052-E981BA910E3A}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {EB582467-6ABB-43A1-B052-E981BA910E3A}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
- {EB582467-6ABB-43A1-B052-E981BA910E3A}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
- {EB582467-6ABB-43A1-B052-E981BA910E3A}.AppStore|Any CPU.Build.0 = Release|Any CPU
- {EB582467-6ABB-43A1-B052-E981BA910E3A}.AppStore|iPhone.ActiveCfg = Release|Any CPU
- {EB582467-6ABB-43A1-B052-E981BA910E3A}.AppStore|iPhone.Build.0 = Release|Any CPU
- {EB582467-6ABB-43A1-B052-E981BA910E3A}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {EB582467-6ABB-43A1-B052-E981BA910E3A}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
- {EB582467-6ABB-43A1-B052-E981BA910E3A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {EB582467-6ABB-43A1-B052-E981BA910E3A}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {EB582467-6ABB-43A1-B052-E981BA910E3A}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {EB582467-6ABB-43A1-B052-E981BA910E3A}.Debug|iPhone.Build.0 = Debug|Any CPU
- {EB582467-6ABB-43A1-B052-E981BA910E3A}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {EB582467-6ABB-43A1-B052-E981BA910E3A}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {EB582467-6ABB-43A1-B052-E981BA910E3A}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {EB582467-6ABB-43A1-B052-E981BA910E3A}.Release|Any CPU.Build.0 = Release|Any CPU
- {EB582467-6ABB-43A1-B052-E981BA910E3A}.Release|iPhone.ActiveCfg = Release|Any CPU
- {EB582467-6ABB-43A1-B052-E981BA910E3A}.Release|iPhone.Build.0 = Release|Any CPU
- {EB582467-6ABB-43A1-B052-E981BA910E3A}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {EB582467-6ABB-43A1-B052-E981BA910E3A}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {42472427-4774-4C81-8AFF-9F27B8E31721}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
- {42472427-4774-4C81-8AFF-9F27B8E31721}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
- {42472427-4774-4C81-8AFF-9F27B8E31721}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
- {42472427-4774-4C81-8AFF-9F27B8E31721}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
- {42472427-4774-4C81-8AFF-9F27B8E31721}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {42472427-4774-4C81-8AFF-9F27B8E31721}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
- {42472427-4774-4C81-8AFF-9F27B8E31721}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
- {42472427-4774-4C81-8AFF-9F27B8E31721}.AppStore|Any CPU.Build.0 = Release|Any CPU
- {42472427-4774-4C81-8AFF-9F27B8E31721}.AppStore|iPhone.ActiveCfg = Release|Any CPU
- {42472427-4774-4C81-8AFF-9F27B8E31721}.AppStore|iPhone.Build.0 = Release|Any CPU
- {42472427-4774-4C81-8AFF-9F27B8E31721}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {42472427-4774-4C81-8AFF-9F27B8E31721}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
- {42472427-4774-4C81-8AFF-9F27B8E31721}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {42472427-4774-4C81-8AFF-9F27B8E31721}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {42472427-4774-4C81-8AFF-9F27B8E31721}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {42472427-4774-4C81-8AFF-9F27B8E31721}.Debug|iPhone.Build.0 = Debug|Any CPU
- {42472427-4774-4C81-8AFF-9F27B8E31721}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {42472427-4774-4C81-8AFF-9F27B8E31721}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {42472427-4774-4C81-8AFF-9F27B8E31721}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {42472427-4774-4C81-8AFF-9F27B8E31721}.Release|Any CPU.Build.0 = Release|Any CPU
- {42472427-4774-4C81-8AFF-9F27B8E31721}.Release|iPhone.ActiveCfg = Release|Any CPU
- {42472427-4774-4C81-8AFF-9F27B8E31721}.Release|iPhone.Build.0 = Release|Any CPU
- {42472427-4774-4C81-8AFF-9F27B8E31721}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {42472427-4774-4C81-8AFF-9F27B8E31721}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{811A76CF-1CF6-440F-963B-BBE31BD72A82}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
{811A76CF-1CF6-440F-963B-BBE31BD72A82}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
{811A76CF-1CF6-440F-963B-BBE31BD72A82}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
@@ -375,54 +303,6 @@ Global
{3E908F67-5543-4879-A1DC-08EACE79B3CD}.Release|iPhone.Build.0 = Release|Any CPU
{3E908F67-5543-4879-A1DC-08EACE79B3CD}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{3E908F67-5543-4879-A1DC-08EACE79B3CD}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {62024B2D-53EB-4638-B26B-85EEAA54866E}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
- {62024B2D-53EB-4638-B26B-85EEAA54866E}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
- {62024B2D-53EB-4638-B26B-85EEAA54866E}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
- {62024B2D-53EB-4638-B26B-85EEAA54866E}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
- {62024B2D-53EB-4638-B26B-85EEAA54866E}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {62024B2D-53EB-4638-B26B-85EEAA54866E}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
- {62024B2D-53EB-4638-B26B-85EEAA54866E}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
- {62024B2D-53EB-4638-B26B-85EEAA54866E}.AppStore|Any CPU.Build.0 = Release|Any CPU
- {62024B2D-53EB-4638-B26B-85EEAA54866E}.AppStore|iPhone.ActiveCfg = Release|Any CPU
- {62024B2D-53EB-4638-B26B-85EEAA54866E}.AppStore|iPhone.Build.0 = Release|Any CPU
- {62024B2D-53EB-4638-B26B-85EEAA54866E}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {62024B2D-53EB-4638-B26B-85EEAA54866E}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
- {62024B2D-53EB-4638-B26B-85EEAA54866E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {62024B2D-53EB-4638-B26B-85EEAA54866E}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {62024B2D-53EB-4638-B26B-85EEAA54866E}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {62024B2D-53EB-4638-B26B-85EEAA54866E}.Debug|iPhone.Build.0 = Debug|Any CPU
- {62024B2D-53EB-4638-B26B-85EEAA54866E}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {62024B2D-53EB-4638-B26B-85EEAA54866E}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {62024B2D-53EB-4638-B26B-85EEAA54866E}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {62024B2D-53EB-4638-B26B-85EEAA54866E}.Release|Any CPU.Build.0 = Release|Any CPU
- {62024B2D-53EB-4638-B26B-85EEAA54866E}.Release|iPhone.ActiveCfg = Release|Any CPU
- {62024B2D-53EB-4638-B26B-85EEAA54866E}.Release|iPhone.Build.0 = Release|Any CPU
- {62024B2D-53EB-4638-B26B-85EEAA54866E}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {62024B2D-53EB-4638-B26B-85EEAA54866E}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {6B0ED19D-A08B-461C-A9D9-A9EE40B0C06B}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
- {6B0ED19D-A08B-461C-A9D9-A9EE40B0C06B}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
- {6B0ED19D-A08B-461C-A9D9-A9EE40B0C06B}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
- {6B0ED19D-A08B-461C-A9D9-A9EE40B0C06B}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
- {6B0ED19D-A08B-461C-A9D9-A9EE40B0C06B}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {6B0ED19D-A08B-461C-A9D9-A9EE40B0C06B}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
- {6B0ED19D-A08B-461C-A9D9-A9EE40B0C06B}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
- {6B0ED19D-A08B-461C-A9D9-A9EE40B0C06B}.AppStore|Any CPU.Build.0 = Release|Any CPU
- {6B0ED19D-A08B-461C-A9D9-A9EE40B0C06B}.AppStore|iPhone.ActiveCfg = Release|Any CPU
- {6B0ED19D-A08B-461C-A9D9-A9EE40B0C06B}.AppStore|iPhone.Build.0 = Release|Any CPU
- {6B0ED19D-A08B-461C-A9D9-A9EE40B0C06B}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {6B0ED19D-A08B-461C-A9D9-A9EE40B0C06B}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
- {6B0ED19D-A08B-461C-A9D9-A9EE40B0C06B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {6B0ED19D-A08B-461C-A9D9-A9EE40B0C06B}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {6B0ED19D-A08B-461C-A9D9-A9EE40B0C06B}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {6B0ED19D-A08B-461C-A9D9-A9EE40B0C06B}.Debug|iPhone.Build.0 = Debug|Any CPU
- {6B0ED19D-A08B-461C-A9D9-A9EE40B0C06B}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {6B0ED19D-A08B-461C-A9D9-A9EE40B0C06B}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {6B0ED19D-A08B-461C-A9D9-A9EE40B0C06B}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {6B0ED19D-A08B-461C-A9D9-A9EE40B0C06B}.Release|Any CPU.Build.0 = Release|Any CPU
- {6B0ED19D-A08B-461C-A9D9-A9EE40B0C06B}.Release|iPhone.ActiveCfg = Release|Any CPU
- {6B0ED19D-A08B-461C-A9D9-A9EE40B0C06B}.Release|iPhone.Build.0 = Release|Any CPU
- {6B0ED19D-A08B-461C-A9D9-A9EE40B0C06B}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {6B0ED19D-A08B-461C-A9D9-A9EE40B0C06B}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{D2221C82-4A25-4583-9B43-D791E3F6820C}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
{D2221C82-4A25-4583-9B43-D791E3F6820C}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
{D2221C82-4A25-4583-9B43-D791E3F6820C}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
@@ -447,30 +327,6 @@ Global
{D2221C82-4A25-4583-9B43-D791E3F6820C}.Release|iPhone.Build.0 = Release|Any CPU
{D2221C82-4A25-4583-9B43-D791E3F6820C}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{D2221C82-4A25-4583-9B43-D791E3F6820C}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {F1BAA01A-F176-4C6A-B39D-5B40BB1B148F}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
- {F1BAA01A-F176-4C6A-B39D-5B40BB1B148F}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
- {F1BAA01A-F176-4C6A-B39D-5B40BB1B148F}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
- {F1BAA01A-F176-4C6A-B39D-5B40BB1B148F}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
- {F1BAA01A-F176-4C6A-B39D-5B40BB1B148F}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {F1BAA01A-F176-4C6A-B39D-5B40BB1B148F}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
- {F1BAA01A-F176-4C6A-B39D-5B40BB1B148F}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
- {F1BAA01A-F176-4C6A-B39D-5B40BB1B148F}.AppStore|Any CPU.Build.0 = Release|Any CPU
- {F1BAA01A-F176-4C6A-B39D-5B40BB1B148F}.AppStore|iPhone.ActiveCfg = Release|Any CPU
- {F1BAA01A-F176-4C6A-B39D-5B40BB1B148F}.AppStore|iPhone.Build.0 = Release|Any CPU
- {F1BAA01A-F176-4C6A-B39D-5B40BB1B148F}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {F1BAA01A-F176-4C6A-B39D-5B40BB1B148F}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
- {F1BAA01A-F176-4C6A-B39D-5B40BB1B148F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {F1BAA01A-F176-4C6A-B39D-5B40BB1B148F}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {F1BAA01A-F176-4C6A-B39D-5B40BB1B148F}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {F1BAA01A-F176-4C6A-B39D-5B40BB1B148F}.Debug|iPhone.Build.0 = Debug|Any CPU
- {F1BAA01A-F176-4C6A-B39D-5B40BB1B148F}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {F1BAA01A-F176-4C6A-B39D-5B40BB1B148F}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {F1BAA01A-F176-4C6A-B39D-5B40BB1B148F}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {F1BAA01A-F176-4C6A-B39D-5B40BB1B148F}.Release|Any CPU.Build.0 = Release|Any CPU
- {F1BAA01A-F176-4C6A-B39D-5B40BB1B148F}.Release|iPhone.ActiveCfg = Release|Any CPU
- {F1BAA01A-F176-4C6A-B39D-5B40BB1B148F}.Release|iPhone.Build.0 = Release|Any CPU
- {F1BAA01A-F176-4C6A-B39D-5B40BB1B148F}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {F1BAA01A-F176-4C6A-B39D-5B40BB1B148F}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{3E10A5FA-E8DA-48B1-AD44-6A5B6CB7750F}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
{3E10A5FA-E8DA-48B1-AD44-6A5B6CB7750F}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
{3E10A5FA-E8DA-48B1-AD44-6A5B6CB7750F}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
@@ -519,54 +375,6 @@ Global
{7062AE20-5DCC-4442-9645-8195BDECE63E}.Release|iPhone.Build.0 = Release|Any CPU
{7062AE20-5DCC-4442-9645-8195BDECE63E}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{7062AE20-5DCC-4442-9645-8195BDECE63E}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {D211E587-D8BC-45B9-95A4-F297C8FA5200}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
- {D211E587-D8BC-45B9-95A4-F297C8FA5200}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
- {D211E587-D8BC-45B9-95A4-F297C8FA5200}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
- {D211E587-D8BC-45B9-95A4-F297C8FA5200}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
- {D211E587-D8BC-45B9-95A4-F297C8FA5200}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {D211E587-D8BC-45B9-95A4-F297C8FA5200}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
- {D211E587-D8BC-45B9-95A4-F297C8FA5200}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
- {D211E587-D8BC-45B9-95A4-F297C8FA5200}.AppStore|Any CPU.Build.0 = Release|Any CPU
- {D211E587-D8BC-45B9-95A4-F297C8FA5200}.AppStore|iPhone.ActiveCfg = Release|Any CPU
- {D211E587-D8BC-45B9-95A4-F297C8FA5200}.AppStore|iPhone.Build.0 = Release|Any CPU
- {D211E587-D8BC-45B9-95A4-F297C8FA5200}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {D211E587-D8BC-45B9-95A4-F297C8FA5200}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
- {D211E587-D8BC-45B9-95A4-F297C8FA5200}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {D211E587-D8BC-45B9-95A4-F297C8FA5200}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {D211E587-D8BC-45B9-95A4-F297C8FA5200}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {D211E587-D8BC-45B9-95A4-F297C8FA5200}.Debug|iPhone.Build.0 = Debug|Any CPU
- {D211E587-D8BC-45B9-95A4-F297C8FA5200}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {D211E587-D8BC-45B9-95A4-F297C8FA5200}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {D211E587-D8BC-45B9-95A4-F297C8FA5200}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {D211E587-D8BC-45B9-95A4-F297C8FA5200}.Release|Any CPU.Build.0 = Release|Any CPU
- {D211E587-D8BC-45B9-95A4-F297C8FA5200}.Release|iPhone.ActiveCfg = Release|Any CPU
- {D211E587-D8BC-45B9-95A4-F297C8FA5200}.Release|iPhone.Build.0 = Release|Any CPU
- {D211E587-D8BC-45B9-95A4-F297C8FA5200}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {D211E587-D8BC-45B9-95A4-F297C8FA5200}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {47ECDF59-DEF8-4C53-87B1-2098A3429059}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
- {47ECDF59-DEF8-4C53-87B1-2098A3429059}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
- {47ECDF59-DEF8-4C53-87B1-2098A3429059}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
- {47ECDF59-DEF8-4C53-87B1-2098A3429059}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
- {47ECDF59-DEF8-4C53-87B1-2098A3429059}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {47ECDF59-DEF8-4C53-87B1-2098A3429059}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
- {47ECDF59-DEF8-4C53-87B1-2098A3429059}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
- {47ECDF59-DEF8-4C53-87B1-2098A3429059}.AppStore|Any CPU.Build.0 = Release|Any CPU
- {47ECDF59-DEF8-4C53-87B1-2098A3429059}.AppStore|iPhone.ActiveCfg = Release|Any CPU
- {47ECDF59-DEF8-4C53-87B1-2098A3429059}.AppStore|iPhone.Build.0 = Release|Any CPU
- {47ECDF59-DEF8-4C53-87B1-2098A3429059}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {47ECDF59-DEF8-4C53-87B1-2098A3429059}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
- {47ECDF59-DEF8-4C53-87B1-2098A3429059}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {47ECDF59-DEF8-4C53-87B1-2098A3429059}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {47ECDF59-DEF8-4C53-87B1-2098A3429059}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {47ECDF59-DEF8-4C53-87B1-2098A3429059}.Debug|iPhone.Build.0 = Debug|Any CPU
- {47ECDF59-DEF8-4C53-87B1-2098A3429059}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {47ECDF59-DEF8-4C53-87B1-2098A3429059}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {47ECDF59-DEF8-4C53-87B1-2098A3429059}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {47ECDF59-DEF8-4C53-87B1-2098A3429059}.Release|Any CPU.Build.0 = Release|Any CPU
- {47ECDF59-DEF8-4C53-87B1-2098A3429059}.Release|iPhone.ActiveCfg = Release|Any CPU
- {47ECDF59-DEF8-4C53-87B1-2098A3429059}.Release|iPhone.Build.0 = Release|Any CPU
- {47ECDF59-DEF8-4C53-87B1-2098A3429059}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {47ECDF59-DEF8-4C53-87B1-2098A3429059}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{5CCB5571-7C30-4E7D-967D-0E2158EBD91F}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
{5CCB5571-7C30-4E7D-967D-0E2158EBD91F}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
{5CCB5571-7C30-4E7D-967D-0E2158EBD91F}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
@@ -591,30 +399,6 @@ Global
{5CCB5571-7C30-4E7D-967D-0E2158EBD91F}.Release|iPhone.Build.0 = Release|Any CPU
{5CCB5571-7C30-4E7D-967D-0E2158EBD91F}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{5CCB5571-7C30-4E7D-967D-0E2158EBD91F}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {76716382-3159-460E-BDA6-C5715CF606D7}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
- {76716382-3159-460E-BDA6-C5715CF606D7}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
- {76716382-3159-460E-BDA6-C5715CF606D7}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
- {76716382-3159-460E-BDA6-C5715CF606D7}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
- {76716382-3159-460E-BDA6-C5715CF606D7}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {76716382-3159-460E-BDA6-C5715CF606D7}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
- {76716382-3159-460E-BDA6-C5715CF606D7}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
- {76716382-3159-460E-BDA6-C5715CF606D7}.AppStore|Any CPU.Build.0 = Release|Any CPU
- {76716382-3159-460E-BDA6-C5715CF606D7}.AppStore|iPhone.ActiveCfg = Release|Any CPU
- {76716382-3159-460E-BDA6-C5715CF606D7}.AppStore|iPhone.Build.0 = Release|Any CPU
- {76716382-3159-460E-BDA6-C5715CF606D7}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {76716382-3159-460E-BDA6-C5715CF606D7}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
- {76716382-3159-460E-BDA6-C5715CF606D7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {76716382-3159-460E-BDA6-C5715CF606D7}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {76716382-3159-460E-BDA6-C5715CF606D7}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {76716382-3159-460E-BDA6-C5715CF606D7}.Debug|iPhone.Build.0 = Debug|Any CPU
- {76716382-3159-460E-BDA6-C5715CF606D7}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {76716382-3159-460E-BDA6-C5715CF606D7}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {76716382-3159-460E-BDA6-C5715CF606D7}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {76716382-3159-460E-BDA6-C5715CF606D7}.Release|Any CPU.Build.0 = Release|Any CPU
- {76716382-3159-460E-BDA6-C5715CF606D7}.Release|iPhone.ActiveCfg = Release|Any CPU
- {76716382-3159-460E-BDA6-C5715CF606D7}.Release|iPhone.Build.0 = Release|Any CPU
- {76716382-3159-460E-BDA6-C5715CF606D7}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {76716382-3159-460E-BDA6-C5715CF606D7}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{2905FF23-53FB-45E6-AA49-6AF47A172056}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
{2905FF23-53FB-45E6-AA49-6AF47A172056}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
{2905FF23-53FB-45E6-AA49-6AF47A172056}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
@@ -639,54 +423,6 @@ Global
{2905FF23-53FB-45E6-AA49-6AF47A172056}.Release|iPhone.Build.0 = Release|Any CPU
{2905FF23-53FB-45E6-AA49-6AF47A172056}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{2905FF23-53FB-45E6-AA49-6AF47A172056}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {DB070A10-BF39-4752-8456-86E9D5928478}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
- {DB070A10-BF39-4752-8456-86E9D5928478}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
- {DB070A10-BF39-4752-8456-86E9D5928478}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
- {DB070A10-BF39-4752-8456-86E9D5928478}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
- {DB070A10-BF39-4752-8456-86E9D5928478}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {DB070A10-BF39-4752-8456-86E9D5928478}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
- {DB070A10-BF39-4752-8456-86E9D5928478}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
- {DB070A10-BF39-4752-8456-86E9D5928478}.AppStore|Any CPU.Build.0 = Release|Any CPU
- {DB070A10-BF39-4752-8456-86E9D5928478}.AppStore|iPhone.ActiveCfg = Release|Any CPU
- {DB070A10-BF39-4752-8456-86E9D5928478}.AppStore|iPhone.Build.0 = Release|Any CPU
- {DB070A10-BF39-4752-8456-86E9D5928478}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {DB070A10-BF39-4752-8456-86E9D5928478}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
- {DB070A10-BF39-4752-8456-86E9D5928478}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {DB070A10-BF39-4752-8456-86E9D5928478}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {DB070A10-BF39-4752-8456-86E9D5928478}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {DB070A10-BF39-4752-8456-86E9D5928478}.Debug|iPhone.Build.0 = Debug|Any CPU
- {DB070A10-BF39-4752-8456-86E9D5928478}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {DB070A10-BF39-4752-8456-86E9D5928478}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {DB070A10-BF39-4752-8456-86E9D5928478}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {DB070A10-BF39-4752-8456-86E9D5928478}.Release|Any CPU.Build.0 = Release|Any CPU
- {DB070A10-BF39-4752-8456-86E9D5928478}.Release|iPhone.ActiveCfg = Release|Any CPU
- {DB070A10-BF39-4752-8456-86E9D5928478}.Release|iPhone.Build.0 = Release|Any CPU
- {DB070A10-BF39-4752-8456-86E9D5928478}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {DB070A10-BF39-4752-8456-86E9D5928478}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {08478EF5-44E8-42E9-92D6-15E00EC038D8}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
- {08478EF5-44E8-42E9-92D6-15E00EC038D8}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
- {08478EF5-44E8-42E9-92D6-15E00EC038D8}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
- {08478EF5-44E8-42E9-92D6-15E00EC038D8}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
- {08478EF5-44E8-42E9-92D6-15E00EC038D8}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {08478EF5-44E8-42E9-92D6-15E00EC038D8}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
- {08478EF5-44E8-42E9-92D6-15E00EC038D8}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
- {08478EF5-44E8-42E9-92D6-15E00EC038D8}.AppStore|Any CPU.Build.0 = Release|Any CPU
- {08478EF5-44E8-42E9-92D6-15E00EC038D8}.AppStore|iPhone.ActiveCfg = Release|Any CPU
- {08478EF5-44E8-42E9-92D6-15E00EC038D8}.AppStore|iPhone.Build.0 = Release|Any CPU
- {08478EF5-44E8-42E9-92D6-15E00EC038D8}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {08478EF5-44E8-42E9-92D6-15E00EC038D8}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
- {08478EF5-44E8-42E9-92D6-15E00EC038D8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {08478EF5-44E8-42E9-92D6-15E00EC038D8}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {08478EF5-44E8-42E9-92D6-15E00EC038D8}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {08478EF5-44E8-42E9-92D6-15E00EC038D8}.Debug|iPhone.Build.0 = Debug|Any CPU
- {08478EF5-44E8-42E9-92D6-15E00EC038D8}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {08478EF5-44E8-42E9-92D6-15E00EC038D8}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {08478EF5-44E8-42E9-92D6-15E00EC038D8}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {08478EF5-44E8-42E9-92D6-15E00EC038D8}.Release|Any CPU.Build.0 = Release|Any CPU
- {08478EF5-44E8-42E9-92D6-15E00EC038D8}.Release|iPhone.ActiveCfg = Release|Any CPU
- {08478EF5-44E8-42E9-92D6-15E00EC038D8}.Release|iPhone.Build.0 = Release|Any CPU
- {08478EF5-44E8-42E9-92D6-15E00EC038D8}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {08478EF5-44E8-42E9-92D6-15E00EC038D8}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{DABFD304-D6A4-4752-8123-C2CCF7AC7831}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
{DABFD304-D6A4-4752-8123-C2CCF7AC7831}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
{DABFD304-D6A4-4752-8123-C2CCF7AC7831}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
@@ -711,30 +447,6 @@ Global
{DABFD304-D6A4-4752-8123-C2CCF7AC7831}.Release|iPhone.Build.0 = Release|Any CPU
{DABFD304-D6A4-4752-8123-C2CCF7AC7831}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{DABFD304-D6A4-4752-8123-C2CCF7AC7831}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {AC18926A-E784-40FE-B09D-BB0FE2B599F0}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
- {AC18926A-E784-40FE-B09D-BB0FE2B599F0}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
- {AC18926A-E784-40FE-B09D-BB0FE2B599F0}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
- {AC18926A-E784-40FE-B09D-BB0FE2B599F0}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
- {AC18926A-E784-40FE-B09D-BB0FE2B599F0}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {AC18926A-E784-40FE-B09D-BB0FE2B599F0}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
- {AC18926A-E784-40FE-B09D-BB0FE2B599F0}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
- {AC18926A-E784-40FE-B09D-BB0FE2B599F0}.AppStore|Any CPU.Build.0 = Release|Any CPU
- {AC18926A-E784-40FE-B09D-BB0FE2B599F0}.AppStore|iPhone.ActiveCfg = Release|Any CPU
- {AC18926A-E784-40FE-B09D-BB0FE2B599F0}.AppStore|iPhone.Build.0 = Release|Any CPU
- {AC18926A-E784-40FE-B09D-BB0FE2B599F0}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {AC18926A-E784-40FE-B09D-BB0FE2B599F0}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
- {AC18926A-E784-40FE-B09D-BB0FE2B599F0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {AC18926A-E784-40FE-B09D-BB0FE2B599F0}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {AC18926A-E784-40FE-B09D-BB0FE2B599F0}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {AC18926A-E784-40FE-B09D-BB0FE2B599F0}.Debug|iPhone.Build.0 = Debug|Any CPU
- {AC18926A-E784-40FE-B09D-BB0FE2B599F0}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {AC18926A-E784-40FE-B09D-BB0FE2B599F0}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {AC18926A-E784-40FE-B09D-BB0FE2B599F0}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {AC18926A-E784-40FE-B09D-BB0FE2B599F0}.Release|Any CPU.Build.0 = Release|Any CPU
- {AC18926A-E784-40FE-B09D-BB0FE2B599F0}.Release|iPhone.ActiveCfg = Release|Any CPU
- {AC18926A-E784-40FE-B09D-BB0FE2B599F0}.Release|iPhone.Build.0 = Release|Any CPU
- {AC18926A-E784-40FE-B09D-BB0FE2B599F0}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {AC18926A-E784-40FE-B09D-BB0FE2B599F0}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{EFB11458-9CDF-41C0-BE4F-44AF45A4CAB8}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
{EFB11458-9CDF-41C0-BE4F-44AF45A4CAB8}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
{EFB11458-9CDF-41C0-BE4F-44AF45A4CAB8}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
@@ -1641,30 +1353,6 @@ Global
{3F00BC43-5095-477F-93D8-E65B08179A00}.Release|iPhone.Build.0 = Release|Any CPU
{3F00BC43-5095-477F-93D8-E65B08179A00}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
{3F00BC43-5095-477F-93D8-E65B08179A00}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {AF227847-E65C-4BE9-BCE9-B551357788E0}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU
- {AF227847-E65C-4BE9-BCE9-B551357788E0}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU
- {AF227847-E65C-4BE9-BCE9-B551357788E0}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU
- {AF227847-E65C-4BE9-BCE9-B551357788E0}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU
- {AF227847-E65C-4BE9-BCE9-B551357788E0}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {AF227847-E65C-4BE9-BCE9-B551357788E0}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU
- {AF227847-E65C-4BE9-BCE9-B551357788E0}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU
- {AF227847-E65C-4BE9-BCE9-B551357788E0}.AppStore|Any CPU.Build.0 = Debug|Any CPU
- {AF227847-E65C-4BE9-BCE9-B551357788E0}.AppStore|iPhone.ActiveCfg = Debug|Any CPU
- {AF227847-E65C-4BE9-BCE9-B551357788E0}.AppStore|iPhone.Build.0 = Debug|Any CPU
- {AF227847-E65C-4BE9-BCE9-B551357788E0}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {AF227847-E65C-4BE9-BCE9-B551357788E0}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU
- {AF227847-E65C-4BE9-BCE9-B551357788E0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {AF227847-E65C-4BE9-BCE9-B551357788E0}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {AF227847-E65C-4BE9-BCE9-B551357788E0}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {AF227847-E65C-4BE9-BCE9-B551357788E0}.Debug|iPhone.Build.0 = Debug|Any CPU
- {AF227847-E65C-4BE9-BCE9-B551357788E0}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {AF227847-E65C-4BE9-BCE9-B551357788E0}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {AF227847-E65C-4BE9-BCE9-B551357788E0}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {AF227847-E65C-4BE9-BCE9-B551357788E0}.Release|Any CPU.Build.0 = Release|Any CPU
- {AF227847-E65C-4BE9-BCE9-B551357788E0}.Release|iPhone.ActiveCfg = Release|Any CPU
- {AF227847-E65C-4BE9-BCE9-B551357788E0}.Release|iPhone.Build.0 = Release|Any CPU
- {AF227847-E65C-4BE9-BCE9-B551357788E0}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {AF227847-E65C-4BE9-BCE9-B551357788E0}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
{41B02319-965D-4945-8005-C1A3D1224165}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU
{41B02319-965D-4945-8005-C1A3D1224165}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU
{41B02319-965D-4945-8005-C1A3D1224165}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU
@@ -2272,14 +1960,9 @@ Global
GlobalSection(NestedProjects) = preSolution
{811A76CF-1CF6-440F-963B-BBE31BD72A82} = {B39A8919-9F95-48FE-AD7B-76E08B509888}
{3E908F67-5543-4879-A1DC-08EACE79B3CD} = {B39A8919-9F95-48FE-AD7B-76E08B509888}
- {47ECDF59-DEF8-4C53-87B1-2098A3429059} = {C5A00AC3-B34C-4564-9BDD-2DA473EF4D8B}
{5CCB5571-7C30-4E7D-967D-0E2158EBD91F} = {C5A00AC3-B34C-4564-9BDD-2DA473EF4D8B}
- {76716382-3159-460E-BDA6-C5715CF606D7} = {C5A00AC3-B34C-4564-9BDD-2DA473EF4D8B}
{2905FF23-53FB-45E6-AA49-6AF47A172056} = {C5A00AC3-B34C-4564-9BDD-2DA473EF4D8B}
- {DB070A10-BF39-4752-8456-86E9D5928478} = {C5A00AC3-B34C-4564-9BDD-2DA473EF4D8B}
- {08478EF5-44E8-42E9-92D6-15E00EC038D8} = {C5A00AC3-B34C-4564-9BDD-2DA473EF4D8B}
{DABFD304-D6A4-4752-8123-C2CCF7AC7831} = {C5A00AC3-B34C-4564-9BDD-2DA473EF4D8B}
- {AC18926A-E784-40FE-B09D-BB0FE2B599F0} = {C5A00AC3-B34C-4564-9BDD-2DA473EF4D8B}
{EFB11458-9CDF-41C0-BE4F-44AF45A4CAB8} = {C5A00AC3-B34C-4564-9BDD-2DA473EF4D8B}
{99135EAB-653D-47E4-A378-C96E1278CA44} = {C5A00AC3-B34C-4564-9BDD-2DA473EF4D8B}
{3E53A01A-B331-47F3-B828-4A5717E77A24} = {8B6A8209-894F-4BA1-B880-965FD453982C}
@@ -2313,7 +1996,6 @@ Global
{E1240B49-7B4B-4371-A00E-068778C5CF0B} = {C5A00AC3-B34C-4564-9BDD-2DA473EF4D8B}
{D49233F8-F29C-47DD-9975-C4C9E4502720} = {E870DCD7-F46A-498D-83FC-D0FD13E0A11C}
{3C471044-3640-45E3-B1B2-16D2FF8399EE} = {E870DCD7-F46A-498D-83FC-D0FD13E0A11C}
- {AF227847-E65C-4BE9-BCE9-B551357788E0} = {C5A00AC3-B34C-4564-9BDD-2DA473EF4D8B}
{41B02319-965D-4945-8005-C1A3D1224165} = {86C53C40-57AA-45B8-AD42-FAE0EFDF0F2B}
{D775DECB-4E00-4ED5-A75A-5FCE58ADFF0B} = {9B9E3891-2366-4253-A952-D08BCEB71098}
{AF915D5C-AB00-4EA0-B5E6-001F4AE84E68} = {C5A00AC3-B34C-4564-9BDD-2DA473EF4D8B}
diff --git a/Directory.Build.props b/Directory.Build.props
index 835decc672..97781b7517 100644
--- a/Directory.Build.props
+++ b/Directory.Build.props
@@ -5,5 +5,6 @@
false
false
+ False
diff --git a/NuGet.Config b/NuGet.Config
index 7a1f28bea7..7d2bd8abd2 100644
--- a/NuGet.Config
+++ b/NuGet.Config
@@ -5,5 +5,6 @@
+
diff --git a/azure-pipelines.yml b/azure-pipelines.yml
index 79456b117b..edf3c3d819 100644
--- a/azure-pipelines.yml
+++ b/azure-pipelines.yml
@@ -31,14 +31,14 @@ jobs:
vmImage: 'ubuntu-20.04'
steps:
- task: UseDotNet@2
- displayName: 'Use .NET Core SDK 3.1.414'
+ displayName: 'Use .NET Core SDK 3.1.418'
inputs:
- version: 3.1.414
+ version: 3.1.418
- task: UseDotNet@2
- displayName: 'Use .NET Core SDK 6.0.100'
+ displayName: 'Use .NET Core SDK 6.0.202'
inputs:
- version: 6.0.200
+ version: 6.0.202
- task: CmdLine@2
displayName: 'Run Build'
@@ -62,14 +62,14 @@ jobs:
vmImage: 'macOS-10.15'
steps:
- task: UseDotNet@2
- displayName: 'Use .NET Core SDK 3.1.414'
+ displayName: 'Use .NET Core SDK 3.1.418'
inputs:
- version: 3.1.414
+ version: 3.1.418
- task: UseDotNet@2
- displayName: 'Use .NET Core SDK 6.0.100'
+ displayName: 'Use .NET Core SDK 6.0.202'
inputs:
- version: 6.0.200
+ version: 6.0.202
- task: CmdLine@2
displayName: 'Install Mono 5.18'
@@ -134,20 +134,20 @@ jobs:
SolutionDir: '$(Build.SourcesDirectory)'
steps:
- task: UseDotNet@2
- displayName: 'Use .NET Core SDK 3.1.414'
+ displayName: 'Use .NET Core SDK 3.1.418'
inputs:
- version: 3.1.414
+ version: 3.1.418
- task: UseDotNet@2
- displayName: 'Use .NET Core SDK 6.0.100'
+ displayName: 'Use .NET Core SDK 6.0.202'
inputs:
- version: 6.0.200
+ version: 6.0.202
- task: CmdLine@2
displayName: 'Install Workloads'
inputs:
script: |
- dotnet workload install --no-cache --disable-parallel android ios --skip-manifest-update --source "https://api.nuget.org/v3/index.json"
+ dotnet workload install android ios
- task: CmdLine@2
displayName: 'Install Nuke'
diff --git a/build/CoreLibraries.props b/build/CoreLibraries.props
index 6bf69603c0..314d38190a 100644
--- a/build/CoreLibraries.props
+++ b/build/CoreLibraries.props
@@ -1,14 +1,8 @@
-
-
-
-
-
-
diff --git a/build/HarfBuzzSharp.props b/build/HarfBuzzSharp.props
index 6dd6cccb53..e10de93530 100644
--- a/build/HarfBuzzSharp.props
+++ b/build/HarfBuzzSharp.props
@@ -1,7 +1,7 @@
-
-
-
+
+
+
diff --git a/build/SkiaSharp.props b/build/SkiaSharp.props
index 60bebaad40..a217a8272d 100644
--- a/build/SkiaSharp.props
+++ b/build/SkiaSharp.props
@@ -1,7 +1,7 @@
-
-
-
+
+
+
diff --git a/global.json b/global.json
index 30265268dc..a6792b05c7 100644
--- a/global.json
+++ b/global.json
@@ -1,11 +1,10 @@
{
"sdk": {
- "version": "6.0.200",
+ "version": "6.0.202",
"rollForward": "latestFeature"
},
"msbuild-sdks": {
"Microsoft.Build.Traversal": "1.0.43",
- "Xamarin.Legacy.Sdk": "0.1.2-alpha6",
"MSBuild.Sdk.Extras": "3.0.22",
"AggregatePackage.NuGet.Sdk" : "0.1.12"
}
diff --git a/nukebuild/Build.cs b/nukebuild/Build.cs
index 72d90abbf3..9fcb9d6b7f 100644
--- a/nukebuild/Build.cs
+++ b/nukebuild/Build.cs
@@ -214,17 +214,11 @@ partial class Build : NukeBuild
.DependsOn(Compile)
.Executes(() =>
{
- RunCoreTest("Avalonia.Animation.UnitTests");
RunCoreTest("Avalonia.Base.UnitTests");
RunCoreTest("Avalonia.Controls.UnitTests");
RunCoreTest("Avalonia.Controls.DataGrid.UnitTests");
- RunCoreTest("Avalonia.Input.UnitTests");
- RunCoreTest("Avalonia.Interactivity.UnitTests");
- RunCoreTest("Avalonia.Layout.UnitTests");
RunCoreTest("Avalonia.Markup.UnitTests");
RunCoreTest("Avalonia.Markup.Xaml.UnitTests");
- RunCoreTest("Avalonia.Styling.UnitTests");
- RunCoreTest("Avalonia.Visuals.UnitTests");
RunCoreTest("Avalonia.Skia.UnitTests");
RunCoreTest("Avalonia.ReactiveUI.UnitTests");
});
diff --git a/samples/ControlCatalog.Android/ControlCatalog.Android.csproj b/samples/ControlCatalog.Android/ControlCatalog.Android.csproj
index 9777bb46c3..8d2ead054c 100644
--- a/samples/ControlCatalog.Android/ControlCatalog.Android.csproj
+++ b/samples/ControlCatalog.Android/ControlCatalog.Android.csproj
@@ -41,7 +41,47 @@
+
+ {7b92af71-6287-4693-9dcb-bd5b6e927e23}
+ Avalonia.Android
+
+
+ {b09b78d8-9b26-48b0-9149-d64a2f120f3f}
+ Avalonia.Base
+
+
+ {d2221c82-4a25-4583-9b43-d791e3f6820c}
+ Avalonia.Controls
+
+
+ {7062ae20-5dcc-4442-9645-8195bdece63e}
+ Avalonia.Diagnostics
+
+
+ {3e10a5fa-e8da-48b1-ad44-6a5b6cb7750f}
+ Avalonia.Themes.Default
+
+
+ {3e53a01a-b331-47f3-b828-4a5717e77a24}
+ Avalonia.Markup.Xaml
+
+
+ {6417e941-21bc-467b-a771-0de389353ce6}
+ Avalonia.Markup
+
+
+ {7d2d3083-71dd-4cc9-8907-39a0d86fb322}
+ Avalonia.Skia
+
+
+ {d0a739b9-3c68-4ba6-a328-41606954b6bd}
+ ControlCatalog
+
+
+
+
+
diff --git a/samples/ControlCatalog.iOS/ControlCatalog.iOS.csproj b/samples/ControlCatalog.iOS/ControlCatalog.iOS.csproj
index 12d1d5645e..d4f10b3580 100644
--- a/samples/ControlCatalog.iOS/ControlCatalog.iOS.csproj
+++ b/samples/ControlCatalog.iOS/ControlCatalog.iOS.csproj
@@ -13,4 +13,53 @@
+
+
+
+
+
+
+
+
+ {4488ad85-1495-4809-9aa4-ddfe0a48527e}
+ Avalonia.iOS
+
+
+ {3E53A01A-B331-47F3-B828-4A5717E77A24}
+ Avalonia.Markup.Xaml
+
+
+ {6417E941-21BC-467B-A771-0DE389353CE6}
+ Avalonia.Markup
+
+
+ {B09B78D8-9B26-48B0-9149-D64A2F120F3F}
+ Avalonia.Base
+
+
+ {D2221C82-4A25-4583-9B43-D791E3F6820C}
+ Avalonia.Controls
+
+
+ {7062AE20-5DCC-4442-9645-8195BDECE63E}
+ Avalonia.Diagnostics
+
+
+ {3E10A5FA-E8DA-48B1-AD44-6A5B6CB7750F}
+ Avalonia.Themes.Default
+
+
+ {7d2d3083-71dd-4cc9-8907-39a0d86fb322}
+ Avalonia.Skia
+
+
+ {d0a739b9-3c68-4ba6-a328-41606954b6bd}
+ ControlCatalog
+
+
+
+
+
+
+
diff --git a/samples/IntegrationTestApp/MainWindow.axaml b/samples/IntegrationTestApp/MainWindow.axaml
index fe1487a7f2..19ac68b15b 100644
--- a/samples/IntegrationTestApp/MainWindow.axaml
+++ b/samples/IntegrationTestApp/MainWindow.axaml
@@ -82,12 +82,16 @@
-
+
- None
+
+ None
+ Reset
+
+
diff --git a/samples/IntegrationTestApp/MainWindow.axaml.cs b/samples/IntegrationTestApp/MainWindow.axaml.cs
index b9e631a312..9a612aa94d 100644
--- a/samples/IntegrationTestApp/MainWindow.axaml.cs
+++ b/samples/IntegrationTestApp/MainWindow.axaml.cs
@@ -62,6 +62,8 @@ namespace IntegrationTestApp
this.FindControl("BasicComboBox").SelectedIndex = 0;
if (source?.Name == "ListBoxSelectionClear")
this.FindControl("BasicListBox").SelectedIndex = -1;
+ if (source?.Name == "MenuClickedMenuItemReset")
+ this.FindControl("ClickedMenuItem").Text = "None";
}
}
}
diff --git a/samples/RenderDemo/Pages/PathMeasurementPage.cs b/samples/RenderDemo/Pages/PathMeasurementPage.cs
index 212377deae..cc5125609c 100644
--- a/samples/RenderDemo/Pages/PathMeasurementPage.cs
+++ b/samples/RenderDemo/Pages/PathMeasurementPage.cs
@@ -1,15 +1,9 @@
-using System;
-using System.Diagnostics;
-using System.Drawing.Drawing2D;
-using System.Security.Cryptography;
using Avalonia;
using Avalonia.Controls;
using Avalonia.LogicalTree;
using Avalonia.Media;
using Avalonia.Media.Imaging;
using Avalonia.Media.Immutable;
-using Avalonia.Threading;
-using Avalonia.Visuals.Media.Imaging;
namespace RenderDemo.Pages
{
diff --git a/samples/RenderDemo/Pages/RenderTargetBitmapPage.cs b/samples/RenderDemo/Pages/RenderTargetBitmapPage.cs
index f263786ab7..f365b59c20 100644
--- a/samples/RenderDemo/Pages/RenderTargetBitmapPage.cs
+++ b/samples/RenderDemo/Pages/RenderTargetBitmapPage.cs
@@ -5,7 +5,6 @@ using Avalonia.LogicalTree;
using Avalonia.Media;
using Avalonia.Media.Imaging;
using Avalonia.Threading;
-using Avalonia.Visuals.Media.Imaging;
namespace RenderDemo.Pages
{
diff --git a/samples/RenderDemo/RenderDemo.csproj b/samples/RenderDemo/RenderDemo.csproj
index 3d5aee49e9..18a4ee5662 100644
--- a/samples/RenderDemo/RenderDemo.csproj
+++ b/samples/RenderDemo/RenderDemo.csproj
@@ -4,7 +4,7 @@
net6.0
-
+
TextFormatterPage.axaml
Code
diff --git a/src/Android/Avalonia.Android/Avalonia.Android.csproj b/src/Android/Avalonia.Android/Avalonia.Android.csproj
index ad27888f26..6688dde8f5 100644
--- a/src/Android/Avalonia.Android/Avalonia.Android.csproj
+++ b/src/Android/Avalonia.Android/Avalonia.Android.csproj
@@ -1,7 +1,6 @@
-
+
- net6.0-android
- $(TargetFrameworks);monoandroid11.0
+ net6.0-android
21
true
true
diff --git a/src/Android/Avalonia.AndroidTestApplication/Avalonia.AndroidTestApplication.csproj b/src/Android/Avalonia.AndroidTestApplication/Avalonia.AndroidTestApplication.csproj
index db0bb01410..ee41b9f354 100644
--- a/src/Android/Avalonia.AndroidTestApplication/Avalonia.AndroidTestApplication.csproj
+++ b/src/Android/Avalonia.AndroidTestApplication/Avalonia.AndroidTestApplication.csproj
@@ -40,4 +40,40 @@
+
+
+ {7b92af71-6287-4693-9dcb-bd5b6e927e23}
+ Avalonia.Android
+
+
+ {3e53a01a-b331-47f3-b828-4a5717e77a24}
+ Avalonia.Markup.Xaml
+
+
+ {b09b78d8-9b26-48b0-9149-d64a2f120f3f}
+ Avalonia.Base
+
+
+ {d2221c82-4a25-4583-9b43-d791e3f6820c}
+ Avalonia.Controls
+
+
+ {7062ae20-5dcc-4442-9645-8195bdece63e}
+ Avalonia.Diagnostics
+
+
+ {3e10a5fa-e8da-48b1-ad44-6a5b6cb7750f}
+ Avalonia.Themes.Default
+
+
+ {7d2d3083-71dd-4cc9-8907-39a0d86fb322}
+ Avalonia.Skia
+
+
+
+
+
+
+
+
diff --git a/src/Avalonia.Animation/ApiCompatBaseline.txt b/src/Avalonia.Animation/ApiCompatBaseline.txt
deleted file mode 100644
index dbbf3a54ef..0000000000
--- a/src/Avalonia.Animation/ApiCompatBaseline.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-Compat issues with assembly Avalonia.Animation:
-MembersMustExist : Member 'protected void Avalonia.Animation.Animatable.OnPropertyChangedCore(Avalonia.AvaloniaPropertyChangedEventArgs)' does not exist in the implementation but it does exist in the contract.
-InterfacesShouldHaveSameMembers : Interface member 'public System.Threading.Tasks.Task Avalonia.Animation.IAnimation.RunAsync(Avalonia.Animation.Animatable, Avalonia.Animation.IClock)' is present in the contract but not in the implementation.
-MembersMustExist : Member 'public System.Threading.Tasks.Task Avalonia.Animation.IAnimation.RunAsync(Avalonia.Animation.Animatable, Avalonia.Animation.IClock)' does not exist in the implementation but it does exist in the contract.
-InterfacesShouldHaveSameMembers : Interface member 'public System.Threading.Tasks.Task Avalonia.Animation.IAnimation.RunAsync(Avalonia.Animation.Animatable, Avalonia.Animation.IClock, System.Threading.CancellationToken)' is present in the implementation but not in the contract.
-Total Issues: 4
diff --git a/src/Avalonia.Animation/Avalonia.Animation.csproj b/src/Avalonia.Animation/Avalonia.Animation.csproj
deleted file mode 100644
index 80726f2884..0000000000
--- a/src/Avalonia.Animation/Avalonia.Animation.csproj
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
- net6.0;netstandard2.0
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/Avalonia.Animation/Properties/AssemblyInfo.cs b/src/Avalonia.Animation/Properties/AssemblyInfo.cs
deleted file mode 100644
index 6b539b075b..0000000000
--- a/src/Avalonia.Animation/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,9 +0,0 @@
-using Avalonia.Metadata;
-using System.Runtime.CompilerServices;
-
-[assembly: XmlnsDefinition("https://github.com/avaloniaui", "Avalonia.Animation")]
-[assembly: XmlnsDefinition("https://github.com/avaloniaui", "Avalonia.Animation.Easings")]
-[assembly: XmlnsDefinition("https://github.com/avaloniaui", "Avalonia.Animation.Animators")]
-
-[assembly: InternalsVisibleTo("Avalonia.LeakTests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100c1bba1142285fe0419326fb25866ba62c47e6c2b5c1ab0c95b46413fad375471232cb81706932e1cef38781b9ebd39d5100401bacb651c6c5bbf59e571e81b3bc08d2a622004e08b1a6ece82a7e0b9857525c86d2b95fab4bc3dce148558d7f3ae61aa3a234086902aeface87d9dfdd32b9d2fe3c6dd4055b5ab4b104998bd87")]
-[assembly: InternalsVisibleTo("Avalonia.Animation.UnitTests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100c1bba1142285fe0419326fb25866ba62c47e6c2b5c1ab0c95b46413fad375471232cb81706932e1cef38781b9ebd39d5100401bacb651c6c5bbf59e571e81b3bc08d2a622004e08b1a6ece82a7e0b9857525c86d2b95fab4bc3dce148558d7f3ae61aa3a234086902aeface87d9dfdd32b9d2fe3c6dd4055b5ab4b104998bd87")]
diff --git a/src/Avalonia.Animation/Animatable.cs b/src/Avalonia.Base/Animation/Animatable.cs
similarity index 100%
rename from src/Avalonia.Animation/Animatable.cs
rename to src/Avalonia.Base/Animation/Animatable.cs
diff --git a/src/Avalonia.Animation/Animation.cs b/src/Avalonia.Base/Animation/Animation.cs
similarity index 100%
rename from src/Avalonia.Animation/Animation.cs
rename to src/Avalonia.Base/Animation/Animation.cs
diff --git a/src/Avalonia.Animation/AnimationInstance`1.cs b/src/Avalonia.Base/Animation/AnimationInstance`1.cs
similarity index 100%
rename from src/Avalonia.Animation/AnimationInstance`1.cs
rename to src/Avalonia.Base/Animation/AnimationInstance`1.cs
diff --git a/src/Avalonia.Animation/AnimatorDrivenTransition.cs b/src/Avalonia.Base/Animation/AnimatorDrivenTransition.cs
similarity index 100%
rename from src/Avalonia.Animation/AnimatorDrivenTransition.cs
rename to src/Avalonia.Base/Animation/AnimatorDrivenTransition.cs
diff --git a/src/Avalonia.Animation/AnimatorKeyFrame.cs b/src/Avalonia.Base/Animation/AnimatorKeyFrame.cs
similarity index 100%
rename from src/Avalonia.Animation/AnimatorKeyFrame.cs
rename to src/Avalonia.Base/Animation/AnimatorKeyFrame.cs
diff --git a/src/Avalonia.Animation/AnimatorTransitionObservable.cs b/src/Avalonia.Base/Animation/AnimatorTransitionObservable.cs
similarity index 100%
rename from src/Avalonia.Animation/AnimatorTransitionObservable.cs
rename to src/Avalonia.Base/Animation/AnimatorTransitionObservable.cs
diff --git a/src/Avalonia.Animation/Animators/Animator`1.cs b/src/Avalonia.Base/Animation/Animators/Animator`1.cs
similarity index 100%
rename from src/Avalonia.Animation/Animators/Animator`1.cs
rename to src/Avalonia.Base/Animation/Animators/Animator`1.cs
diff --git a/src/Avalonia.Visuals/Animation/Animators/BaseBrushAnimator.cs b/src/Avalonia.Base/Animation/Animators/BaseBrushAnimator.cs
similarity index 100%
rename from src/Avalonia.Visuals/Animation/Animators/BaseBrushAnimator.cs
rename to src/Avalonia.Base/Animation/Animators/BaseBrushAnimator.cs
diff --git a/src/Avalonia.Animation/Animators/BoolAnimator.cs b/src/Avalonia.Base/Animation/Animators/BoolAnimator.cs
similarity index 100%
rename from src/Avalonia.Animation/Animators/BoolAnimator.cs
rename to src/Avalonia.Base/Animation/Animators/BoolAnimator.cs
diff --git a/src/Avalonia.Visuals/Animation/Animators/BoxShadowAnimator.cs b/src/Avalonia.Base/Animation/Animators/BoxShadowAnimator.cs
similarity index 100%
rename from src/Avalonia.Visuals/Animation/Animators/BoxShadowAnimator.cs
rename to src/Avalonia.Base/Animation/Animators/BoxShadowAnimator.cs
diff --git a/src/Avalonia.Visuals/Animation/Animators/BoxShadowsAnimator.cs b/src/Avalonia.Base/Animation/Animators/BoxShadowsAnimator.cs
similarity index 100%
rename from src/Avalonia.Visuals/Animation/Animators/BoxShadowsAnimator.cs
rename to src/Avalonia.Base/Animation/Animators/BoxShadowsAnimator.cs
diff --git a/src/Avalonia.Animation/Animators/ByteAnimator.cs b/src/Avalonia.Base/Animation/Animators/ByteAnimator.cs
similarity index 100%
rename from src/Avalonia.Animation/Animators/ByteAnimator.cs
rename to src/Avalonia.Base/Animation/Animators/ByteAnimator.cs
diff --git a/src/Avalonia.Visuals/Animation/Animators/ColorAnimator.cs b/src/Avalonia.Base/Animation/Animators/ColorAnimator.cs
similarity index 100%
rename from src/Avalonia.Visuals/Animation/Animators/ColorAnimator.cs
rename to src/Avalonia.Base/Animation/Animators/ColorAnimator.cs
diff --git a/src/Avalonia.Visuals/Animation/Animators/CornerRadiusAnimator.cs b/src/Avalonia.Base/Animation/Animators/CornerRadiusAnimator.cs
similarity index 100%
rename from src/Avalonia.Visuals/Animation/Animators/CornerRadiusAnimator.cs
rename to src/Avalonia.Base/Animation/Animators/CornerRadiusAnimator.cs
diff --git a/src/Avalonia.Animation/Animators/DecimalAnimator.cs b/src/Avalonia.Base/Animation/Animators/DecimalAnimator.cs
similarity index 100%
rename from src/Avalonia.Animation/Animators/DecimalAnimator.cs
rename to src/Avalonia.Base/Animation/Animators/DecimalAnimator.cs
diff --git a/src/Avalonia.Animation/Animators/DoubleAnimator.cs b/src/Avalonia.Base/Animation/Animators/DoubleAnimator.cs
similarity index 100%
rename from src/Avalonia.Animation/Animators/DoubleAnimator.cs
rename to src/Avalonia.Base/Animation/Animators/DoubleAnimator.cs
diff --git a/src/Avalonia.Animation/Animators/FloatAnimator.cs b/src/Avalonia.Base/Animation/Animators/FloatAnimator.cs
similarity index 100%
rename from src/Avalonia.Animation/Animators/FloatAnimator.cs
rename to src/Avalonia.Base/Animation/Animators/FloatAnimator.cs
diff --git a/src/Avalonia.Visuals/Animation/Animators/GradientBrushAnimator.cs b/src/Avalonia.Base/Animation/Animators/GradientBrushAnimator.cs
similarity index 100%
rename from src/Avalonia.Visuals/Animation/Animators/GradientBrushAnimator.cs
rename to src/Avalonia.Base/Animation/Animators/GradientBrushAnimator.cs
diff --git a/src/Avalonia.Animation/Animators/Int16Animator.cs b/src/Avalonia.Base/Animation/Animators/Int16Animator.cs
similarity index 100%
rename from src/Avalonia.Animation/Animators/Int16Animator.cs
rename to src/Avalonia.Base/Animation/Animators/Int16Animator.cs
diff --git a/src/Avalonia.Animation/Animators/Int32Animator.cs b/src/Avalonia.Base/Animation/Animators/Int32Animator.cs
similarity index 100%
rename from src/Avalonia.Animation/Animators/Int32Animator.cs
rename to src/Avalonia.Base/Animation/Animators/Int32Animator.cs
diff --git a/src/Avalonia.Animation/Animators/Int64Animator.cs b/src/Avalonia.Base/Animation/Animators/Int64Animator.cs
similarity index 100%
rename from src/Avalonia.Animation/Animators/Int64Animator.cs
rename to src/Avalonia.Base/Animation/Animators/Int64Animator.cs
diff --git a/src/Avalonia.Visuals/Animation/Animators/PointAnimator.cs b/src/Avalonia.Base/Animation/Animators/PointAnimator.cs
similarity index 100%
rename from src/Avalonia.Visuals/Animation/Animators/PointAnimator.cs
rename to src/Avalonia.Base/Animation/Animators/PointAnimator.cs
diff --git a/src/Avalonia.Visuals/Animation/Animators/RectAnimator.cs b/src/Avalonia.Base/Animation/Animators/RectAnimator.cs
similarity index 100%
rename from src/Avalonia.Visuals/Animation/Animators/RectAnimator.cs
rename to src/Avalonia.Base/Animation/Animators/RectAnimator.cs
diff --git a/src/Avalonia.Visuals/Animation/Animators/RelativePointAnimator.cs b/src/Avalonia.Base/Animation/Animators/RelativePointAnimator.cs
similarity index 100%
rename from src/Avalonia.Visuals/Animation/Animators/RelativePointAnimator.cs
rename to src/Avalonia.Base/Animation/Animators/RelativePointAnimator.cs
diff --git a/src/Avalonia.Visuals/Animation/Animators/SizeAnimator.cs b/src/Avalonia.Base/Animation/Animators/SizeAnimator.cs
similarity index 100%
rename from src/Avalonia.Visuals/Animation/Animators/SizeAnimator.cs
rename to src/Avalonia.Base/Animation/Animators/SizeAnimator.cs
diff --git a/src/Avalonia.Visuals/Animation/Animators/SolidColorBrushAnimator.cs b/src/Avalonia.Base/Animation/Animators/SolidColorBrushAnimator.cs
similarity index 100%
rename from src/Avalonia.Visuals/Animation/Animators/SolidColorBrushAnimator.cs
rename to src/Avalonia.Base/Animation/Animators/SolidColorBrushAnimator.cs
diff --git a/src/Avalonia.Visuals/Animation/Animators/ThicknessAnimator.cs b/src/Avalonia.Base/Animation/Animators/ThicknessAnimator.cs
similarity index 100%
rename from src/Avalonia.Visuals/Animation/Animators/ThicknessAnimator.cs
rename to src/Avalonia.Base/Animation/Animators/ThicknessAnimator.cs
diff --git a/src/Avalonia.Visuals/Animation/Animators/TransformAnimator.cs b/src/Avalonia.Base/Animation/Animators/TransformAnimator.cs
similarity index 100%
rename from src/Avalonia.Visuals/Animation/Animators/TransformAnimator.cs
rename to src/Avalonia.Base/Animation/Animators/TransformAnimator.cs
diff --git a/src/Avalonia.Visuals/Animation/Animators/TransformOperationsAnimator.cs b/src/Avalonia.Base/Animation/Animators/TransformOperationsAnimator.cs
similarity index 100%
rename from src/Avalonia.Visuals/Animation/Animators/TransformOperationsAnimator.cs
rename to src/Avalonia.Base/Animation/Animators/TransformOperationsAnimator.cs
diff --git a/src/Avalonia.Animation/Animators/UInt16Animator.cs b/src/Avalonia.Base/Animation/Animators/UInt16Animator.cs
similarity index 100%
rename from src/Avalonia.Animation/Animators/UInt16Animator.cs
rename to src/Avalonia.Base/Animation/Animators/UInt16Animator.cs
diff --git a/src/Avalonia.Animation/Animators/UInt32Animator.cs b/src/Avalonia.Base/Animation/Animators/UInt32Animator.cs
similarity index 100%
rename from src/Avalonia.Animation/Animators/UInt32Animator.cs
rename to src/Avalonia.Base/Animation/Animators/UInt32Animator.cs
diff --git a/src/Avalonia.Animation/Animators/UInt64Animator.cs b/src/Avalonia.Base/Animation/Animators/UInt64Animator.cs
similarity index 100%
rename from src/Avalonia.Animation/Animators/UInt64Animator.cs
rename to src/Avalonia.Base/Animation/Animators/UInt64Animator.cs
diff --git a/src/Avalonia.Visuals/Animation/Animators/VectorAnimator.cs b/src/Avalonia.Base/Animation/Animators/VectorAnimator.cs
similarity index 100%
rename from src/Avalonia.Visuals/Animation/Animators/VectorAnimator.cs
rename to src/Avalonia.Base/Animation/Animators/VectorAnimator.cs
diff --git a/src/Avalonia.Animation/Clock.cs b/src/Avalonia.Base/Animation/Clock.cs
similarity index 100%
rename from src/Avalonia.Animation/Clock.cs
rename to src/Avalonia.Base/Animation/Clock.cs
diff --git a/src/Avalonia.Animation/ClockBase.cs b/src/Avalonia.Base/Animation/ClockBase.cs
similarity index 100%
rename from src/Avalonia.Animation/ClockBase.cs
rename to src/Avalonia.Base/Animation/ClockBase.cs
diff --git a/src/Avalonia.Visuals/Animation/CompositePageTransition.cs b/src/Avalonia.Base/Animation/CompositePageTransition.cs
similarity index 100%
rename from src/Avalonia.Visuals/Animation/CompositePageTransition.cs
rename to src/Avalonia.Base/Animation/CompositePageTransition.cs
diff --git a/src/Avalonia.Visuals/Animation/CrossFade.cs b/src/Avalonia.Base/Animation/CrossFade.cs
similarity index 100%
rename from src/Avalonia.Visuals/Animation/CrossFade.cs
rename to src/Avalonia.Base/Animation/CrossFade.cs
diff --git a/src/Avalonia.Animation/Cue.cs b/src/Avalonia.Base/Animation/Cue.cs
similarity index 100%
rename from src/Avalonia.Animation/Cue.cs
rename to src/Avalonia.Base/Animation/Cue.cs
diff --git a/src/Avalonia.Animation/DisposeAnimationInstanceSubject.cs b/src/Avalonia.Base/Animation/DisposeAnimationInstanceSubject.cs
similarity index 100%
rename from src/Avalonia.Animation/DisposeAnimationInstanceSubject.cs
rename to src/Avalonia.Base/Animation/DisposeAnimationInstanceSubject.cs
diff --git a/src/Avalonia.Animation/Easing/BackEaseIn.cs b/src/Avalonia.Base/Animation/Easings/BackEaseIn.cs
similarity index 100%
rename from src/Avalonia.Animation/Easing/BackEaseIn.cs
rename to src/Avalonia.Base/Animation/Easings/BackEaseIn.cs
diff --git a/src/Avalonia.Animation/Easing/BackEaseInOut.cs b/src/Avalonia.Base/Animation/Easings/BackEaseInOut.cs
similarity index 100%
rename from src/Avalonia.Animation/Easing/BackEaseInOut.cs
rename to src/Avalonia.Base/Animation/Easings/BackEaseInOut.cs
diff --git a/src/Avalonia.Animation/Easing/BackEaseOut.cs b/src/Avalonia.Base/Animation/Easings/BackEaseOut.cs
similarity index 100%
rename from src/Avalonia.Animation/Easing/BackEaseOut.cs
rename to src/Avalonia.Base/Animation/Easings/BackEaseOut.cs
diff --git a/src/Avalonia.Animation/Easing/BounceEaseIn.cs b/src/Avalonia.Base/Animation/Easings/BounceEaseIn.cs
similarity index 100%
rename from src/Avalonia.Animation/Easing/BounceEaseIn.cs
rename to src/Avalonia.Base/Animation/Easings/BounceEaseIn.cs
diff --git a/src/Avalonia.Animation/Easing/BounceEaseInOut.cs b/src/Avalonia.Base/Animation/Easings/BounceEaseInOut.cs
similarity index 100%
rename from src/Avalonia.Animation/Easing/BounceEaseInOut.cs
rename to src/Avalonia.Base/Animation/Easings/BounceEaseInOut.cs
diff --git a/src/Avalonia.Animation/Easing/BounceEaseOut.cs b/src/Avalonia.Base/Animation/Easings/BounceEaseOut.cs
similarity index 100%
rename from src/Avalonia.Animation/Easing/BounceEaseOut.cs
rename to src/Avalonia.Base/Animation/Easings/BounceEaseOut.cs
diff --git a/src/Avalonia.Animation/Easing/CircularEaseIn.cs b/src/Avalonia.Base/Animation/Easings/CircularEaseIn.cs
similarity index 100%
rename from src/Avalonia.Animation/Easing/CircularEaseIn.cs
rename to src/Avalonia.Base/Animation/Easings/CircularEaseIn.cs
diff --git a/src/Avalonia.Animation/Easing/CircularEaseInOut.cs b/src/Avalonia.Base/Animation/Easings/CircularEaseInOut.cs
similarity index 100%
rename from src/Avalonia.Animation/Easing/CircularEaseInOut.cs
rename to src/Avalonia.Base/Animation/Easings/CircularEaseInOut.cs
diff --git a/src/Avalonia.Animation/Easing/CircularEaseOut.cs b/src/Avalonia.Base/Animation/Easings/CircularEaseOut.cs
similarity index 100%
rename from src/Avalonia.Animation/Easing/CircularEaseOut.cs
rename to src/Avalonia.Base/Animation/Easings/CircularEaseOut.cs
diff --git a/src/Avalonia.Animation/Easing/CubicEaseIn.cs b/src/Avalonia.Base/Animation/Easings/CubicEaseIn.cs
similarity index 100%
rename from src/Avalonia.Animation/Easing/CubicEaseIn.cs
rename to src/Avalonia.Base/Animation/Easings/CubicEaseIn.cs
diff --git a/src/Avalonia.Animation/Easing/CubicEaseInOut.cs b/src/Avalonia.Base/Animation/Easings/CubicEaseInOut.cs
similarity index 100%
rename from src/Avalonia.Animation/Easing/CubicEaseInOut.cs
rename to src/Avalonia.Base/Animation/Easings/CubicEaseInOut.cs
diff --git a/src/Avalonia.Animation/Easing/CubicEaseOut.cs b/src/Avalonia.Base/Animation/Easings/CubicEaseOut.cs
similarity index 100%
rename from src/Avalonia.Animation/Easing/CubicEaseOut.cs
rename to src/Avalonia.Base/Animation/Easings/CubicEaseOut.cs
diff --git a/src/Avalonia.Animation/Easing/Easing.cs b/src/Avalonia.Base/Animation/Easings/Easing.cs
similarity index 100%
rename from src/Avalonia.Animation/Easing/Easing.cs
rename to src/Avalonia.Base/Animation/Easings/Easing.cs
diff --git a/src/Avalonia.Animation/Easing/EasingTypeConverter.cs b/src/Avalonia.Base/Animation/Easings/EasingTypeConverter.cs
similarity index 100%
rename from src/Avalonia.Animation/Easing/EasingTypeConverter.cs
rename to src/Avalonia.Base/Animation/Easings/EasingTypeConverter.cs
diff --git a/src/Avalonia.Animation/Easing/ElasticEaseIn.cs b/src/Avalonia.Base/Animation/Easings/ElasticEaseIn.cs
similarity index 100%
rename from src/Avalonia.Animation/Easing/ElasticEaseIn.cs
rename to src/Avalonia.Base/Animation/Easings/ElasticEaseIn.cs
diff --git a/src/Avalonia.Animation/Easing/ElasticEaseInOut.cs b/src/Avalonia.Base/Animation/Easings/ElasticEaseInOut.cs
similarity index 100%
rename from src/Avalonia.Animation/Easing/ElasticEaseInOut.cs
rename to src/Avalonia.Base/Animation/Easings/ElasticEaseInOut.cs
diff --git a/src/Avalonia.Animation/Easing/ElasticEaseOut.cs b/src/Avalonia.Base/Animation/Easings/ElasticEaseOut.cs
similarity index 100%
rename from src/Avalonia.Animation/Easing/ElasticEaseOut.cs
rename to src/Avalonia.Base/Animation/Easings/ElasticEaseOut.cs
diff --git a/src/Avalonia.Animation/Easing/ExponentialEaseIn.cs b/src/Avalonia.Base/Animation/Easings/ExponentialEaseIn.cs
similarity index 100%
rename from src/Avalonia.Animation/Easing/ExponentialEaseIn.cs
rename to src/Avalonia.Base/Animation/Easings/ExponentialEaseIn.cs
diff --git a/src/Avalonia.Animation/Easing/ExponentialEaseInOut.cs b/src/Avalonia.Base/Animation/Easings/ExponentialEaseInOut.cs
similarity index 100%
rename from src/Avalonia.Animation/Easing/ExponentialEaseInOut.cs
rename to src/Avalonia.Base/Animation/Easings/ExponentialEaseInOut.cs
diff --git a/src/Avalonia.Animation/Easing/ExponentialEaseOut.cs b/src/Avalonia.Base/Animation/Easings/ExponentialEaseOut.cs
similarity index 100%
rename from src/Avalonia.Animation/Easing/ExponentialEaseOut.cs
rename to src/Avalonia.Base/Animation/Easings/ExponentialEaseOut.cs
diff --git a/src/Avalonia.Animation/Easing/IEasing.cs b/src/Avalonia.Base/Animation/Easings/IEasing.cs
similarity index 100%
rename from src/Avalonia.Animation/Easing/IEasing.cs
rename to src/Avalonia.Base/Animation/Easings/IEasing.cs
diff --git a/src/Avalonia.Animation/Easing/LinearEasing.cs b/src/Avalonia.Base/Animation/Easings/LinearEasing.cs
similarity index 100%
rename from src/Avalonia.Animation/Easing/LinearEasing.cs
rename to src/Avalonia.Base/Animation/Easings/LinearEasing.cs
diff --git a/src/Avalonia.Animation/Easing/QuadraticEaseIn.cs b/src/Avalonia.Base/Animation/Easings/QuadraticEaseIn.cs
similarity index 100%
rename from src/Avalonia.Animation/Easing/QuadraticEaseIn.cs
rename to src/Avalonia.Base/Animation/Easings/QuadraticEaseIn.cs
diff --git a/src/Avalonia.Animation/Easing/QuadraticEaseInOut.cs b/src/Avalonia.Base/Animation/Easings/QuadraticEaseInOut.cs
similarity index 100%
rename from src/Avalonia.Animation/Easing/QuadraticEaseInOut.cs
rename to src/Avalonia.Base/Animation/Easings/QuadraticEaseInOut.cs
diff --git a/src/Avalonia.Animation/Easing/QuadraticEaseOut.cs b/src/Avalonia.Base/Animation/Easings/QuadraticEaseOut.cs
similarity index 100%
rename from src/Avalonia.Animation/Easing/QuadraticEaseOut.cs
rename to src/Avalonia.Base/Animation/Easings/QuadraticEaseOut.cs
diff --git a/src/Avalonia.Animation/Easing/QuarticEaseIn.cs b/src/Avalonia.Base/Animation/Easings/QuarticEaseIn.cs
similarity index 100%
rename from src/Avalonia.Animation/Easing/QuarticEaseIn.cs
rename to src/Avalonia.Base/Animation/Easings/QuarticEaseIn.cs
diff --git a/src/Avalonia.Animation/Easing/QuarticEaseInOut.cs b/src/Avalonia.Base/Animation/Easings/QuarticEaseInOut.cs
similarity index 100%
rename from src/Avalonia.Animation/Easing/QuarticEaseInOut.cs
rename to src/Avalonia.Base/Animation/Easings/QuarticEaseInOut.cs
diff --git a/src/Avalonia.Animation/Easing/QuarticEaseOut.cs b/src/Avalonia.Base/Animation/Easings/QuarticEaseOut.cs
similarity index 100%
rename from src/Avalonia.Animation/Easing/QuarticEaseOut.cs
rename to src/Avalonia.Base/Animation/Easings/QuarticEaseOut.cs
diff --git a/src/Avalonia.Animation/Easing/QuinticEaseIn.cs b/src/Avalonia.Base/Animation/Easings/QuinticEaseIn.cs
similarity index 100%
rename from src/Avalonia.Animation/Easing/QuinticEaseIn.cs
rename to src/Avalonia.Base/Animation/Easings/QuinticEaseIn.cs
diff --git a/src/Avalonia.Animation/Easing/QuinticEaseInOut.cs b/src/Avalonia.Base/Animation/Easings/QuinticEaseInOut.cs
similarity index 100%
rename from src/Avalonia.Animation/Easing/QuinticEaseInOut.cs
rename to src/Avalonia.Base/Animation/Easings/QuinticEaseInOut.cs
diff --git a/src/Avalonia.Animation/Easing/QuinticEaseOut.cs b/src/Avalonia.Base/Animation/Easings/QuinticEaseOut.cs
similarity index 100%
rename from src/Avalonia.Animation/Easing/QuinticEaseOut.cs
rename to src/Avalonia.Base/Animation/Easings/QuinticEaseOut.cs
diff --git a/src/Avalonia.Animation/Easing/SineEaseIn.cs b/src/Avalonia.Base/Animation/Easings/SineEaseIn.cs
similarity index 100%
rename from src/Avalonia.Animation/Easing/SineEaseIn.cs
rename to src/Avalonia.Base/Animation/Easings/SineEaseIn.cs
diff --git a/src/Avalonia.Animation/Easing/SineEaseInOut.cs b/src/Avalonia.Base/Animation/Easings/SineEaseInOut.cs
similarity index 100%
rename from src/Avalonia.Animation/Easing/SineEaseInOut.cs
rename to src/Avalonia.Base/Animation/Easings/SineEaseInOut.cs
diff --git a/src/Avalonia.Animation/Easing/SineEaseOut.cs b/src/Avalonia.Base/Animation/Easings/SineEaseOut.cs
similarity index 100%
rename from src/Avalonia.Animation/Easing/SineEaseOut.cs
rename to src/Avalonia.Base/Animation/Easings/SineEaseOut.cs
diff --git a/src/Avalonia.Animation/Easing/SplineEasing.cs b/src/Avalonia.Base/Animation/Easings/SplineEasing.cs
similarity index 100%
rename from src/Avalonia.Animation/Easing/SplineEasing.cs
rename to src/Avalonia.Base/Animation/Easings/SplineEasing.cs
diff --git a/src/Avalonia.Animation/FillMode.cs b/src/Avalonia.Base/Animation/FillMode.cs
similarity index 100%
rename from src/Avalonia.Animation/FillMode.cs
rename to src/Avalonia.Base/Animation/FillMode.cs
diff --git a/src/Avalonia.Animation/IAnimation.cs b/src/Avalonia.Base/Animation/IAnimation.cs
similarity index 100%
rename from src/Avalonia.Animation/IAnimation.cs
rename to src/Avalonia.Base/Animation/IAnimation.cs
diff --git a/src/Avalonia.Animation/IAnimationSetter.cs b/src/Avalonia.Base/Animation/IAnimationSetter.cs
similarity index 100%
rename from src/Avalonia.Animation/IAnimationSetter.cs
rename to src/Avalonia.Base/Animation/IAnimationSetter.cs
diff --git a/src/Avalonia.Animation/IAnimator.cs b/src/Avalonia.Base/Animation/IAnimator.cs
similarity index 100%
rename from src/Avalonia.Animation/IAnimator.cs
rename to src/Avalonia.Base/Animation/IAnimator.cs
diff --git a/src/Avalonia.Animation/IClock.cs b/src/Avalonia.Base/Animation/IClock.cs
similarity index 100%
rename from src/Avalonia.Animation/IClock.cs
rename to src/Avalonia.Base/Animation/IClock.cs
diff --git a/src/Avalonia.Animation/IGlobalClock.cs b/src/Avalonia.Base/Animation/IGlobalClock.cs
similarity index 100%
rename from src/Avalonia.Animation/IGlobalClock.cs
rename to src/Avalonia.Base/Animation/IGlobalClock.cs
diff --git a/src/Avalonia.Visuals/Animation/IPageTransition.cs b/src/Avalonia.Base/Animation/IPageTransition.cs
similarity index 100%
rename from src/Avalonia.Visuals/Animation/IPageTransition.cs
rename to src/Avalonia.Base/Animation/IPageTransition.cs
diff --git a/src/Avalonia.Animation/ITransition.cs b/src/Avalonia.Base/Animation/ITransition.cs
similarity index 100%
rename from src/Avalonia.Animation/ITransition.cs
rename to src/Avalonia.Base/Animation/ITransition.cs
diff --git a/src/Avalonia.Animation/IterationCount.cs b/src/Avalonia.Base/Animation/IterationCount.cs
similarity index 100%
rename from src/Avalonia.Animation/IterationCount.cs
rename to src/Avalonia.Base/Animation/IterationCount.cs
diff --git a/src/Avalonia.Animation/IterationCountTypeConverter.cs b/src/Avalonia.Base/Animation/IterationCountTypeConverter.cs
similarity index 100%
rename from src/Avalonia.Animation/IterationCountTypeConverter.cs
rename to src/Avalonia.Base/Animation/IterationCountTypeConverter.cs
diff --git a/src/Avalonia.Animation/KeyFrame.cs b/src/Avalonia.Base/Animation/KeyFrame.cs
similarity index 100%
rename from src/Avalonia.Animation/KeyFrame.cs
rename to src/Avalonia.Base/Animation/KeyFrame.cs
diff --git a/src/Avalonia.Animation/KeyFrames.cs b/src/Avalonia.Base/Animation/KeyFrames.cs
similarity index 100%
rename from src/Avalonia.Animation/KeyFrames.cs
rename to src/Avalonia.Base/Animation/KeyFrames.cs
diff --git a/src/Avalonia.Animation/KeySpline.cs b/src/Avalonia.Base/Animation/KeySpline.cs
similarity index 100%
rename from src/Avalonia.Animation/KeySpline.cs
rename to src/Avalonia.Base/Animation/KeySpline.cs
diff --git a/src/Avalonia.Animation/KeySplineTypeConverter.cs b/src/Avalonia.Base/Animation/KeySplineTypeConverter.cs
similarity index 100%
rename from src/Avalonia.Animation/KeySplineTypeConverter.cs
rename to src/Avalonia.Base/Animation/KeySplineTypeConverter.cs
diff --git a/src/Avalonia.Visuals/Animation/PageSlide.cs b/src/Avalonia.Base/Animation/PageSlide.cs
similarity index 100%
rename from src/Avalonia.Visuals/Animation/PageSlide.cs
rename to src/Avalonia.Base/Animation/PageSlide.cs
diff --git a/src/Avalonia.Animation/PlayState.cs b/src/Avalonia.Base/Animation/PlayState.cs
similarity index 100%
rename from src/Avalonia.Animation/PlayState.cs
rename to src/Avalonia.Base/Animation/PlayState.cs
diff --git a/src/Avalonia.Animation/PlaybackDirection.cs b/src/Avalonia.Base/Animation/PlaybackDirection.cs
similarity index 100%
rename from src/Avalonia.Animation/PlaybackDirection.cs
rename to src/Avalonia.Base/Animation/PlaybackDirection.cs
diff --git a/src/Avalonia.Visuals/Animation/RenderLoopClock.cs b/src/Avalonia.Base/Animation/RenderLoopClock.cs
similarity index 100%
rename from src/Avalonia.Visuals/Animation/RenderLoopClock.cs
rename to src/Avalonia.Base/Animation/RenderLoopClock.cs
diff --git a/src/Avalonia.Animation/Transition.cs b/src/Avalonia.Base/Animation/Transition.cs
similarity index 100%
rename from src/Avalonia.Animation/Transition.cs
rename to src/Avalonia.Base/Animation/Transition.cs
diff --git a/src/Avalonia.Animation/TransitionInstance.cs b/src/Avalonia.Base/Animation/TransitionInstance.cs
similarity index 100%
rename from src/Avalonia.Animation/TransitionInstance.cs
rename to src/Avalonia.Base/Animation/TransitionInstance.cs
diff --git a/src/Avalonia.Animation/TransitionObservableBase.cs b/src/Avalonia.Base/Animation/TransitionObservableBase.cs
similarity index 100%
rename from src/Avalonia.Animation/TransitionObservableBase.cs
rename to src/Avalonia.Base/Animation/TransitionObservableBase.cs
diff --git a/src/Avalonia.Animation/Transitions.cs b/src/Avalonia.Base/Animation/Transitions.cs
similarity index 100%
rename from src/Avalonia.Animation/Transitions.cs
rename to src/Avalonia.Base/Animation/Transitions.cs
diff --git a/src/Avalonia.Visuals/Animation/Transitions/BoxShadowsTransition.cs b/src/Avalonia.Base/Animation/Transitions/BoxShadowsTransition.cs
similarity index 100%
rename from src/Avalonia.Visuals/Animation/Transitions/BoxShadowsTransition.cs
rename to src/Avalonia.Base/Animation/Transitions/BoxShadowsTransition.cs
diff --git a/src/Avalonia.Visuals/Animation/Transitions/BrushTransition.cs b/src/Avalonia.Base/Animation/Transitions/BrushTransition.cs
similarity index 100%
rename from src/Avalonia.Visuals/Animation/Transitions/BrushTransition.cs
rename to src/Avalonia.Base/Animation/Transitions/BrushTransition.cs
diff --git a/src/Avalonia.Visuals/Animation/Transitions/ColorTransition.cs b/src/Avalonia.Base/Animation/Transitions/ColorTransition.cs
similarity index 100%
rename from src/Avalonia.Visuals/Animation/Transitions/ColorTransition.cs
rename to src/Avalonia.Base/Animation/Transitions/ColorTransition.cs
diff --git a/src/Avalonia.Visuals/Animation/Transitions/CornerRadiusTransition.cs b/src/Avalonia.Base/Animation/Transitions/CornerRadiusTransition.cs
similarity index 100%
rename from src/Avalonia.Visuals/Animation/Transitions/CornerRadiusTransition.cs
rename to src/Avalonia.Base/Animation/Transitions/CornerRadiusTransition.cs
diff --git a/src/Avalonia.Animation/Transitions/DoubleTransition.cs b/src/Avalonia.Base/Animation/Transitions/DoubleTransition.cs
similarity index 100%
rename from src/Avalonia.Animation/Transitions/DoubleTransition.cs
rename to src/Avalonia.Base/Animation/Transitions/DoubleTransition.cs
diff --git a/src/Avalonia.Animation/Transitions/FloatTransition.cs b/src/Avalonia.Base/Animation/Transitions/FloatTransition.cs
similarity index 100%
rename from src/Avalonia.Animation/Transitions/FloatTransition.cs
rename to src/Avalonia.Base/Animation/Transitions/FloatTransition.cs
diff --git a/src/Avalonia.Animation/Transitions/IntegerTransition.cs b/src/Avalonia.Base/Animation/Transitions/IntegerTransition.cs
similarity index 100%
rename from src/Avalonia.Animation/Transitions/IntegerTransition.cs
rename to src/Avalonia.Base/Animation/Transitions/IntegerTransition.cs
diff --git a/src/Avalonia.Visuals/Animation/Transitions/PointTransition.cs b/src/Avalonia.Base/Animation/Transitions/PointTransition.cs
similarity index 100%
rename from src/Avalonia.Visuals/Animation/Transitions/PointTransition.cs
rename to src/Avalonia.Base/Animation/Transitions/PointTransition.cs
diff --git a/src/Avalonia.Visuals/Animation/Transitions/RelativePointTransition.cs b/src/Avalonia.Base/Animation/Transitions/RelativePointTransition.cs
similarity index 100%
rename from src/Avalonia.Visuals/Animation/Transitions/RelativePointTransition.cs
rename to src/Avalonia.Base/Animation/Transitions/RelativePointTransition.cs
diff --git a/src/Avalonia.Visuals/Animation/Transitions/SizeTransition.cs b/src/Avalonia.Base/Animation/Transitions/SizeTransition.cs
similarity index 100%
rename from src/Avalonia.Visuals/Animation/Transitions/SizeTransition.cs
rename to src/Avalonia.Base/Animation/Transitions/SizeTransition.cs
diff --git a/src/Avalonia.Visuals/Animation/Transitions/ThicknessTransition.cs b/src/Avalonia.Base/Animation/Transitions/ThicknessTransition.cs
similarity index 100%
rename from src/Avalonia.Visuals/Animation/Transitions/ThicknessTransition.cs
rename to src/Avalonia.Base/Animation/Transitions/ThicknessTransition.cs
diff --git a/src/Avalonia.Visuals/Animation/Transitions/TransformOperationsTransition.cs b/src/Avalonia.Base/Animation/Transitions/TransformOperationsTransition.cs
similarity index 100%
rename from src/Avalonia.Visuals/Animation/Transitions/TransformOperationsTransition.cs
rename to src/Avalonia.Base/Animation/Transitions/TransformOperationsTransition.cs
diff --git a/src/Avalonia.Visuals/Animation/Transitions/VectorTransition.cs b/src/Avalonia.Base/Animation/Transitions/VectorTransition.cs
similarity index 100%
rename from src/Avalonia.Visuals/Animation/Transitions/VectorTransition.cs
rename to src/Avalonia.Base/Animation/Transitions/VectorTransition.cs
diff --git a/src/Avalonia.Animation/Utils/BounceEaseUtils.cs b/src/Avalonia.Base/Animation/Utils/BounceEaseUtils.cs
similarity index 100%
rename from src/Avalonia.Animation/Utils/BounceEaseUtils.cs
rename to src/Avalonia.Base/Animation/Utils/BounceEaseUtils.cs
diff --git a/src/Avalonia.Animation/Utils/EasingUtils.cs b/src/Avalonia.Base/Animation/Utils/EasingUtils.cs
similarity index 100%
rename from src/Avalonia.Animation/Utils/EasingUtils.cs
rename to src/Avalonia.Base/Animation/Utils/EasingUtils.cs
diff --git a/src/Avalonia.Visuals/Assets/BiDi.trie b/src/Avalonia.Base/Assets/BiDi.trie
similarity index 100%
rename from src/Avalonia.Visuals/Assets/BiDi.trie
rename to src/Avalonia.Base/Assets/BiDi.trie
diff --git a/src/Avalonia.Visuals/Assets/GraphemeBreak.trie b/src/Avalonia.Base/Assets/GraphemeBreak.trie
similarity index 100%
rename from src/Avalonia.Visuals/Assets/GraphemeBreak.trie
rename to src/Avalonia.Base/Assets/GraphemeBreak.trie
diff --git a/src/Avalonia.Visuals/Assets/UnicodeData.trie b/src/Avalonia.Base/Assets/UnicodeData.trie
similarity index 100%
rename from src/Avalonia.Visuals/Assets/UnicodeData.trie
rename to src/Avalonia.Base/Assets/UnicodeData.trie
diff --git a/src/Avalonia.Base/Avalonia.Base.csproj b/src/Avalonia.Base/Avalonia.Base.csproj
index 637b86d759..5b79d3cd7b 100644
--- a/src/Avalonia.Base/Avalonia.Base.csproj
+++ b/src/Avalonia.Base/Avalonia.Base.csproj
@@ -5,6 +5,9 @@
Avalonia
True
+
+
+
diff --git a/src/Avalonia.Visuals/AvaloniaPropertyExtensions.cs b/src/Avalonia.Base/AvaloniaPropertyExtensions.cs
similarity index 100%
rename from src/Avalonia.Visuals/AvaloniaPropertyExtensions.cs
rename to src/Avalonia.Base/AvaloniaPropertyExtensions.cs
diff --git a/src/Avalonia.Styling/ClassBindingManager.cs b/src/Avalonia.Base/ClassBindingManager.cs
similarity index 100%
rename from src/Avalonia.Styling/ClassBindingManager.cs
rename to src/Avalonia.Base/ClassBindingManager.cs
diff --git a/src/Avalonia.Visuals/Media/CombinedGeometry.cs b/src/Avalonia.Base/CombinedGeometry.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/CombinedGeometry.cs
rename to src/Avalonia.Base/CombinedGeometry.cs
diff --git a/src/Avalonia.Styling/Controls/ChildNameScope.cs b/src/Avalonia.Base/Controls/ChildNameScope.cs
similarity index 99%
rename from src/Avalonia.Styling/Controls/ChildNameScope.cs
rename to src/Avalonia.Base/Controls/ChildNameScope.cs
index 58114a57fd..1ceaff924c 100644
--- a/src/Avalonia.Styling/Controls/ChildNameScope.cs
+++ b/src/Avalonia.Base/Controls/ChildNameScope.cs
@@ -22,7 +22,7 @@ namespace Avalonia.Controls
return new SynchronousCompletionAsyncResult(found);
// Not found and both current and parent scope are in completed state
if(IsCompleted)
- return new SynchronousCompletionAsyncResult(null);
+ return new SynchronousCompletionAsyncResult((object?)null);
return DoFindAsync(name);
}
diff --git a/src/Avalonia.Styling/Controls/Classes.cs b/src/Avalonia.Base/Controls/Classes.cs
similarity index 100%
rename from src/Avalonia.Styling/Controls/Classes.cs
rename to src/Avalonia.Base/Controls/Classes.cs
diff --git a/src/Avalonia.Styling/Controls/INameScope.cs b/src/Avalonia.Base/Controls/INameScope.cs
similarity index 100%
rename from src/Avalonia.Styling/Controls/INameScope.cs
rename to src/Avalonia.Base/Controls/INameScope.cs
diff --git a/src/Avalonia.Styling/Controls/IPseudoClasses.cs b/src/Avalonia.Base/Controls/IPseudoClasses.cs
similarity index 100%
rename from src/Avalonia.Styling/Controls/IPseudoClasses.cs
rename to src/Avalonia.Base/Controls/IPseudoClasses.cs
diff --git a/src/Avalonia.Styling/Controls/IResourceDictionary.cs b/src/Avalonia.Base/Controls/IResourceDictionary.cs
similarity index 100%
rename from src/Avalonia.Styling/Controls/IResourceDictionary.cs
rename to src/Avalonia.Base/Controls/IResourceDictionary.cs
diff --git a/src/Avalonia.Styling/Controls/IResourceHost.cs b/src/Avalonia.Base/Controls/IResourceHost.cs
similarity index 100%
rename from src/Avalonia.Styling/Controls/IResourceHost.cs
rename to src/Avalonia.Base/Controls/IResourceHost.cs
diff --git a/src/Avalonia.Styling/Controls/IResourceNode.cs b/src/Avalonia.Base/Controls/IResourceNode.cs
similarity index 100%
rename from src/Avalonia.Styling/Controls/IResourceNode.cs
rename to src/Avalonia.Base/Controls/IResourceNode.cs
diff --git a/src/Avalonia.Styling/Controls/IResourceProvider.cs b/src/Avalonia.Base/Controls/IResourceProvider.cs
similarity index 100%
rename from src/Avalonia.Styling/Controls/IResourceProvider.cs
rename to src/Avalonia.Base/Controls/IResourceProvider.cs
diff --git a/src/Avalonia.Styling/Controls/ISetInheritanceParent.cs b/src/Avalonia.Base/Controls/ISetInheritanceParent.cs
similarity index 100%
rename from src/Avalonia.Styling/Controls/ISetInheritanceParent.cs
rename to src/Avalonia.Base/Controls/ISetInheritanceParent.cs
diff --git a/src/Avalonia.Styling/Controls/ISetLogicalParent.cs b/src/Avalonia.Base/Controls/ISetLogicalParent.cs
similarity index 100%
rename from src/Avalonia.Styling/Controls/ISetLogicalParent.cs
rename to src/Avalonia.Base/Controls/ISetLogicalParent.cs
diff --git a/src/Avalonia.Styling/Controls/Metadata/PseudoClassesAttribute.cs b/src/Avalonia.Base/Controls/Metadata/PseudoClassesAttribute.cs
similarity index 100%
rename from src/Avalonia.Styling/Controls/Metadata/PseudoClassesAttribute.cs
rename to src/Avalonia.Base/Controls/Metadata/PseudoClassesAttribute.cs
diff --git a/src/Avalonia.Styling/Controls/Metadata/TemplatePartAttribute.cs b/src/Avalonia.Base/Controls/Metadata/TemplatePartAttribute.cs
similarity index 100%
rename from src/Avalonia.Styling/Controls/Metadata/TemplatePartAttribute.cs
rename to src/Avalonia.Base/Controls/Metadata/TemplatePartAttribute.cs
diff --git a/src/Avalonia.Styling/Controls/NameScope.cs b/src/Avalonia.Base/Controls/NameScope.cs
similarity index 99%
rename from src/Avalonia.Styling/Controls/NameScope.cs
rename to src/Avalonia.Base/Controls/NameScope.cs
index 77f98f85c4..952401c00c 100644
--- a/src/Avalonia.Styling/Controls/NameScope.cs
+++ b/src/Avalonia.Base/Controls/NameScope.cs
@@ -82,7 +82,7 @@ namespace Avalonia.Controls
if (found != null)
return new SynchronousCompletionAsyncResult(found);
if (IsCompleted)
- return new SynchronousCompletionAsyncResult(null);
+ return new SynchronousCompletionAsyncResult((object?)null);
if (!_pendingSearches.TryGetValue(name, out var tcs))
// We are intentionally running continuations synchronously here
_pendingSearches[name] = tcs = new SynchronousCompletionAsyncResultSource();
diff --git a/src/Avalonia.Styling/Controls/NameScopeEventArgs.cs b/src/Avalonia.Base/Controls/NameScopeEventArgs.cs
similarity index 100%
rename from src/Avalonia.Styling/Controls/NameScopeEventArgs.cs
rename to src/Avalonia.Base/Controls/NameScopeEventArgs.cs
diff --git a/src/Avalonia.Styling/Controls/NameScopeExtensions.cs b/src/Avalonia.Base/Controls/NameScopeExtensions.cs
similarity index 100%
rename from src/Avalonia.Styling/Controls/NameScopeExtensions.cs
rename to src/Avalonia.Base/Controls/NameScopeExtensions.cs
diff --git a/src/Avalonia.Styling/Controls/NameScopeLocator.cs b/src/Avalonia.Base/Controls/NameScopeLocator.cs
similarity index 100%
rename from src/Avalonia.Styling/Controls/NameScopeLocator.cs
rename to src/Avalonia.Base/Controls/NameScopeLocator.cs
diff --git a/src/Avalonia.Styling/Controls/PseudoClassesExtensions.cs b/src/Avalonia.Base/Controls/PseudoClassesExtensions.cs
similarity index 100%
rename from src/Avalonia.Styling/Controls/PseudoClassesExtensions.cs
rename to src/Avalonia.Base/Controls/PseudoClassesExtensions.cs
diff --git a/src/Avalonia.Styling/Controls/ResourceDictionary.cs b/src/Avalonia.Base/Controls/ResourceDictionary.cs
similarity index 100%
rename from src/Avalonia.Styling/Controls/ResourceDictionary.cs
rename to src/Avalonia.Base/Controls/ResourceDictionary.cs
diff --git a/src/Avalonia.Styling/Controls/ResourceNodeExtensions.cs b/src/Avalonia.Base/Controls/ResourceNodeExtensions.cs
similarity index 100%
rename from src/Avalonia.Styling/Controls/ResourceNodeExtensions.cs
rename to src/Avalonia.Base/Controls/ResourceNodeExtensions.cs
diff --git a/src/Avalonia.Styling/Controls/ResourcesChangedEventArgs.cs b/src/Avalonia.Base/Controls/ResourcesChangedEventArgs.cs
similarity index 100%
rename from src/Avalonia.Styling/Controls/ResourcesChangedEventArgs.cs
rename to src/Avalonia.Base/Controls/ResourcesChangedEventArgs.cs
diff --git a/src/Avalonia.Visuals/CornerRadius.cs b/src/Avalonia.Base/CornerRadius.cs
similarity index 100%
rename from src/Avalonia.Visuals/CornerRadius.cs
rename to src/Avalonia.Base/CornerRadius.cs
diff --git a/src/Avalonia.Styling/Diagnostics/StyleDiagnostics.cs b/src/Avalonia.Base/Diagnostics/StyleDiagnostics.cs
similarity index 100%
rename from src/Avalonia.Styling/Diagnostics/StyleDiagnostics.cs
rename to src/Avalonia.Base/Diagnostics/StyleDiagnostics.cs
diff --git a/src/Avalonia.Styling/Diagnostics/StyledElementExtensions.cs b/src/Avalonia.Base/Diagnostics/StyledElementExtensions.cs
similarity index 100%
rename from src/Avalonia.Styling/Diagnostics/StyledElementExtensions.cs
rename to src/Avalonia.Base/Diagnostics/StyledElementExtensions.cs
diff --git a/src/Avalonia.Visuals/Media/GeometryCollection.cs b/src/Avalonia.Base/GeometryCollection.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/GeometryCollection.cs
rename to src/Avalonia.Base/GeometryCollection.cs
diff --git a/src/Avalonia.Visuals/Media/GeometryGroup.cs b/src/Avalonia.Base/GeometryGroup.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/GeometryGroup.cs
rename to src/Avalonia.Base/GeometryGroup.cs
diff --git a/src/Avalonia.Styling/IDataContextProvider.cs b/src/Avalonia.Base/IDataContextProvider.cs
similarity index 100%
rename from src/Avalonia.Styling/IDataContextProvider.cs
rename to src/Avalonia.Base/IDataContextProvider.cs
diff --git a/src/Avalonia.Styling/INamed.cs b/src/Avalonia.Base/INamed.cs
similarity index 100%
rename from src/Avalonia.Styling/INamed.cs
rename to src/Avalonia.Base/INamed.cs
diff --git a/src/Avalonia.Styling/IStyledElement.cs b/src/Avalonia.Base/IStyledElement.cs
similarity index 100%
rename from src/Avalonia.Styling/IStyledElement.cs
rename to src/Avalonia.Base/IStyledElement.cs
diff --git a/src/Avalonia.Input/AccessKeyHandler.cs b/src/Avalonia.Base/Input/AccessKeyHandler.cs
similarity index 100%
rename from src/Avalonia.Input/AccessKeyHandler.cs
rename to src/Avalonia.Base/Input/AccessKeyHandler.cs
diff --git a/src/Avalonia.Input/Cursor.cs b/src/Avalonia.Base/Input/Cursor.cs
similarity index 100%
rename from src/Avalonia.Input/Cursor.cs
rename to src/Avalonia.Base/Input/Cursor.cs
diff --git a/src/Avalonia.Input/DataFormats.cs b/src/Avalonia.Base/Input/DataFormats.cs
similarity index 100%
rename from src/Avalonia.Input/DataFormats.cs
rename to src/Avalonia.Base/Input/DataFormats.cs
diff --git a/src/Avalonia.Input/DataObject.cs b/src/Avalonia.Base/Input/DataObject.cs
similarity index 100%
rename from src/Avalonia.Input/DataObject.cs
rename to src/Avalonia.Base/Input/DataObject.cs
diff --git a/src/Avalonia.Input/DragDrop.cs b/src/Avalonia.Base/Input/DragDrop.cs
similarity index 100%
rename from src/Avalonia.Input/DragDrop.cs
rename to src/Avalonia.Base/Input/DragDrop.cs
diff --git a/src/Avalonia.Input/DragDropDevice.cs b/src/Avalonia.Base/Input/DragDropDevice.cs
similarity index 100%
rename from src/Avalonia.Input/DragDropDevice.cs
rename to src/Avalonia.Base/Input/DragDropDevice.cs
diff --git a/src/Avalonia.Input/DragDropEffects.cs b/src/Avalonia.Base/Input/DragDropEffects.cs
similarity index 100%
rename from src/Avalonia.Input/DragDropEffects.cs
rename to src/Avalonia.Base/Input/DragDropEffects.cs
diff --git a/src/Avalonia.Input/DragEventArgs.cs b/src/Avalonia.Base/Input/DragEventArgs.cs
similarity index 100%
rename from src/Avalonia.Input/DragEventArgs.cs
rename to src/Avalonia.Base/Input/DragEventArgs.cs
diff --git a/src/Avalonia.Input/FocusManager.cs b/src/Avalonia.Base/Input/FocusManager.cs
similarity index 100%
rename from src/Avalonia.Input/FocusManager.cs
rename to src/Avalonia.Base/Input/FocusManager.cs
diff --git a/src/Avalonia.Input/GestureRecognizers/GestureRecognizerCollection.cs b/src/Avalonia.Base/Input/GestureRecognizers/GestureRecognizerCollection.cs
similarity index 100%
rename from src/Avalonia.Input/GestureRecognizers/GestureRecognizerCollection.cs
rename to src/Avalonia.Base/Input/GestureRecognizers/GestureRecognizerCollection.cs
diff --git a/src/Avalonia.Input/GestureRecognizers/IGestureRecognizer.cs b/src/Avalonia.Base/Input/GestureRecognizers/IGestureRecognizer.cs
similarity index 100%
rename from src/Avalonia.Input/GestureRecognizers/IGestureRecognizer.cs
rename to src/Avalonia.Base/Input/GestureRecognizers/IGestureRecognizer.cs
diff --git a/src/Avalonia.Input/GestureRecognizers/ScrollGestureRecognizer.cs b/src/Avalonia.Base/Input/GestureRecognizers/ScrollGestureRecognizer.cs
similarity index 100%
rename from src/Avalonia.Input/GestureRecognizers/ScrollGestureRecognizer.cs
rename to src/Avalonia.Base/Input/GestureRecognizers/ScrollGestureRecognizer.cs
diff --git a/src/Avalonia.Input/Gestures.cs b/src/Avalonia.Base/Input/Gestures.cs
similarity index 97%
rename from src/Avalonia.Input/Gestures.cs
rename to src/Avalonia.Base/Input/Gestures.cs
index 86e6e96a71..4349fca7db 100644
--- a/src/Avalonia.Input/Gestures.cs
+++ b/src/Avalonia.Base/Input/Gestures.cs
@@ -26,8 +26,8 @@ namespace Avalonia.Input
RoutedEvent.Register(
"ScrollGesture", RoutingStrategies.Bubble, typeof(Gestures));
- public static readonly RoutedEvent ScrollGestureEndedEvent =
- RoutedEvent.Register(
+ public static readonly RoutedEvent ScrollGestureEndedEvent =
+ RoutedEvent.Register(
"ScrollGestureEnded", RoutingStrategies.Bubble, typeof(Gestures));
public static readonly RoutedEvent PointerTouchPadGestureMagnifyEvent =
diff --git a/src/Avalonia.Input/GotFocusEventArgs.cs b/src/Avalonia.Base/Input/GotFocusEventArgs.cs
similarity index 100%
rename from src/Avalonia.Input/GotFocusEventArgs.cs
rename to src/Avalonia.Base/Input/GotFocusEventArgs.cs
diff --git a/src/Avalonia.Input/IAccessKeyHandler.cs b/src/Avalonia.Base/Input/IAccessKeyHandler.cs
similarity index 100%
rename from src/Avalonia.Input/IAccessKeyHandler.cs
rename to src/Avalonia.Base/Input/IAccessKeyHandler.cs
diff --git a/src/Avalonia.Input/IClickableControl.cs b/src/Avalonia.Base/Input/IClickableControl.cs
similarity index 100%
rename from src/Avalonia.Input/IClickableControl.cs
rename to src/Avalonia.Base/Input/IClickableControl.cs
diff --git a/src/Avalonia.Input/ICloseable.cs b/src/Avalonia.Base/Input/ICloseable.cs
similarity index 100%
rename from src/Avalonia.Input/ICloseable.cs
rename to src/Avalonia.Base/Input/ICloseable.cs
diff --git a/src/Avalonia.Input/ICommandSource.cs b/src/Avalonia.Base/Input/ICommandSource.cs
similarity index 100%
rename from src/Avalonia.Input/ICommandSource.cs
rename to src/Avalonia.Base/Input/ICommandSource.cs
diff --git a/src/Avalonia.Input/ICustomKeyboardNavigation.cs b/src/Avalonia.Base/Input/ICustomKeyboardNavigation.cs
similarity index 100%
rename from src/Avalonia.Input/ICustomKeyboardNavigation.cs
rename to src/Avalonia.Base/Input/ICustomKeyboardNavigation.cs
diff --git a/src/Avalonia.Input/IDataObject.cs b/src/Avalonia.Base/Input/IDataObject.cs
similarity index 100%
rename from src/Avalonia.Input/IDataObject.cs
rename to src/Avalonia.Base/Input/IDataObject.cs
diff --git a/src/Avalonia.Input/IFocusManager.cs b/src/Avalonia.Base/Input/IFocusManager.cs
similarity index 100%
rename from src/Avalonia.Input/IFocusManager.cs
rename to src/Avalonia.Base/Input/IFocusManager.cs
diff --git a/src/Avalonia.Input/IFocusScope.cs b/src/Avalonia.Base/Input/IFocusScope.cs
similarity index 100%
rename from src/Avalonia.Input/IFocusScope.cs
rename to src/Avalonia.Base/Input/IFocusScope.cs
diff --git a/src/Avalonia.Input/IInputDevice.cs b/src/Avalonia.Base/Input/IInputDevice.cs
similarity index 100%
rename from src/Avalonia.Input/IInputDevice.cs
rename to src/Avalonia.Base/Input/IInputDevice.cs
diff --git a/src/Avalonia.Input/IInputElement.cs b/src/Avalonia.Base/Input/IInputElement.cs
similarity index 100%
rename from src/Avalonia.Input/IInputElement.cs
rename to src/Avalonia.Base/Input/IInputElement.cs
diff --git a/src/Avalonia.Input/IInputManager.cs b/src/Avalonia.Base/Input/IInputManager.cs
similarity index 100%
rename from src/Avalonia.Input/IInputManager.cs
rename to src/Avalonia.Base/Input/IInputManager.cs
diff --git a/src/Avalonia.Input/IInputRoot.cs b/src/Avalonia.Base/Input/IInputRoot.cs
similarity index 100%
rename from src/Avalonia.Input/IInputRoot.cs
rename to src/Avalonia.Base/Input/IInputRoot.cs
diff --git a/src/Avalonia.Input/IKeyboardDevice.cs b/src/Avalonia.Base/Input/IKeyboardDevice.cs
similarity index 100%
rename from src/Avalonia.Input/IKeyboardDevice.cs
rename to src/Avalonia.Base/Input/IKeyboardDevice.cs
diff --git a/src/Avalonia.Input/IKeyboardNavigationHandler.cs b/src/Avalonia.Base/Input/IKeyboardNavigationHandler.cs
similarity index 100%
rename from src/Avalonia.Input/IKeyboardNavigationHandler.cs
rename to src/Avalonia.Base/Input/IKeyboardNavigationHandler.cs
diff --git a/src/Avalonia.Input/IMainMenu.cs b/src/Avalonia.Base/Input/IMainMenu.cs
similarity index 100%
rename from src/Avalonia.Input/IMainMenu.cs
rename to src/Avalonia.Base/Input/IMainMenu.cs
diff --git a/src/Avalonia.Input/IMouseDevice.cs b/src/Avalonia.Base/Input/IMouseDevice.cs
similarity index 100%
rename from src/Avalonia.Input/IMouseDevice.cs
rename to src/Avalonia.Base/Input/IMouseDevice.cs
diff --git a/src/Avalonia.Input/INavigableContainer.cs b/src/Avalonia.Base/Input/INavigableContainer.cs
similarity index 100%
rename from src/Avalonia.Input/INavigableContainer.cs
rename to src/Avalonia.Base/Input/INavigableContainer.cs
diff --git a/src/Avalonia.Input/IPointer.cs b/src/Avalonia.Base/Input/IPointer.cs
similarity index 100%
rename from src/Avalonia.Input/IPointer.cs
rename to src/Avalonia.Base/Input/IPointer.cs
diff --git a/src/Avalonia.Input/IPointerDevice.cs b/src/Avalonia.Base/Input/IPointerDevice.cs
similarity index 100%
rename from src/Avalonia.Input/IPointerDevice.cs
rename to src/Avalonia.Base/Input/IPointerDevice.cs
diff --git a/src/Avalonia.Input/InputElement.cs b/src/Avalonia.Base/Input/InputElement.cs
similarity index 100%
rename from src/Avalonia.Input/InputElement.cs
rename to src/Avalonia.Base/Input/InputElement.cs
diff --git a/src/Avalonia.Input/InputExtensions.cs b/src/Avalonia.Base/Input/InputExtensions.cs
similarity index 100%
rename from src/Avalonia.Input/InputExtensions.cs
rename to src/Avalonia.Base/Input/InputExtensions.cs
diff --git a/src/Avalonia.Input/InputManager.cs b/src/Avalonia.Base/Input/InputManager.cs
similarity index 100%
rename from src/Avalonia.Input/InputManager.cs
rename to src/Avalonia.Base/Input/InputManager.cs
diff --git a/src/Avalonia.Input/InputMethod.cs b/src/Avalonia.Base/Input/InputMethod.cs
similarity index 100%
rename from src/Avalonia.Input/InputMethod.cs
rename to src/Avalonia.Base/Input/InputMethod.cs
diff --git a/src/Avalonia.Input/Key.cs b/src/Avalonia.Base/Input/Key.cs
similarity index 100%
rename from src/Avalonia.Input/Key.cs
rename to src/Avalonia.Base/Input/Key.cs
diff --git a/src/Avalonia.Input/KeyBinding.cs b/src/Avalonia.Base/Input/KeyBinding.cs
similarity index 100%
rename from src/Avalonia.Input/KeyBinding.cs
rename to src/Avalonia.Base/Input/KeyBinding.cs
diff --git a/src/Avalonia.Input/KeyEventArgs.cs b/src/Avalonia.Base/Input/KeyEventArgs.cs
similarity index 100%
rename from src/Avalonia.Input/KeyEventArgs.cs
rename to src/Avalonia.Base/Input/KeyEventArgs.cs
diff --git a/src/Avalonia.Input/KeyGesture.cs b/src/Avalonia.Base/Input/KeyGesture.cs
similarity index 100%
rename from src/Avalonia.Input/KeyGesture.cs
rename to src/Avalonia.Base/Input/KeyGesture.cs
diff --git a/src/Avalonia.Input/KeyboardDevice.cs b/src/Avalonia.Base/Input/KeyboardDevice.cs
similarity index 100%
rename from src/Avalonia.Input/KeyboardDevice.cs
rename to src/Avalonia.Base/Input/KeyboardDevice.cs
diff --git a/src/Avalonia.Input/KeyboardNavigation.cs b/src/Avalonia.Base/Input/KeyboardNavigation.cs
similarity index 100%
rename from src/Avalonia.Input/KeyboardNavigation.cs
rename to src/Avalonia.Base/Input/KeyboardNavigation.cs
diff --git a/src/Avalonia.Input/KeyboardNavigationHandler.cs b/src/Avalonia.Base/Input/KeyboardNavigationHandler.cs
similarity index 100%
rename from src/Avalonia.Input/KeyboardNavigationHandler.cs
rename to src/Avalonia.Base/Input/KeyboardNavigationHandler.cs
diff --git a/src/Avalonia.Input/KeyboardNavigationMode.cs b/src/Avalonia.Base/Input/KeyboardNavigationMode.cs
similarity index 100%
rename from src/Avalonia.Input/KeyboardNavigationMode.cs
rename to src/Avalonia.Base/Input/KeyboardNavigationMode.cs
diff --git a/src/Avalonia.Input/MouseDevice.cs b/src/Avalonia.Base/Input/MouseDevice.cs
similarity index 100%
rename from src/Avalonia.Input/MouseDevice.cs
rename to src/Avalonia.Base/Input/MouseDevice.cs
diff --git a/src/Avalonia.Input/Navigation/FocusExtensions.cs b/src/Avalonia.Base/Input/Navigation/FocusExtensions.cs
similarity index 100%
rename from src/Avalonia.Input/Navigation/FocusExtensions.cs
rename to src/Avalonia.Base/Input/Navigation/FocusExtensions.cs
diff --git a/src/Avalonia.Input/Navigation/TabNavigation.cs b/src/Avalonia.Base/Input/Navigation/TabNavigation.cs
similarity index 100%
rename from src/Avalonia.Input/Navigation/TabNavigation.cs
rename to src/Avalonia.Base/Input/Navigation/TabNavigation.cs
diff --git a/src/Avalonia.Input/NavigationDirection.cs b/src/Avalonia.Base/Input/NavigationDirection.cs
similarity index 100%
rename from src/Avalonia.Input/NavigationDirection.cs
rename to src/Avalonia.Base/Input/NavigationDirection.cs
diff --git a/src/Avalonia.Input/NavigationMethod.cs b/src/Avalonia.Base/Input/NavigationMethod.cs
similarity index 100%
rename from src/Avalonia.Input/NavigationMethod.cs
rename to src/Avalonia.Base/Input/NavigationMethod.cs
diff --git a/src/Avalonia.Input/Platform/IClipboard.cs b/src/Avalonia.Base/Input/Platform/IClipboard.cs
similarity index 100%
rename from src/Avalonia.Input/Platform/IClipboard.cs
rename to src/Avalonia.Base/Input/Platform/IClipboard.cs
diff --git a/src/Avalonia.Input/Platform/IPlatformDragSource.cs b/src/Avalonia.Base/Input/Platform/IPlatformDragSource.cs
similarity index 100%
rename from src/Avalonia.Input/Platform/IPlatformDragSource.cs
rename to src/Avalonia.Base/Input/Platform/IPlatformDragSource.cs
diff --git a/src/Avalonia.Input/Platform/PlatformHotkeyConfiguration.cs b/src/Avalonia.Base/Input/Platform/PlatformHotkeyConfiguration.cs
similarity index 100%
rename from src/Avalonia.Input/Platform/PlatformHotkeyConfiguration.cs
rename to src/Avalonia.Base/Input/Platform/PlatformHotkeyConfiguration.cs
diff --git a/src/Avalonia.Input/Pointer.cs b/src/Avalonia.Base/Input/Pointer.cs
similarity index 100%
rename from src/Avalonia.Input/Pointer.cs
rename to src/Avalonia.Base/Input/Pointer.cs
diff --git a/src/Avalonia.Input/PointerDeltaEventArgs.cs b/src/Avalonia.Base/Input/PointerDeltaEventArgs.cs
similarity index 100%
rename from src/Avalonia.Input/PointerDeltaEventArgs.cs
rename to src/Avalonia.Base/Input/PointerDeltaEventArgs.cs
diff --git a/src/Avalonia.Input/PointerEventArgs.cs b/src/Avalonia.Base/Input/PointerEventArgs.cs
similarity index 100%
rename from src/Avalonia.Input/PointerEventArgs.cs
rename to src/Avalonia.Base/Input/PointerEventArgs.cs
diff --git a/src/Avalonia.Input/PointerPoint.cs b/src/Avalonia.Base/Input/PointerPoint.cs
similarity index 100%
rename from src/Avalonia.Input/PointerPoint.cs
rename to src/Avalonia.Base/Input/PointerPoint.cs
diff --git a/src/Avalonia.Input/PointerWheelEventArgs.cs b/src/Avalonia.Base/Input/PointerWheelEventArgs.cs
similarity index 100%
rename from src/Avalonia.Input/PointerWheelEventArgs.cs
rename to src/Avalonia.Base/Input/PointerWheelEventArgs.cs
diff --git a/src/Avalonia.Input/Raw/IDragDropDevice.cs b/src/Avalonia.Base/Input/Raw/IDragDropDevice.cs
similarity index 100%
rename from src/Avalonia.Input/Raw/IDragDropDevice.cs
rename to src/Avalonia.Base/Input/Raw/IDragDropDevice.cs
diff --git a/src/Avalonia.Input/Raw/RawDragEvent.cs b/src/Avalonia.Base/Input/Raw/RawDragEvent.cs
similarity index 100%
rename from src/Avalonia.Input/Raw/RawDragEvent.cs
rename to src/Avalonia.Base/Input/Raw/RawDragEvent.cs
diff --git a/src/Avalonia.Input/Raw/RawDragEventType.cs b/src/Avalonia.Base/Input/Raw/RawDragEventType.cs
similarity index 100%
rename from src/Avalonia.Input/Raw/RawDragEventType.cs
rename to src/Avalonia.Base/Input/Raw/RawDragEventType.cs
diff --git a/src/Avalonia.Input/Raw/RawInputEventArgs.cs b/src/Avalonia.Base/Input/Raw/RawInputEventArgs.cs
similarity index 100%
rename from src/Avalonia.Input/Raw/RawInputEventArgs.cs
rename to src/Avalonia.Base/Input/Raw/RawInputEventArgs.cs
diff --git a/src/Avalonia.Input/Raw/RawKeyEventArgs.cs b/src/Avalonia.Base/Input/Raw/RawKeyEventArgs.cs
similarity index 100%
rename from src/Avalonia.Input/Raw/RawKeyEventArgs.cs
rename to src/Avalonia.Base/Input/Raw/RawKeyEventArgs.cs
diff --git a/src/Avalonia.Input/Raw/RawMouseWheelEventArgs.cs b/src/Avalonia.Base/Input/Raw/RawMouseWheelEventArgs.cs
similarity index 100%
rename from src/Avalonia.Input/Raw/RawMouseWheelEventArgs.cs
rename to src/Avalonia.Base/Input/Raw/RawMouseWheelEventArgs.cs
diff --git a/src/Avalonia.Input/Raw/RawPointerEventArgs.cs b/src/Avalonia.Base/Input/Raw/RawPointerEventArgs.cs
similarity index 100%
rename from src/Avalonia.Input/Raw/RawPointerEventArgs.cs
rename to src/Avalonia.Base/Input/Raw/RawPointerEventArgs.cs
diff --git a/src/Avalonia.Input/Raw/RawPointerGestureEventArgs.cs b/src/Avalonia.Base/Input/Raw/RawPointerGestureEventArgs.cs
similarity index 100%
rename from src/Avalonia.Input/Raw/RawPointerGestureEventArgs.cs
rename to src/Avalonia.Base/Input/Raw/RawPointerGestureEventArgs.cs
diff --git a/src/Avalonia.Input/Raw/RawSizeEventArgs.cs b/src/Avalonia.Base/Input/Raw/RawSizeEventArgs.cs
similarity index 100%
rename from src/Avalonia.Input/Raw/RawSizeEventArgs.cs
rename to src/Avalonia.Base/Input/Raw/RawSizeEventArgs.cs
diff --git a/src/Avalonia.Input/Raw/RawTextInputEventArgs.cs b/src/Avalonia.Base/Input/Raw/RawTextInputEventArgs.cs
similarity index 100%
rename from src/Avalonia.Input/Raw/RawTextInputEventArgs.cs
rename to src/Avalonia.Base/Input/Raw/RawTextInputEventArgs.cs
diff --git a/src/Avalonia.Input/Raw/RawTouchEventArgs.cs b/src/Avalonia.Base/Input/Raw/RawTouchEventArgs.cs
similarity index 100%
rename from src/Avalonia.Input/Raw/RawTouchEventArgs.cs
rename to src/Avalonia.Base/Input/Raw/RawTouchEventArgs.cs
diff --git a/src/Avalonia.Input/ScrollGestureEventArgs.cs b/src/Avalonia.Base/Input/ScrollGestureEventArgs.cs
similarity index 100%
rename from src/Avalonia.Input/ScrollGestureEventArgs.cs
rename to src/Avalonia.Base/Input/ScrollGestureEventArgs.cs
diff --git a/src/Avalonia.Input/TappedEventArgs.cs b/src/Avalonia.Base/Input/TappedEventArgs.cs
similarity index 100%
rename from src/Avalonia.Input/TappedEventArgs.cs
rename to src/Avalonia.Base/Input/TappedEventArgs.cs
diff --git a/src/Avalonia.Input/TextInput/ITextInputMethodClient.cs b/src/Avalonia.Base/Input/TextInput/ITextInputMethodClient.cs
similarity index 100%
rename from src/Avalonia.Input/TextInput/ITextInputMethodClient.cs
rename to src/Avalonia.Base/Input/TextInput/ITextInputMethodClient.cs
diff --git a/src/Avalonia.Input/TextInput/ITextInputMethodImpl.cs b/src/Avalonia.Base/Input/TextInput/ITextInputMethodImpl.cs
similarity index 100%
rename from src/Avalonia.Input/TextInput/ITextInputMethodImpl.cs
rename to src/Avalonia.Base/Input/TextInput/ITextInputMethodImpl.cs
diff --git a/src/Avalonia.Input/TextInput/InputMethodManager.cs b/src/Avalonia.Base/Input/TextInput/InputMethodManager.cs
similarity index 100%
rename from src/Avalonia.Input/TextInput/InputMethodManager.cs
rename to src/Avalonia.Base/Input/TextInput/InputMethodManager.cs
diff --git a/src/Avalonia.Input/TextInput/TextInputContentType.cs b/src/Avalonia.Base/Input/TextInput/TextInputContentType.cs
similarity index 100%
rename from src/Avalonia.Input/TextInput/TextInputContentType.cs
rename to src/Avalonia.Base/Input/TextInput/TextInputContentType.cs
diff --git a/src/Avalonia.Input/TextInput/TextInputMethodClientRequestedEventArgs.cs b/src/Avalonia.Base/Input/TextInput/TextInputMethodClientRequestedEventArgs.cs
similarity index 100%
rename from src/Avalonia.Input/TextInput/TextInputMethodClientRequestedEventArgs.cs
rename to src/Avalonia.Base/Input/TextInput/TextInputMethodClientRequestedEventArgs.cs
diff --git a/src/Avalonia.Input/TextInput/TextInputOptions.cs b/src/Avalonia.Base/Input/TextInput/TextInputOptions.cs
similarity index 100%
rename from src/Avalonia.Input/TextInput/TextInputOptions.cs
rename to src/Avalonia.Base/Input/TextInput/TextInputOptions.cs
diff --git a/src/Avalonia.Input/TextInput/TransformTrackingHelper.cs b/src/Avalonia.Base/Input/TextInput/TransformTrackingHelper.cs
similarity index 100%
rename from src/Avalonia.Input/TextInput/TransformTrackingHelper.cs
rename to src/Avalonia.Base/Input/TextInput/TransformTrackingHelper.cs
diff --git a/src/Avalonia.Input/TextInputEventArgs.cs b/src/Avalonia.Base/Input/TextInputEventArgs.cs
similarity index 100%
rename from src/Avalonia.Input/TextInputEventArgs.cs
rename to src/Avalonia.Base/Input/TextInputEventArgs.cs
diff --git a/src/Avalonia.Input/TouchDevice.cs b/src/Avalonia.Base/Input/TouchDevice.cs
similarity index 100%
rename from src/Avalonia.Input/TouchDevice.cs
rename to src/Avalonia.Base/Input/TouchDevice.cs
diff --git a/src/Avalonia.Input/VectorEventArgs.cs b/src/Avalonia.Base/Input/VectorEventArgs.cs
similarity index 100%
rename from src/Avalonia.Input/VectorEventArgs.cs
rename to src/Avalonia.Base/Input/VectorEventArgs.cs
diff --git a/src/Avalonia.Interactivity/EventRoute.cs b/src/Avalonia.Base/Interactivity/EventRoute.cs
similarity index 100%
rename from src/Avalonia.Interactivity/EventRoute.cs
rename to src/Avalonia.Base/Interactivity/EventRoute.cs
diff --git a/src/Avalonia.Interactivity/IInteractive.cs b/src/Avalonia.Base/Interactivity/IInteractive.cs
similarity index 100%
rename from src/Avalonia.Interactivity/IInteractive.cs
rename to src/Avalonia.Base/Interactivity/IInteractive.cs
diff --git a/src/Avalonia.Interactivity/Interactive.cs b/src/Avalonia.Base/Interactivity/Interactive.cs
similarity index 100%
rename from src/Avalonia.Interactivity/Interactive.cs
rename to src/Avalonia.Base/Interactivity/Interactive.cs
diff --git a/src/Avalonia.Interactivity/InteractiveExtensions.cs b/src/Avalonia.Base/Interactivity/InteractiveExtensions.cs
similarity index 100%
rename from src/Avalonia.Interactivity/InteractiveExtensions.cs
rename to src/Avalonia.Base/Interactivity/InteractiveExtensions.cs
diff --git a/src/Avalonia.Interactivity/RoutedEvent.cs b/src/Avalonia.Base/Interactivity/RoutedEvent.cs
similarity index 100%
rename from src/Avalonia.Interactivity/RoutedEvent.cs
rename to src/Avalonia.Base/Interactivity/RoutedEvent.cs
diff --git a/src/Avalonia.Interactivity/RoutedEventArgs.cs b/src/Avalonia.Base/Interactivity/RoutedEventArgs.cs
similarity index 100%
rename from src/Avalonia.Interactivity/RoutedEventArgs.cs
rename to src/Avalonia.Base/Interactivity/RoutedEventArgs.cs
diff --git a/src/Avalonia.Interactivity/RoutedEventRegistry.cs b/src/Avalonia.Base/Interactivity/RoutedEventRegistry.cs
similarity index 100%
rename from src/Avalonia.Interactivity/RoutedEventRegistry.cs
rename to src/Avalonia.Base/Interactivity/RoutedEventRegistry.cs
diff --git a/src/Avalonia.Layout/AttachedLayout.cs b/src/Avalonia.Base/Layout/AttachedLayout.cs
similarity index 100%
rename from src/Avalonia.Layout/AttachedLayout.cs
rename to src/Avalonia.Base/Layout/AttachedLayout.cs
diff --git a/src/Avalonia.Layout/EffectiveViewportChangedEventArgs.cs b/src/Avalonia.Base/Layout/EffectiveViewportChangedEventArgs.cs
similarity index 100%
rename from src/Avalonia.Layout/EffectiveViewportChangedEventArgs.cs
rename to src/Avalonia.Base/Layout/EffectiveViewportChangedEventArgs.cs
diff --git a/src/Avalonia.Layout/ElementManager.cs b/src/Avalonia.Base/Layout/ElementManager.cs
similarity index 100%
rename from src/Avalonia.Layout/ElementManager.cs
rename to src/Avalonia.Base/Layout/ElementManager.cs
diff --git a/src/Avalonia.Layout/FlowLayoutAlgorithm.cs b/src/Avalonia.Base/Layout/FlowLayoutAlgorithm.cs
similarity index 100%
rename from src/Avalonia.Layout/FlowLayoutAlgorithm.cs
rename to src/Avalonia.Base/Layout/FlowLayoutAlgorithm.cs
diff --git a/src/Avalonia.Layout/IEmbeddedLayoutRoot.cs b/src/Avalonia.Base/Layout/IEmbeddedLayoutRoot.cs
similarity index 100%
rename from src/Avalonia.Layout/IEmbeddedLayoutRoot.cs
rename to src/Avalonia.Base/Layout/IEmbeddedLayoutRoot.cs
diff --git a/src/Avalonia.Layout/IFlowLayoutAlgorithmDelegates.cs b/src/Avalonia.Base/Layout/IFlowLayoutAlgorithmDelegates.cs
similarity index 100%
rename from src/Avalonia.Layout/IFlowLayoutAlgorithmDelegates.cs
rename to src/Avalonia.Base/Layout/IFlowLayoutAlgorithmDelegates.cs
diff --git a/src/Avalonia.Layout/ILayoutManager.cs b/src/Avalonia.Base/Layout/ILayoutManager.cs
similarity index 100%
rename from src/Avalonia.Layout/ILayoutManager.cs
rename to src/Avalonia.Base/Layout/ILayoutManager.cs
diff --git a/src/Avalonia.Layout/ILayoutRoot.cs b/src/Avalonia.Base/Layout/ILayoutRoot.cs
similarity index 100%
rename from src/Avalonia.Layout/ILayoutRoot.cs
rename to src/Avalonia.Base/Layout/ILayoutRoot.cs
diff --git a/src/Avalonia.Layout/ILayoutable.cs b/src/Avalonia.Base/Layout/ILayoutable.cs
similarity index 100%
rename from src/Avalonia.Layout/ILayoutable.cs
rename to src/Avalonia.Base/Layout/ILayoutable.cs
diff --git a/src/Avalonia.Layout/LayoutContext.cs b/src/Avalonia.Base/Layout/LayoutContext.cs
similarity index 100%
rename from src/Avalonia.Layout/LayoutContext.cs
rename to src/Avalonia.Base/Layout/LayoutContext.cs
diff --git a/src/Avalonia.Layout/LayoutContextAdapter.cs b/src/Avalonia.Base/Layout/LayoutContextAdapter.cs
similarity index 100%
rename from src/Avalonia.Layout/LayoutContextAdapter.cs
rename to src/Avalonia.Base/Layout/LayoutContextAdapter.cs
diff --git a/src/Avalonia.Layout/LayoutExtensions.cs b/src/Avalonia.Base/Layout/LayoutExtensions.cs
similarity index 100%
rename from src/Avalonia.Layout/LayoutExtensions.cs
rename to src/Avalonia.Base/Layout/LayoutExtensions.cs
diff --git a/src/Avalonia.Layout/LayoutHelper.cs b/src/Avalonia.Base/Layout/LayoutHelper.cs
similarity index 100%
rename from src/Avalonia.Layout/LayoutHelper.cs
rename to src/Avalonia.Base/Layout/LayoutHelper.cs
diff --git a/src/Avalonia.Layout/LayoutManager.cs b/src/Avalonia.Base/Layout/LayoutManager.cs
similarity index 100%
rename from src/Avalonia.Layout/LayoutManager.cs
rename to src/Avalonia.Base/Layout/LayoutManager.cs
diff --git a/src/Avalonia.Layout/LayoutQueue.cs b/src/Avalonia.Base/Layout/LayoutQueue.cs
similarity index 100%
rename from src/Avalonia.Layout/LayoutQueue.cs
rename to src/Avalonia.Base/Layout/LayoutQueue.cs
diff --git a/src/Avalonia.Layout/Layoutable.cs b/src/Avalonia.Base/Layout/Layoutable.cs
similarity index 100%
rename from src/Avalonia.Layout/Layoutable.cs
rename to src/Avalonia.Base/Layout/Layoutable.cs
diff --git a/src/Avalonia.Layout/NonVirtualizingLayout.cs b/src/Avalonia.Base/Layout/NonVirtualizingLayout.cs
similarity index 100%
rename from src/Avalonia.Layout/NonVirtualizingLayout.cs
rename to src/Avalonia.Base/Layout/NonVirtualizingLayout.cs
diff --git a/src/Avalonia.Layout/NonVirtualizingLayoutContext.cs b/src/Avalonia.Base/Layout/NonVirtualizingLayoutContext.cs
similarity index 100%
rename from src/Avalonia.Layout/NonVirtualizingLayoutContext.cs
rename to src/Avalonia.Base/Layout/NonVirtualizingLayoutContext.cs
diff --git a/src/Avalonia.Layout/NonVirtualizingStackLayout.cs b/src/Avalonia.Base/Layout/NonVirtualizingStackLayout.cs
similarity index 100%
rename from src/Avalonia.Layout/NonVirtualizingStackLayout.cs
rename to src/Avalonia.Base/Layout/NonVirtualizingStackLayout.cs
diff --git a/src/Avalonia.Layout/Orientation.cs b/src/Avalonia.Base/Layout/Orientation.cs
similarity index 100%
rename from src/Avalonia.Layout/Orientation.cs
rename to src/Avalonia.Base/Layout/Orientation.cs
diff --git a/src/Avalonia.Layout/OrientationBasedMeasures.cs b/src/Avalonia.Base/Layout/OrientationBasedMeasures.cs
similarity index 100%
rename from src/Avalonia.Layout/OrientationBasedMeasures.cs
rename to src/Avalonia.Base/Layout/OrientationBasedMeasures.cs
diff --git a/src/Avalonia.Layout/StackLayout.cs b/src/Avalonia.Base/Layout/StackLayout.cs
similarity index 100%
rename from src/Avalonia.Layout/StackLayout.cs
rename to src/Avalonia.Base/Layout/StackLayout.cs
diff --git a/src/Avalonia.Layout/StackLayoutState.cs b/src/Avalonia.Base/Layout/StackLayoutState.cs
similarity index 100%
rename from src/Avalonia.Layout/StackLayoutState.cs
rename to src/Avalonia.Base/Layout/StackLayoutState.cs
diff --git a/src/Avalonia.Layout/UniformGridLayout.cs b/src/Avalonia.Base/Layout/UniformGridLayout.cs
similarity index 100%
rename from src/Avalonia.Layout/UniformGridLayout.cs
rename to src/Avalonia.Base/Layout/UniformGridLayout.cs
diff --git a/src/Avalonia.Layout/UniformGridLayoutState.cs b/src/Avalonia.Base/Layout/UniformGridLayoutState.cs
similarity index 100%
rename from src/Avalonia.Layout/UniformGridLayoutState.cs
rename to src/Avalonia.Base/Layout/UniformGridLayoutState.cs
diff --git a/src/Avalonia.Layout/Utils/ListUtils.cs b/src/Avalonia.Base/Layout/Utils/ListUtils.cs
similarity index 100%
rename from src/Avalonia.Layout/Utils/ListUtils.cs
rename to src/Avalonia.Base/Layout/Utils/ListUtils.cs
diff --git a/src/Avalonia.Layout/VirtualLayoutContextAdapter.cs b/src/Avalonia.Base/Layout/VirtualLayoutContextAdapter.cs
similarity index 100%
rename from src/Avalonia.Layout/VirtualLayoutContextAdapter.cs
rename to src/Avalonia.Base/Layout/VirtualLayoutContextAdapter.cs
diff --git a/src/Avalonia.Layout/VirtualizingLayout.cs b/src/Avalonia.Base/Layout/VirtualizingLayout.cs
similarity index 100%
rename from src/Avalonia.Layout/VirtualizingLayout.cs
rename to src/Avalonia.Base/Layout/VirtualizingLayout.cs
diff --git a/src/Avalonia.Layout/VirtualizingLayoutContext.cs b/src/Avalonia.Base/Layout/VirtualizingLayoutContext.cs
similarity index 100%
rename from src/Avalonia.Layout/VirtualizingLayoutContext.cs
rename to src/Avalonia.Base/Layout/VirtualizingLayoutContext.cs
diff --git a/src/Avalonia.Layout/WrapLayout/UvBounds.cs b/src/Avalonia.Base/Layout/WrapLayout/UvBounds.cs
similarity index 100%
rename from src/Avalonia.Layout/WrapLayout/UvBounds.cs
rename to src/Avalonia.Base/Layout/WrapLayout/UvBounds.cs
diff --git a/src/Avalonia.Layout/WrapLayout/UvMeasure.cs b/src/Avalonia.Base/Layout/WrapLayout/UvMeasure.cs
similarity index 100%
rename from src/Avalonia.Layout/WrapLayout/UvMeasure.cs
rename to src/Avalonia.Base/Layout/WrapLayout/UvMeasure.cs
diff --git a/src/Avalonia.Layout/WrapLayout/WrapItem.cs b/src/Avalonia.Base/Layout/WrapLayout/WrapItem.cs
similarity index 100%
rename from src/Avalonia.Layout/WrapLayout/WrapItem.cs
rename to src/Avalonia.Base/Layout/WrapLayout/WrapItem.cs
diff --git a/src/Avalonia.Layout/WrapLayout/WrapLayout.cs b/src/Avalonia.Base/Layout/WrapLayout/WrapLayout.cs
similarity index 100%
rename from src/Avalonia.Layout/WrapLayout/WrapLayout.cs
rename to src/Avalonia.Base/Layout/WrapLayout/WrapLayout.cs
diff --git a/src/Avalonia.Layout/WrapLayout/WrapLayoutState.cs b/src/Avalonia.Base/Layout/WrapLayout/WrapLayoutState.cs
similarity index 100%
rename from src/Avalonia.Layout/WrapLayout/WrapLayoutState.cs
rename to src/Avalonia.Base/Layout/WrapLayout/WrapLayoutState.cs
diff --git a/src/Avalonia.Styling/LogicalTree/ChildIndexChangedEventArgs.cs b/src/Avalonia.Base/LogicalTree/ChildIndexChangedEventArgs.cs
similarity index 100%
rename from src/Avalonia.Styling/LogicalTree/ChildIndexChangedEventArgs.cs
rename to src/Avalonia.Base/LogicalTree/ChildIndexChangedEventArgs.cs
diff --git a/src/Avalonia.Styling/LogicalTree/ControlLocator.cs b/src/Avalonia.Base/LogicalTree/ControlLocator.cs
similarity index 100%
rename from src/Avalonia.Styling/LogicalTree/ControlLocator.cs
rename to src/Avalonia.Base/LogicalTree/ControlLocator.cs
diff --git a/src/Avalonia.Styling/LogicalTree/IChildIndexProvider.cs b/src/Avalonia.Base/LogicalTree/IChildIndexProvider.cs
similarity index 100%
rename from src/Avalonia.Styling/LogicalTree/IChildIndexProvider.cs
rename to src/Avalonia.Base/LogicalTree/IChildIndexProvider.cs
diff --git a/src/Avalonia.Styling/LogicalTree/ILogical.cs b/src/Avalonia.Base/LogicalTree/ILogical.cs
similarity index 100%
rename from src/Avalonia.Styling/LogicalTree/ILogical.cs
rename to src/Avalonia.Base/LogicalTree/ILogical.cs
diff --git a/src/Avalonia.Styling/LogicalTree/ILogicalRoot.cs b/src/Avalonia.Base/LogicalTree/ILogicalRoot.cs
similarity index 100%
rename from src/Avalonia.Styling/LogicalTree/ILogicalRoot.cs
rename to src/Avalonia.Base/LogicalTree/ILogicalRoot.cs
diff --git a/src/Avalonia.Styling/LogicalTree/LogicalExtensions.cs b/src/Avalonia.Base/LogicalTree/LogicalExtensions.cs
similarity index 100%
rename from src/Avalonia.Styling/LogicalTree/LogicalExtensions.cs
rename to src/Avalonia.Base/LogicalTree/LogicalExtensions.cs
diff --git a/src/Avalonia.Styling/LogicalTree/LogicalTreeAttachmentEventArgs.cs b/src/Avalonia.Base/LogicalTree/LogicalTreeAttachmentEventArgs.cs
similarity index 100%
rename from src/Avalonia.Styling/LogicalTree/LogicalTreeAttachmentEventArgs.cs
rename to src/Avalonia.Base/LogicalTree/LogicalTreeAttachmentEventArgs.cs
diff --git a/src/Avalonia.Visuals/Matrix.cs b/src/Avalonia.Base/Matrix.cs
similarity index 100%
rename from src/Avalonia.Visuals/Matrix.cs
rename to src/Avalonia.Base/Matrix.cs
diff --git a/src/Avalonia.Visuals/Media/AcrylicBackgroundSource.cs b/src/Avalonia.Base/Media/AcrylicBackgroundSource.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/AcrylicBackgroundSource.cs
rename to src/Avalonia.Base/Media/AcrylicBackgroundSource.cs
diff --git a/src/Avalonia.Visuals/Media/AlignmentX.cs b/src/Avalonia.Base/Media/AlignmentX.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/AlignmentX.cs
rename to src/Avalonia.Base/Media/AlignmentX.cs
diff --git a/src/Avalonia.Visuals/Media/AlignmentY.cs b/src/Avalonia.Base/Media/AlignmentY.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/AlignmentY.cs
rename to src/Avalonia.Base/Media/AlignmentY.cs
diff --git a/src/Avalonia.Visuals/Media/ArcSegment.cs b/src/Avalonia.Base/Media/ArcSegment.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/ArcSegment.cs
rename to src/Avalonia.Base/Media/ArcSegment.cs
diff --git a/src/Avalonia.Visuals/Media/BaselineAlignment.cs b/src/Avalonia.Base/Media/BaselineAlignment.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/BaselineAlignment.cs
rename to src/Avalonia.Base/Media/BaselineAlignment.cs
diff --git a/src/Avalonia.Visuals/Media/BezierSegment .cs b/src/Avalonia.Base/Media/BezierSegment .cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/BezierSegment .cs
rename to src/Avalonia.Base/Media/BezierSegment .cs
diff --git a/src/Avalonia.Visuals/Media/BoxShadow.cs b/src/Avalonia.Base/Media/BoxShadow.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/BoxShadow.cs
rename to src/Avalonia.Base/Media/BoxShadow.cs
diff --git a/src/Avalonia.Visuals/Media/BoxShadows.cs b/src/Avalonia.Base/Media/BoxShadows.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/BoxShadows.cs
rename to src/Avalonia.Base/Media/BoxShadows.cs
diff --git a/src/Avalonia.Visuals/Media/Brush.cs b/src/Avalonia.Base/Media/Brush.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/Brush.cs
rename to src/Avalonia.Base/Media/Brush.cs
diff --git a/src/Avalonia.Visuals/Media/BrushConverter.cs b/src/Avalonia.Base/Media/BrushConverter.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/BrushConverter.cs
rename to src/Avalonia.Base/Media/BrushConverter.cs
diff --git a/src/Avalonia.Visuals/Media/BrushExtensions.cs b/src/Avalonia.Base/Media/BrushExtensions.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/BrushExtensions.cs
rename to src/Avalonia.Base/Media/BrushExtensions.cs
diff --git a/src/Avalonia.Visuals/Media/BrushMappingMode.cs b/src/Avalonia.Base/Media/BrushMappingMode.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/BrushMappingMode.cs
rename to src/Avalonia.Base/Media/BrushMappingMode.cs
diff --git a/src/Avalonia.Visuals/Media/Brushes.cs b/src/Avalonia.Base/Media/Brushes.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/Brushes.cs
rename to src/Avalonia.Base/Media/Brushes.cs
diff --git a/src/Avalonia.Visuals/Media/CharacterHit.cs b/src/Avalonia.Base/Media/CharacterHit.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/CharacterHit.cs
rename to src/Avalonia.Base/Media/CharacterHit.cs
diff --git a/src/Avalonia.Visuals/Media/Color.cs b/src/Avalonia.Base/Media/Color.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/Color.cs
rename to src/Avalonia.Base/Media/Color.cs
diff --git a/src/Avalonia.Visuals/Media/Colors.cs b/src/Avalonia.Base/Media/Colors.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/Colors.cs
rename to src/Avalonia.Base/Media/Colors.cs
diff --git a/src/Avalonia.Visuals/Media/ConicGradientBrush.cs b/src/Avalonia.Base/Media/ConicGradientBrush.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/ConicGradientBrush.cs
rename to src/Avalonia.Base/Media/ConicGradientBrush.cs
diff --git a/src/Avalonia.Visuals/Media/DashStyle.cs b/src/Avalonia.Base/Media/DashStyle.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/DashStyle.cs
rename to src/Avalonia.Base/Media/DashStyle.cs
diff --git a/src/Avalonia.Visuals/Media/Drawing.cs b/src/Avalonia.Base/Media/Drawing.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/Drawing.cs
rename to src/Avalonia.Base/Media/Drawing.cs
diff --git a/src/Avalonia.Visuals/Media/DrawingContext.cs b/src/Avalonia.Base/Media/DrawingContext.cs
similarity index 99%
rename from src/Avalonia.Visuals/Media/DrawingContext.cs
rename to src/Avalonia.Base/Media/DrawingContext.cs
index d0a73ca9a8..d0f3b9e21a 100644
--- a/src/Avalonia.Visuals/Media/DrawingContext.cs
+++ b/src/Avalonia.Base/Media/DrawingContext.cs
@@ -4,7 +4,7 @@ using Avalonia.Platform;
using Avalonia.Rendering.SceneGraph;
using Avalonia.Threading;
using Avalonia.Utilities;
-using Avalonia.Visuals.Media.Imaging;
+using Avalonia.Media.Imaging;
namespace Avalonia.Media
{
diff --git a/src/Avalonia.Visuals/Media/DrawingGroup.cs b/src/Avalonia.Base/Media/DrawingGroup.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/DrawingGroup.cs
rename to src/Avalonia.Base/Media/DrawingGroup.cs
diff --git a/src/Avalonia.Visuals/Media/DrawingImage.cs b/src/Avalonia.Base/Media/DrawingImage.cs
similarity index 96%
rename from src/Avalonia.Visuals/Media/DrawingImage.cs
rename to src/Avalonia.Base/Media/DrawingImage.cs
index b4441f803f..38ddbdfaed 100644
--- a/src/Avalonia.Visuals/Media/DrawingImage.cs
+++ b/src/Avalonia.Base/Media/DrawingImage.cs
@@ -1,8 +1,6 @@
using System;
-using Avalonia.Data;
using Avalonia.Metadata;
-using Avalonia.Platform;
-using Avalonia.Visuals.Media.Imaging;
+using Avalonia.Media.Imaging;
namespace Avalonia.Media
{
diff --git a/src/Avalonia.Visuals/Media/EllipseGeometry.cs b/src/Avalonia.Base/Media/EllipseGeometry.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/EllipseGeometry.cs
rename to src/Avalonia.Base/Media/EllipseGeometry.cs
diff --git a/src/Avalonia.Visuals/Media/ExperimentalAcrylicMaterial.cs b/src/Avalonia.Base/Media/ExperimentalAcrylicMaterial.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/ExperimentalAcrylicMaterial.cs
rename to src/Avalonia.Base/Media/ExperimentalAcrylicMaterial.cs
diff --git a/src/Avalonia.Visuals/Media/FillRule.cs b/src/Avalonia.Base/Media/FillRule.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/FillRule.cs
rename to src/Avalonia.Base/Media/FillRule.cs
diff --git a/src/Avalonia.Visuals/Media/FlowDirection.cs b/src/Avalonia.Base/Media/FlowDirection.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/FlowDirection.cs
rename to src/Avalonia.Base/Media/FlowDirection.cs
diff --git a/src/Avalonia.Visuals/Media/FontFallback.cs b/src/Avalonia.Base/Media/FontFallback.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/FontFallback.cs
rename to src/Avalonia.Base/Media/FontFallback.cs
diff --git a/src/Avalonia.Visuals/Media/FontFamily.cs b/src/Avalonia.Base/Media/FontFamily.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/FontFamily.cs
rename to src/Avalonia.Base/Media/FontFamily.cs
diff --git a/src/Avalonia.Visuals/Media/FontManager.cs b/src/Avalonia.Base/Media/FontManager.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/FontManager.cs
rename to src/Avalonia.Base/Media/FontManager.cs
diff --git a/src/Avalonia.Visuals/Media/FontManagerOptions.cs b/src/Avalonia.Base/Media/FontManagerOptions.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/FontManagerOptions.cs
rename to src/Avalonia.Base/Media/FontManagerOptions.cs
diff --git a/src/Avalonia.Visuals/Media/FontStretch.cs b/src/Avalonia.Base/Media/FontStretch.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/FontStretch.cs
rename to src/Avalonia.Base/Media/FontStretch.cs
diff --git a/src/Avalonia.Visuals/Media/FontStyle.cs b/src/Avalonia.Base/Media/FontStyle.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/FontStyle.cs
rename to src/Avalonia.Base/Media/FontStyle.cs
diff --git a/src/Avalonia.Visuals/Media/FontWeight.cs b/src/Avalonia.Base/Media/FontWeight.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/FontWeight.cs
rename to src/Avalonia.Base/Media/FontWeight.cs
diff --git a/src/Avalonia.Visuals/Media/Fonts/FamilyNameCollection.cs b/src/Avalonia.Base/Media/Fonts/FamilyNameCollection.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/Fonts/FamilyNameCollection.cs
rename to src/Avalonia.Base/Media/Fonts/FamilyNameCollection.cs
diff --git a/src/Avalonia.Visuals/Media/Fonts/FontFamilyKey.cs b/src/Avalonia.Base/Media/Fonts/FontFamilyKey.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/Fonts/FontFamilyKey.cs
rename to src/Avalonia.Base/Media/Fonts/FontFamilyKey.cs
diff --git a/src/Avalonia.Visuals/Media/Fonts/FontFamilyLoader.cs b/src/Avalonia.Base/Media/Fonts/FontFamilyLoader.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/Fonts/FontFamilyLoader.cs
rename to src/Avalonia.Base/Media/Fonts/FontFamilyLoader.cs
diff --git a/src/Avalonia.Visuals/Media/FormattedText.cs b/src/Avalonia.Base/Media/FormattedText.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/FormattedText.cs
rename to src/Avalonia.Base/Media/FormattedText.cs
diff --git a/src/Avalonia.Visuals/Media/Geometry.cs b/src/Avalonia.Base/Media/Geometry.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/Geometry.cs
rename to src/Avalonia.Base/Media/Geometry.cs
diff --git a/src/Avalonia.Visuals/Media/GeometryDrawing.cs b/src/Avalonia.Base/Media/GeometryDrawing.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/GeometryDrawing.cs
rename to src/Avalonia.Base/Media/GeometryDrawing.cs
diff --git a/src/Avalonia.Visuals/Media/GlyphRun.cs b/src/Avalonia.Base/Media/GlyphRun.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/GlyphRun.cs
rename to src/Avalonia.Base/Media/GlyphRun.cs
diff --git a/src/Avalonia.Visuals/Media/GlyphRunDrawing.cs b/src/Avalonia.Base/Media/GlyphRunDrawing.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/GlyphRunDrawing.cs
rename to src/Avalonia.Base/Media/GlyphRunDrawing.cs
diff --git a/src/Avalonia.Visuals/Media/GlyphRunMetrics.cs b/src/Avalonia.Base/Media/GlyphRunMetrics.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/GlyphRunMetrics.cs
rename to src/Avalonia.Base/Media/GlyphRunMetrics.cs
diff --git a/src/Avalonia.Visuals/Media/GlyphTypeface.cs b/src/Avalonia.Base/Media/GlyphTypeface.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/GlyphTypeface.cs
rename to src/Avalonia.Base/Media/GlyphTypeface.cs
diff --git a/src/Avalonia.Visuals/Media/GradientBrush.cs b/src/Avalonia.Base/Media/GradientBrush.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/GradientBrush.cs
rename to src/Avalonia.Base/Media/GradientBrush.cs
diff --git a/src/Avalonia.Visuals/Media/GradientSpreadMethod.cs b/src/Avalonia.Base/Media/GradientSpreadMethod.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/GradientSpreadMethod.cs
rename to src/Avalonia.Base/Media/GradientSpreadMethod.cs
diff --git a/src/Avalonia.Visuals/Media/GradientStop.cs b/src/Avalonia.Base/Media/GradientStop.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/GradientStop.cs
rename to src/Avalonia.Base/Media/GradientStop.cs
diff --git a/src/Avalonia.Visuals/Media/GradientStops.cs b/src/Avalonia.Base/Media/GradientStops.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/GradientStops.cs
rename to src/Avalonia.Base/Media/GradientStops.cs
diff --git a/src/Avalonia.Visuals/Media/HslColor.cs b/src/Avalonia.Base/Media/HslColor.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/HslColor.cs
rename to src/Avalonia.Base/Media/HslColor.cs
diff --git a/src/Avalonia.Visuals/Media/HsvColor.cs b/src/Avalonia.Base/Media/HsvColor.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/HsvColor.cs
rename to src/Avalonia.Base/Media/HsvColor.cs
diff --git a/src/Avalonia.Visuals/Media/IAffectsRender.cs b/src/Avalonia.Base/Media/IAffectsRender.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/IAffectsRender.cs
rename to src/Avalonia.Base/Media/IAffectsRender.cs
diff --git a/src/Avalonia.Visuals/Media/IBrush.cs b/src/Avalonia.Base/Media/IBrush.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/IBrush.cs
rename to src/Avalonia.Base/Media/IBrush.cs
diff --git a/src/Avalonia.Visuals/Media/IConicGradientBrush.cs b/src/Avalonia.Base/Media/IConicGradientBrush.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/IConicGradientBrush.cs
rename to src/Avalonia.Base/Media/IConicGradientBrush.cs
diff --git a/src/Avalonia.Visuals/Media/IDashStyle.cs b/src/Avalonia.Base/Media/IDashStyle.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/IDashStyle.cs
rename to src/Avalonia.Base/Media/IDashStyle.cs
diff --git a/src/Avalonia.Visuals/Media/IExperimentalAcrylicMaterial.cs b/src/Avalonia.Base/Media/IExperimentalAcrylicMaterial.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/IExperimentalAcrylicMaterial.cs
rename to src/Avalonia.Base/Media/IExperimentalAcrylicMaterial.cs
diff --git a/src/Avalonia.Visuals/Media/IGradientBrush.cs b/src/Avalonia.Base/Media/IGradientBrush.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/IGradientBrush.cs
rename to src/Avalonia.Base/Media/IGradientBrush.cs
diff --git a/src/Avalonia.Visuals/Media/IGradientStop.cs b/src/Avalonia.Base/Media/IGradientStop.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/IGradientStop.cs
rename to src/Avalonia.Base/Media/IGradientStop.cs
diff --git a/src/Avalonia.Visuals/Media/IImage.cs b/src/Avalonia.Base/Media/IImage.cs
similarity index 93%
rename from src/Avalonia.Visuals/Media/IImage.cs
rename to src/Avalonia.Base/Media/IImage.cs
index aff2a9ddf9..cbe25b7b58 100644
--- a/src/Avalonia.Visuals/Media/IImage.cs
+++ b/src/Avalonia.Base/Media/IImage.cs
@@ -1,5 +1,4 @@
-using Avalonia.Platform;
-using Avalonia.Visuals.Media.Imaging;
+using Avalonia.Media.Imaging;
namespace Avalonia.Media
{
diff --git a/src/Avalonia.Visuals/Media/IImageBrush.cs b/src/Avalonia.Base/Media/IImageBrush.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/IImageBrush.cs
rename to src/Avalonia.Base/Media/IImageBrush.cs
diff --git a/src/Avalonia.Visuals/Media/ILinearGradientBrush.cs b/src/Avalonia.Base/Media/ILinearGradientBrush.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/ILinearGradientBrush.cs
rename to src/Avalonia.Base/Media/ILinearGradientBrush.cs
diff --git a/src/Avalonia.Visuals/Media/IMutableBrush.cs b/src/Avalonia.Base/Media/IMutableBrush.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/IMutableBrush.cs
rename to src/Avalonia.Base/Media/IMutableBrush.cs
diff --git a/src/Avalonia.Visuals/Media/IMutableExperimentalAcrylicMaterial.cs b/src/Avalonia.Base/Media/IMutableExperimentalAcrylicMaterial.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/IMutableExperimentalAcrylicMaterial.cs
rename to src/Avalonia.Base/Media/IMutableExperimentalAcrylicMaterial.cs
diff --git a/src/Avalonia.Visuals/Media/IMutableTransform.cs b/src/Avalonia.Base/Media/IMutableTransform.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/IMutableTransform.cs
rename to src/Avalonia.Base/Media/IMutableTransform.cs
diff --git a/src/Avalonia.Visuals/Media/IPen.cs b/src/Avalonia.Base/Media/IPen.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/IPen.cs
rename to src/Avalonia.Base/Media/IPen.cs
diff --git a/src/Avalonia.Visuals/Media/IRadialGradientBrush.cs b/src/Avalonia.Base/Media/IRadialGradientBrush.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/IRadialGradientBrush.cs
rename to src/Avalonia.Base/Media/IRadialGradientBrush.cs
diff --git a/src/Avalonia.Visuals/Media/ISolidColorBrush.cs b/src/Avalonia.Base/Media/ISolidColorBrush.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/ISolidColorBrush.cs
rename to src/Avalonia.Base/Media/ISolidColorBrush.cs
diff --git a/src/Avalonia.Visuals/Media/ITileBrush.cs b/src/Avalonia.Base/Media/ITileBrush.cs
similarity index 97%
rename from src/Avalonia.Visuals/Media/ITileBrush.cs
rename to src/Avalonia.Base/Media/ITileBrush.cs
index 12fb221a89..991857eec9 100644
--- a/src/Avalonia.Visuals/Media/ITileBrush.cs
+++ b/src/Avalonia.Base/Media/ITileBrush.cs
@@ -1,4 +1,4 @@
-using Avalonia.Visuals.Media.Imaging;
+using Avalonia.Media.Imaging;
namespace Avalonia.Media
{
diff --git a/src/Avalonia.Visuals/Media/ITransform.cs b/src/Avalonia.Base/Media/ITransform.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/ITransform.cs
rename to src/Avalonia.Base/Media/ITransform.cs
diff --git a/src/Avalonia.Visuals/Media/IVisualBrush.cs b/src/Avalonia.Base/Media/IVisualBrush.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/IVisualBrush.cs
rename to src/Avalonia.Base/Media/IVisualBrush.cs
diff --git a/src/Avalonia.Visuals/Media/ImageBrush.cs b/src/Avalonia.Base/Media/ImageBrush.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/ImageBrush.cs
rename to src/Avalonia.Base/Media/ImageBrush.cs
diff --git a/src/Avalonia.Visuals/Media/ImageDrawing.cs b/src/Avalonia.Base/Media/ImageDrawing.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/ImageDrawing.cs
rename to src/Avalonia.Base/Media/ImageDrawing.cs
diff --git a/src/Avalonia.Visuals/Media/Imaging/Bitmap.cs b/src/Avalonia.Base/Media/Imaging/Bitmap.cs
similarity index 99%
rename from src/Avalonia.Visuals/Media/Imaging/Bitmap.cs
rename to src/Avalonia.Base/Media/Imaging/Bitmap.cs
index 647ce13528..5f1617d778 100644
--- a/src/Avalonia.Visuals/Media/Imaging/Bitmap.cs
+++ b/src/Avalonia.Base/Media/Imaging/Bitmap.cs
@@ -2,7 +2,6 @@ using System;
using System.IO;
using Avalonia.Platform;
using Avalonia.Utilities;
-using Avalonia.Visuals.Media.Imaging;
namespace Avalonia.Media.Imaging
{
diff --git a/src/Avalonia.Visuals/Media/Imaging/BitmapBlendingMode.cs b/src/Avalonia.Base/Media/Imaging/BitmapBlendingMode.cs
similarity index 97%
rename from src/Avalonia.Visuals/Media/Imaging/BitmapBlendingMode.cs
rename to src/Avalonia.Base/Media/Imaging/BitmapBlendingMode.cs
index 473b43dab3..eb39020939 100644
--- a/src/Avalonia.Visuals/Media/Imaging/BitmapBlendingMode.cs
+++ b/src/Avalonia.Base/Media/Imaging/BitmapBlendingMode.cs
@@ -1,4 +1,4 @@
-namespace Avalonia.Visuals.Media.Imaging
+namespace Avalonia.Media.Imaging
{
///
/// Controls the way the bitmaps are drawn together.
diff --git a/src/Avalonia.Visuals/Media/Imaging/BitmapInterpolationMode.cs b/src/Avalonia.Base/Media/Imaging/BitmapInterpolationMode.cs
similarity index 93%
rename from src/Avalonia.Visuals/Media/Imaging/BitmapInterpolationMode.cs
rename to src/Avalonia.Base/Media/Imaging/BitmapInterpolationMode.cs
index 5fa48a5ec8..7cdb5d8b9f 100644
--- a/src/Avalonia.Visuals/Media/Imaging/BitmapInterpolationMode.cs
+++ b/src/Avalonia.Base/Media/Imaging/BitmapInterpolationMode.cs
@@ -1,4 +1,4 @@
-namespace Avalonia.Visuals.Media.Imaging
+namespace Avalonia.Media.Imaging
{
///
/// Controls the performance and quality of bitmap scaling.
diff --git a/src/Avalonia.Visuals/Media/Imaging/CroppedBitmap.cs b/src/Avalonia.Base/Media/Imaging/CroppedBitmap.cs
similarity index 98%
rename from src/Avalonia.Visuals/Media/Imaging/CroppedBitmap.cs
rename to src/Avalonia.Base/Media/Imaging/CroppedBitmap.cs
index be1f6db561..70f9fbf567 100644
--- a/src/Avalonia.Visuals/Media/Imaging/CroppedBitmap.cs
+++ b/src/Avalonia.Base/Media/Imaging/CroppedBitmap.cs
@@ -1,5 +1,5 @@
using System;
-using Avalonia.Visuals.Media.Imaging;
+using Avalonia.Media.Imaging;
namespace Avalonia.Media.Imaging
{
diff --git a/src/Avalonia.Visuals/Media/Imaging/IBitmap.cs b/src/Avalonia.Base/Media/Imaging/IBitmap.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/Imaging/IBitmap.cs
rename to src/Avalonia.Base/Media/Imaging/IBitmap.cs
diff --git a/src/Avalonia.Visuals/Media/Imaging/RenderTargetBitmap.cs b/src/Avalonia.Base/Media/Imaging/RenderTargetBitmap.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/Imaging/RenderTargetBitmap.cs
rename to src/Avalonia.Base/Media/Imaging/RenderTargetBitmap.cs
diff --git a/src/Avalonia.Visuals/Media/Imaging/WriteableBitmap.cs b/src/Avalonia.Base/Media/Imaging/WriteableBitmap.cs
similarity index 98%
rename from src/Avalonia.Visuals/Media/Imaging/WriteableBitmap.cs
rename to src/Avalonia.Base/Media/Imaging/WriteableBitmap.cs
index 40a24db338..1f39b1344d 100644
--- a/src/Avalonia.Visuals/Media/Imaging/WriteableBitmap.cs
+++ b/src/Avalonia.Base/Media/Imaging/WriteableBitmap.cs
@@ -1,8 +1,6 @@
using System;
using System.IO;
-using System.Threading.Tasks;
using Avalonia.Platform;
-using Avalonia.Visuals.Media.Imaging;
namespace Avalonia.Media.Imaging
{
diff --git a/src/Avalonia.Visuals/Media/Immutable/ImmutableConicGradientBrush.cs b/src/Avalonia.Base/Media/Immutable/ImmutableConicGradientBrush.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/Immutable/ImmutableConicGradientBrush.cs
rename to src/Avalonia.Base/Media/Immutable/ImmutableConicGradientBrush.cs
diff --git a/src/Avalonia.Visuals/Media/Immutable/ImmutableDashStyle.cs b/src/Avalonia.Base/Media/Immutable/ImmutableDashStyle.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/Immutable/ImmutableDashStyle.cs
rename to src/Avalonia.Base/Media/Immutable/ImmutableDashStyle.cs
diff --git a/src/Avalonia.Visuals/Media/Immutable/ImmutableGradientBrush.cs b/src/Avalonia.Base/Media/Immutable/ImmutableGradientBrush.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/Immutable/ImmutableGradientBrush.cs
rename to src/Avalonia.Base/Media/Immutable/ImmutableGradientBrush.cs
diff --git a/src/Avalonia.Visuals/Media/Immutable/ImmutableGradientStop.cs b/src/Avalonia.Base/Media/Immutable/ImmutableGradientStop.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/Immutable/ImmutableGradientStop.cs
rename to src/Avalonia.Base/Media/Immutable/ImmutableGradientStop.cs
diff --git a/src/Avalonia.Visuals/Media/Immutable/ImmutableImageBrush.cs b/src/Avalonia.Base/Media/Immutable/ImmutableImageBrush.cs
similarity index 98%
rename from src/Avalonia.Visuals/Media/Immutable/ImmutableImageBrush.cs
rename to src/Avalonia.Base/Media/Immutable/ImmutableImageBrush.cs
index 2d4fe45c8e..c36e82eacb 100644
--- a/src/Avalonia.Visuals/Media/Immutable/ImmutableImageBrush.cs
+++ b/src/Avalonia.Base/Media/Immutable/ImmutableImageBrush.cs
@@ -1,5 +1,4 @@
using Avalonia.Media.Imaging;
-using Avalonia.Visuals.Media.Imaging;
namespace Avalonia.Media.Immutable
{
diff --git a/src/Avalonia.Visuals/Media/Immutable/ImmutableLinearGradientBrush.cs b/src/Avalonia.Base/Media/Immutable/ImmutableLinearGradientBrush.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/Immutable/ImmutableLinearGradientBrush.cs
rename to src/Avalonia.Base/Media/Immutable/ImmutableLinearGradientBrush.cs
diff --git a/src/Avalonia.Visuals/Media/Immutable/ImmutablePen.cs b/src/Avalonia.Base/Media/Immutable/ImmutablePen.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/Immutable/ImmutablePen.cs
rename to src/Avalonia.Base/Media/Immutable/ImmutablePen.cs
diff --git a/src/Avalonia.Visuals/Media/Immutable/ImmutableRadialGradientBrush.cs b/src/Avalonia.Base/Media/Immutable/ImmutableRadialGradientBrush.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/Immutable/ImmutableRadialGradientBrush.cs
rename to src/Avalonia.Base/Media/Immutable/ImmutableRadialGradientBrush.cs
diff --git a/src/Avalonia.Visuals/Media/Immutable/ImmutableSolidColorBrush.cs b/src/Avalonia.Base/Media/Immutable/ImmutableSolidColorBrush.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/Immutable/ImmutableSolidColorBrush.cs
rename to src/Avalonia.Base/Media/Immutable/ImmutableSolidColorBrush.cs
diff --git a/src/Avalonia.Visuals/Media/Immutable/ImmutableTextDecoration.cs b/src/Avalonia.Base/Media/Immutable/ImmutableTextDecoration.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/Immutable/ImmutableTextDecoration.cs
rename to src/Avalonia.Base/Media/Immutable/ImmutableTextDecoration.cs
diff --git a/src/Avalonia.Visuals/Media/Immutable/ImmutableTileBrush.cs b/src/Avalonia.Base/Media/Immutable/ImmutableTileBrush.cs
similarity index 98%
rename from src/Avalonia.Visuals/Media/Immutable/ImmutableTileBrush.cs
rename to src/Avalonia.Base/Media/Immutable/ImmutableTileBrush.cs
index 1019751733..2c1844a2c2 100644
--- a/src/Avalonia.Visuals/Media/Immutable/ImmutableTileBrush.cs
+++ b/src/Avalonia.Base/Media/Immutable/ImmutableTileBrush.cs
@@ -1,4 +1,4 @@
-using Avalonia.Visuals.Media.Imaging;
+using Avalonia.Media.Imaging;
namespace Avalonia.Media.Immutable
{
diff --git a/src/Avalonia.Visuals/Media/Immutable/ImmutableTransform.cs b/src/Avalonia.Base/Media/Immutable/ImmutableTransform.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/Immutable/ImmutableTransform.cs
rename to src/Avalonia.Base/Media/Immutable/ImmutableTransform.cs
diff --git a/src/Avalonia.Visuals/Media/Immutable/ImmutableVisualBrush.cs b/src/Avalonia.Base/Media/Immutable/ImmutableVisualBrush.cs
similarity index 94%
rename from src/Avalonia.Visuals/Media/Immutable/ImmutableVisualBrush.cs
rename to src/Avalonia.Base/Media/Immutable/ImmutableVisualBrush.cs
index 0fd2905660..8ecef63237 100644
--- a/src/Avalonia.Visuals/Media/Immutable/ImmutableVisualBrush.cs
+++ b/src/Avalonia.Base/Media/Immutable/ImmutableVisualBrush.cs
@@ -1,4 +1,4 @@
-using Avalonia.Visuals.Media.Imaging;
+using Avalonia.Media.Imaging;
using Avalonia.VisualTree;
namespace Avalonia.Media.Immutable
@@ -33,7 +33,7 @@ namespace Avalonia.Media.Immutable
RelativeRect? sourceRect = null,
Stretch stretch = Stretch.Uniform,
TileMode tileMode = TileMode.None,
- BitmapInterpolationMode bitmapInterpolationMode = BitmapInterpolationMode.Default)
+ Imaging.BitmapInterpolationMode bitmapInterpolationMode = Imaging.BitmapInterpolationMode.Default)
: base(
alignmentX,
alignmentY,
diff --git a/src/Avalonia.Visuals/Media/ImmutableExperimentalAcrylicMaterial.cs b/src/Avalonia.Base/Media/ImmutableExperimentalAcrylicMaterial.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/ImmutableExperimentalAcrylicMaterial.cs
rename to src/Avalonia.Base/Media/ImmutableExperimentalAcrylicMaterial.cs
diff --git a/src/Avalonia.Visuals/Media/KnownColors.cs b/src/Avalonia.Base/Media/KnownColors.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/KnownColors.cs
rename to src/Avalonia.Base/Media/KnownColors.cs
diff --git a/src/Avalonia.Visuals/Media/LineGeometry.cs b/src/Avalonia.Base/Media/LineGeometry.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/LineGeometry.cs
rename to src/Avalonia.Base/Media/LineGeometry.cs
diff --git a/src/Avalonia.Visuals/Media/LineSegment.cs b/src/Avalonia.Base/Media/LineSegment.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/LineSegment.cs
rename to src/Avalonia.Base/Media/LineSegment.cs
diff --git a/src/Avalonia.Visuals/Media/LinearGradientBrush.cs b/src/Avalonia.Base/Media/LinearGradientBrush.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/LinearGradientBrush.cs
rename to src/Avalonia.Base/Media/LinearGradientBrush.cs
diff --git a/src/Avalonia.Visuals/Media/MaterialExtensions.cs b/src/Avalonia.Base/Media/MaterialExtensions.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/MaterialExtensions.cs
rename to src/Avalonia.Base/Media/MaterialExtensions.cs
diff --git a/src/Avalonia.Visuals/Media/MatrixTransform.cs b/src/Avalonia.Base/Media/MatrixTransform.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/MatrixTransform.cs
rename to src/Avalonia.Base/Media/MatrixTransform.cs
diff --git a/src/Avalonia.Visuals/Media/MediaExtensions.cs b/src/Avalonia.Base/Media/MediaExtensions.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/MediaExtensions.cs
rename to src/Avalonia.Base/Media/MediaExtensions.cs
diff --git a/src/Avalonia.Visuals/Media/PathFigure.cs b/src/Avalonia.Base/Media/PathFigure.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/PathFigure.cs
rename to src/Avalonia.Base/Media/PathFigure.cs
diff --git a/src/Avalonia.Visuals/Media/PathGeometry.cs b/src/Avalonia.Base/Media/PathGeometry.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/PathGeometry.cs
rename to src/Avalonia.Base/Media/PathGeometry.cs
diff --git a/src/Avalonia.Visuals/Media/PathGeometryCollections.cs b/src/Avalonia.Base/Media/PathGeometryCollections.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/PathGeometryCollections.cs
rename to src/Avalonia.Base/Media/PathGeometryCollections.cs
diff --git a/src/Avalonia.Visuals/Media/PathMarkupParser.cs b/src/Avalonia.Base/Media/PathMarkupParser.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/PathMarkupParser.cs
rename to src/Avalonia.Base/Media/PathMarkupParser.cs
diff --git a/src/Avalonia.Visuals/Media/PathSegment.cs b/src/Avalonia.Base/Media/PathSegment.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/PathSegment.cs
rename to src/Avalonia.Base/Media/PathSegment.cs
diff --git a/src/Avalonia.Visuals/Media/Pen.cs b/src/Avalonia.Base/Media/Pen.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/Pen.cs
rename to src/Avalonia.Base/Media/Pen.cs
diff --git a/src/Avalonia.Visuals/Media/PenLineCap.cs b/src/Avalonia.Base/Media/PenLineCap.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/PenLineCap.cs
rename to src/Avalonia.Base/Media/PenLineCap.cs
diff --git a/src/Avalonia.Visuals/Media/PenLineJoin.cs b/src/Avalonia.Base/Media/PenLineJoin.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/PenLineJoin.cs
rename to src/Avalonia.Base/Media/PenLineJoin.cs
diff --git a/src/Avalonia.Visuals/Media/PolyLineSegment.cs b/src/Avalonia.Base/Media/PolyLineSegment.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/PolyLineSegment.cs
rename to src/Avalonia.Base/Media/PolyLineSegment.cs
diff --git a/src/Avalonia.Visuals/Media/PolylineGeometry.cs b/src/Avalonia.Base/Media/PolylineGeometry.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/PolylineGeometry.cs
rename to src/Avalonia.Base/Media/PolylineGeometry.cs
diff --git a/src/Avalonia.Visuals/Media/PreciseEllipticArcHelper.cs b/src/Avalonia.Base/Media/PreciseEllipticArcHelper.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/PreciseEllipticArcHelper.cs
rename to src/Avalonia.Base/Media/PreciseEllipticArcHelper.cs
diff --git a/src/Avalonia.Visuals/Media/QuadraticBezierSegment .cs b/src/Avalonia.Base/Media/QuadraticBezierSegment .cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/QuadraticBezierSegment .cs
rename to src/Avalonia.Base/Media/QuadraticBezierSegment .cs
diff --git a/src/Avalonia.Visuals/Media/RadialGradientBrush.cs b/src/Avalonia.Base/Media/RadialGradientBrush.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/RadialGradientBrush.cs
rename to src/Avalonia.Base/Media/RadialGradientBrush.cs
diff --git a/src/Avalonia.Visuals/Media/RectangleGeometry.cs b/src/Avalonia.Base/Media/RectangleGeometry.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/RectangleGeometry.cs
rename to src/Avalonia.Base/Media/RectangleGeometry.cs
diff --git a/src/Avalonia.Visuals/Media/RenderOptions.cs b/src/Avalonia.Base/Media/RenderOptions.cs
similarity index 97%
rename from src/Avalonia.Visuals/Media/RenderOptions.cs
rename to src/Avalonia.Base/Media/RenderOptions.cs
index 7abbc8a656..5863d0ac58 100644
--- a/src/Avalonia.Visuals/Media/RenderOptions.cs
+++ b/src/Avalonia.Base/Media/RenderOptions.cs
@@ -1,4 +1,4 @@
-using Avalonia.Visuals.Media.Imaging;
+using Avalonia.Media.Imaging;
namespace Avalonia.Media
{
diff --git a/src/Avalonia.Visuals/Media/RotateTransform.cs b/src/Avalonia.Base/Media/RotateTransform.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/RotateTransform.cs
rename to src/Avalonia.Base/Media/RotateTransform.cs
diff --git a/src/Avalonia.Visuals/Media/ScaleTransform.cs b/src/Avalonia.Base/Media/ScaleTransform.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/ScaleTransform.cs
rename to src/Avalonia.Base/Media/ScaleTransform.cs
diff --git a/src/Avalonia.Visuals/Media/SkewTransform.cs b/src/Avalonia.Base/Media/SkewTransform.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/SkewTransform.cs
rename to src/Avalonia.Base/Media/SkewTransform.cs
diff --git a/src/Avalonia.Visuals/Media/SolidColorBrush.cs b/src/Avalonia.Base/Media/SolidColorBrush.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/SolidColorBrush.cs
rename to src/Avalonia.Base/Media/SolidColorBrush.cs
diff --git a/src/Avalonia.Visuals/Media/StreamGeometry.cs b/src/Avalonia.Base/Media/StreamGeometry.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/StreamGeometry.cs
rename to src/Avalonia.Base/Media/StreamGeometry.cs
diff --git a/src/Avalonia.Visuals/Media/StreamGeometryContext.cs b/src/Avalonia.Base/Media/StreamGeometryContext.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/StreamGeometryContext.cs
rename to src/Avalonia.Base/Media/StreamGeometryContext.cs
diff --git a/src/Avalonia.Visuals/Media/Stretch.cs b/src/Avalonia.Base/Media/Stretch.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/Stretch.cs
rename to src/Avalonia.Base/Media/Stretch.cs
diff --git a/src/Avalonia.Visuals/Media/StretchDirection.cs b/src/Avalonia.Base/Media/StretchDirection.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/StretchDirection.cs
rename to src/Avalonia.Base/Media/StretchDirection.cs
diff --git a/src/Avalonia.Visuals/Media/SweepDirection.cs b/src/Avalonia.Base/Media/SweepDirection.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/SweepDirection.cs
rename to src/Avalonia.Base/Media/SweepDirection.cs
diff --git a/src/Avalonia.Visuals/Media/TextAlignment.cs b/src/Avalonia.Base/Media/TextAlignment.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/TextAlignment.cs
rename to src/Avalonia.Base/Media/TextAlignment.cs
diff --git a/src/Avalonia.Visuals/Media/TextCollapsingCreateInfo.cs b/src/Avalonia.Base/Media/TextCollapsingCreateInfo.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/TextCollapsingCreateInfo.cs
rename to src/Avalonia.Base/Media/TextCollapsingCreateInfo.cs
diff --git a/src/Avalonia.Visuals/Media/TextDecoration.cs b/src/Avalonia.Base/Media/TextDecoration.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/TextDecoration.cs
rename to src/Avalonia.Base/Media/TextDecoration.cs
diff --git a/src/Avalonia.Visuals/Media/TextDecorationCollection.cs b/src/Avalonia.Base/Media/TextDecorationCollection.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/TextDecorationCollection.cs
rename to src/Avalonia.Base/Media/TextDecorationCollection.cs
diff --git a/src/Avalonia.Visuals/Media/TextDecorationLocation.cs b/src/Avalonia.Base/Media/TextDecorationLocation.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/TextDecorationLocation.cs
rename to src/Avalonia.Base/Media/TextDecorationLocation.cs
diff --git a/src/Avalonia.Visuals/Media/TextDecorationUnit.cs b/src/Avalonia.Base/Media/TextDecorationUnit.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/TextDecorationUnit.cs
rename to src/Avalonia.Base/Media/TextDecorationUnit.cs
diff --git a/src/Avalonia.Visuals/Media/TextDecorations.cs b/src/Avalonia.Base/Media/TextDecorations.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/TextDecorations.cs
rename to src/Avalonia.Base/Media/TextDecorations.cs
diff --git a/src/Avalonia.Visuals/Media/TextFormatting/DrawableTextRun.cs b/src/Avalonia.Base/Media/TextFormatting/DrawableTextRun.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/TextFormatting/DrawableTextRun.cs
rename to src/Avalonia.Base/Media/TextFormatting/DrawableTextRun.cs
diff --git a/src/Avalonia.Visuals/Media/TextFormatting/FontMetrics.cs b/src/Avalonia.Base/Media/TextFormatting/FontMetrics.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/TextFormatting/FontMetrics.cs
rename to src/Avalonia.Base/Media/TextFormatting/FontMetrics.cs
diff --git a/src/Avalonia.Visuals/Media/TextFormatting/FormattedTextSource.cs b/src/Avalonia.Base/Media/TextFormatting/FormattedTextSource.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/TextFormatting/FormattedTextSource.cs
rename to src/Avalonia.Base/Media/TextFormatting/FormattedTextSource.cs
diff --git a/src/Avalonia.Visuals/Media/TextFormatting/GenericTextParagraphProperties.cs b/src/Avalonia.Base/Media/TextFormatting/GenericTextParagraphProperties.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/TextFormatting/GenericTextParagraphProperties.cs
rename to src/Avalonia.Base/Media/TextFormatting/GenericTextParagraphProperties.cs
diff --git a/src/Avalonia.Visuals/Media/TextFormatting/GenericTextRunProperties.cs b/src/Avalonia.Base/Media/TextFormatting/GenericTextRunProperties.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/TextFormatting/GenericTextRunProperties.cs
rename to src/Avalonia.Base/Media/TextFormatting/GenericTextRunProperties.cs
diff --git a/src/Avalonia.Visuals/Media/TextFormatting/ITextSource.cs b/src/Avalonia.Base/Media/TextFormatting/ITextSource.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/TextFormatting/ITextSource.cs
rename to src/Avalonia.Base/Media/TextFormatting/ITextSource.cs
diff --git a/src/Avalonia.Visuals/Media/TextFormatting/LogicalDirection.cs b/src/Avalonia.Base/Media/TextFormatting/LogicalDirection.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/TextFormatting/LogicalDirection.cs
rename to src/Avalonia.Base/Media/TextFormatting/LogicalDirection.cs
diff --git a/src/Avalonia.Visuals/Media/TextFormatting/ShapeableTextCharacters.cs b/src/Avalonia.Base/Media/TextFormatting/ShapeableTextCharacters.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/TextFormatting/ShapeableTextCharacters.cs
rename to src/Avalonia.Base/Media/TextFormatting/ShapeableTextCharacters.cs
diff --git a/src/Avalonia.Visuals/Media/TextFormatting/ShapedBuffer.cs b/src/Avalonia.Base/Media/TextFormatting/ShapedBuffer.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/TextFormatting/ShapedBuffer.cs
rename to src/Avalonia.Base/Media/TextFormatting/ShapedBuffer.cs
diff --git a/src/Avalonia.Visuals/Media/TextFormatting/ShapedTextCharacters.cs b/src/Avalonia.Base/Media/TextFormatting/ShapedTextCharacters.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/TextFormatting/ShapedTextCharacters.cs
rename to src/Avalonia.Base/Media/TextFormatting/ShapedTextCharacters.cs
diff --git a/src/Avalonia.Visuals/Media/TextFormatting/SplitResult.cs b/src/Avalonia.Base/Media/TextFormatting/SplitResult.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/TextFormatting/SplitResult.cs
rename to src/Avalonia.Base/Media/TextFormatting/SplitResult.cs
diff --git a/src/Avalonia.Visuals/Media/TextFormatting/TextBounds.cs b/src/Avalonia.Base/Media/TextFormatting/TextBounds.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/TextFormatting/TextBounds.cs
rename to src/Avalonia.Base/Media/TextFormatting/TextBounds.cs
diff --git a/src/Avalonia.Visuals/Media/TextFormatting/TextCharacters.cs b/src/Avalonia.Base/Media/TextFormatting/TextCharacters.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/TextFormatting/TextCharacters.cs
rename to src/Avalonia.Base/Media/TextFormatting/TextCharacters.cs
diff --git a/src/Avalonia.Visuals/Media/TextFormatting/TextCollapsingProperties.cs b/src/Avalonia.Base/Media/TextFormatting/TextCollapsingProperties.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/TextFormatting/TextCollapsingProperties.cs
rename to src/Avalonia.Base/Media/TextFormatting/TextCollapsingProperties.cs
diff --git a/src/Avalonia.Visuals/Media/TextFormatting/TextEllipsisHelper.cs b/src/Avalonia.Base/Media/TextFormatting/TextEllipsisHelper.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/TextFormatting/TextEllipsisHelper.cs
rename to src/Avalonia.Base/Media/TextFormatting/TextEllipsisHelper.cs
diff --git a/src/Avalonia.Visuals/Media/TextFormatting/TextEndOfLine.cs b/src/Avalonia.Base/Media/TextFormatting/TextEndOfLine.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/TextFormatting/TextEndOfLine.cs
rename to src/Avalonia.Base/Media/TextFormatting/TextEndOfLine.cs
diff --git a/src/Avalonia.Visuals/Media/TextFormatting/TextEndOfParagraph.cs b/src/Avalonia.Base/Media/TextFormatting/TextEndOfParagraph.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/TextFormatting/TextEndOfParagraph.cs
rename to src/Avalonia.Base/Media/TextFormatting/TextEndOfParagraph.cs
diff --git a/src/Avalonia.Visuals/Media/TextFormatting/TextFormatter.cs b/src/Avalonia.Base/Media/TextFormatting/TextFormatter.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/TextFormatting/TextFormatter.cs
rename to src/Avalonia.Base/Media/TextFormatting/TextFormatter.cs
diff --git a/src/Avalonia.Visuals/Media/TextFormatting/TextFormatterImpl.cs b/src/Avalonia.Base/Media/TextFormatting/TextFormatterImpl.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/TextFormatting/TextFormatterImpl.cs
rename to src/Avalonia.Base/Media/TextFormatting/TextFormatterImpl.cs
diff --git a/src/Avalonia.Visuals/Media/TextFormatting/TextLayout.cs b/src/Avalonia.Base/Media/TextFormatting/TextLayout.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/TextFormatting/TextLayout.cs
rename to src/Avalonia.Base/Media/TextFormatting/TextLayout.cs
diff --git a/src/Avalonia.Visuals/Media/TextFormatting/TextLeadingPrefixCharacterEllipsis.cs b/src/Avalonia.Base/Media/TextFormatting/TextLeadingPrefixCharacterEllipsis.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/TextFormatting/TextLeadingPrefixCharacterEllipsis.cs
rename to src/Avalonia.Base/Media/TextFormatting/TextLeadingPrefixCharacterEllipsis.cs
diff --git a/src/Avalonia.Visuals/Media/TextFormatting/TextLine.cs b/src/Avalonia.Base/Media/TextFormatting/TextLine.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/TextFormatting/TextLine.cs
rename to src/Avalonia.Base/Media/TextFormatting/TextLine.cs
diff --git a/src/Avalonia.Visuals/Media/TextFormatting/TextLineBreak.cs b/src/Avalonia.Base/Media/TextFormatting/TextLineBreak.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/TextFormatting/TextLineBreak.cs
rename to src/Avalonia.Base/Media/TextFormatting/TextLineBreak.cs
diff --git a/src/Avalonia.Visuals/Media/TextFormatting/TextLineImpl.cs b/src/Avalonia.Base/Media/TextFormatting/TextLineImpl.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/TextFormatting/TextLineImpl.cs
rename to src/Avalonia.Base/Media/TextFormatting/TextLineImpl.cs
diff --git a/src/Avalonia.Visuals/Media/TextFormatting/TextLineMetrics.cs b/src/Avalonia.Base/Media/TextFormatting/TextLineMetrics.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/TextFormatting/TextLineMetrics.cs
rename to src/Avalonia.Base/Media/TextFormatting/TextLineMetrics.cs
diff --git a/src/Avalonia.Visuals/Media/TextFormatting/TextParagraphProperties.cs b/src/Avalonia.Base/Media/TextFormatting/TextParagraphProperties.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/TextFormatting/TextParagraphProperties.cs
rename to src/Avalonia.Base/Media/TextFormatting/TextParagraphProperties.cs
diff --git a/src/Avalonia.Visuals/Media/TextFormatting/TextRange.cs b/src/Avalonia.Base/Media/TextFormatting/TextRange.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/TextFormatting/TextRange.cs
rename to src/Avalonia.Base/Media/TextFormatting/TextRange.cs
diff --git a/src/Avalonia.Visuals/Media/TextFormatting/TextRun.cs b/src/Avalonia.Base/Media/TextFormatting/TextRun.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/TextFormatting/TextRun.cs
rename to src/Avalonia.Base/Media/TextFormatting/TextRun.cs
diff --git a/src/Avalonia.Visuals/Media/TextFormatting/TextRunProperties.cs b/src/Avalonia.Base/Media/TextFormatting/TextRunProperties.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/TextFormatting/TextRunProperties.cs
rename to src/Avalonia.Base/Media/TextFormatting/TextRunProperties.cs
diff --git a/src/Avalonia.Visuals/Media/TextFormatting/TextShaper.cs b/src/Avalonia.Base/Media/TextFormatting/TextShaper.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/TextFormatting/TextShaper.cs
rename to src/Avalonia.Base/Media/TextFormatting/TextShaper.cs
diff --git a/src/Avalonia.Visuals/Media/TextFormatting/TextShaperOptions.cs b/src/Avalonia.Base/Media/TextFormatting/TextShaperOptions.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/TextFormatting/TextShaperOptions.cs
rename to src/Avalonia.Base/Media/TextFormatting/TextShaperOptions.cs
diff --git a/src/Avalonia.Visuals/Media/TextFormatting/TextTrailingCharacterEllipsis.cs b/src/Avalonia.Base/Media/TextFormatting/TextTrailingCharacterEllipsis.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/TextFormatting/TextTrailingCharacterEllipsis.cs
rename to src/Avalonia.Base/Media/TextFormatting/TextTrailingCharacterEllipsis.cs
diff --git a/src/Avalonia.Visuals/Media/TextFormatting/TextTrailingWordEllipsis.cs b/src/Avalonia.Base/Media/TextFormatting/TextTrailingWordEllipsis.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/TextFormatting/TextTrailingWordEllipsis.cs
rename to src/Avalonia.Base/Media/TextFormatting/TextTrailingWordEllipsis.cs
diff --git a/src/Avalonia.Visuals/Media/TextFormatting/Unicode/BiDiAlgorithm.cs b/src/Avalonia.Base/Media/TextFormatting/Unicode/BiDiAlgorithm.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/TextFormatting/Unicode/BiDiAlgorithm.cs
rename to src/Avalonia.Base/Media/TextFormatting/Unicode/BiDiAlgorithm.cs
diff --git a/src/Avalonia.Visuals/Media/TextFormatting/Unicode/BiDiClass.cs b/src/Avalonia.Base/Media/TextFormatting/Unicode/BiDiClass.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/TextFormatting/Unicode/BiDiClass.cs
rename to src/Avalonia.Base/Media/TextFormatting/Unicode/BiDiClass.cs
diff --git a/src/Avalonia.Visuals/Media/TextFormatting/Unicode/BiDiData.cs b/src/Avalonia.Base/Media/TextFormatting/Unicode/BiDiData.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/TextFormatting/Unicode/BiDiData.cs
rename to src/Avalonia.Base/Media/TextFormatting/Unicode/BiDiData.cs
diff --git a/src/Avalonia.Visuals/Media/TextFormatting/Unicode/BiDiPairedBracketType.cs b/src/Avalonia.Base/Media/TextFormatting/Unicode/BiDiPairedBracketType.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/TextFormatting/Unicode/BiDiPairedBracketType.cs
rename to src/Avalonia.Base/Media/TextFormatting/Unicode/BiDiPairedBracketType.cs
diff --git a/src/Avalonia.Visuals/Media/TextFormatting/Unicode/BinaryReaderExtensions.cs b/src/Avalonia.Base/Media/TextFormatting/Unicode/BinaryReaderExtensions.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/TextFormatting/Unicode/BinaryReaderExtensions.cs
rename to src/Avalonia.Base/Media/TextFormatting/Unicode/BinaryReaderExtensions.cs
diff --git a/src/Avalonia.Visuals/Media/TextFormatting/Unicode/Codepoint.cs b/src/Avalonia.Base/Media/TextFormatting/Unicode/Codepoint.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/TextFormatting/Unicode/Codepoint.cs
rename to src/Avalonia.Base/Media/TextFormatting/Unicode/Codepoint.cs
diff --git a/src/Avalonia.Visuals/Media/TextFormatting/Unicode/CodepointEnumerator.cs b/src/Avalonia.Base/Media/TextFormatting/Unicode/CodepointEnumerator.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/TextFormatting/Unicode/CodepointEnumerator.cs
rename to src/Avalonia.Base/Media/TextFormatting/Unicode/CodepointEnumerator.cs
diff --git a/src/Avalonia.Visuals/Media/TextFormatting/Unicode/GeneralCategory.cs b/src/Avalonia.Base/Media/TextFormatting/Unicode/GeneralCategory.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/TextFormatting/Unicode/GeneralCategory.cs
rename to src/Avalonia.Base/Media/TextFormatting/Unicode/GeneralCategory.cs
diff --git a/src/Avalonia.Visuals/Media/TextFormatting/Unicode/Grapheme.cs b/src/Avalonia.Base/Media/TextFormatting/Unicode/Grapheme.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/TextFormatting/Unicode/Grapheme.cs
rename to src/Avalonia.Base/Media/TextFormatting/Unicode/Grapheme.cs
diff --git a/src/Avalonia.Visuals/Media/TextFormatting/Unicode/GraphemeBreakClass.cs b/src/Avalonia.Base/Media/TextFormatting/Unicode/GraphemeBreakClass.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/TextFormatting/Unicode/GraphemeBreakClass.cs
rename to src/Avalonia.Base/Media/TextFormatting/Unicode/GraphemeBreakClass.cs
diff --git a/src/Avalonia.Visuals/Media/TextFormatting/Unicode/GraphemeEnumerator.cs b/src/Avalonia.Base/Media/TextFormatting/Unicode/GraphemeEnumerator.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/TextFormatting/Unicode/GraphemeEnumerator.cs
rename to src/Avalonia.Base/Media/TextFormatting/Unicode/GraphemeEnumerator.cs
diff --git a/src/Avalonia.Visuals/Media/TextFormatting/Unicode/LineBreak.cs b/src/Avalonia.Base/Media/TextFormatting/Unicode/LineBreak.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/TextFormatting/Unicode/LineBreak.cs
rename to src/Avalonia.Base/Media/TextFormatting/Unicode/LineBreak.cs
diff --git a/src/Avalonia.Visuals/Media/TextFormatting/Unicode/LineBreakClass.cs b/src/Avalonia.Base/Media/TextFormatting/Unicode/LineBreakClass.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/TextFormatting/Unicode/LineBreakClass.cs
rename to src/Avalonia.Base/Media/TextFormatting/Unicode/LineBreakClass.cs
diff --git a/src/Avalonia.Visuals/Media/TextFormatting/Unicode/LineBreakEnumerator.cs b/src/Avalonia.Base/Media/TextFormatting/Unicode/LineBreakEnumerator.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/TextFormatting/Unicode/LineBreakEnumerator.cs
rename to src/Avalonia.Base/Media/TextFormatting/Unicode/LineBreakEnumerator.cs
diff --git a/src/Avalonia.Visuals/Media/TextFormatting/Unicode/LineBreakPairTable.cs b/src/Avalonia.Base/Media/TextFormatting/Unicode/LineBreakPairTable.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/TextFormatting/Unicode/LineBreakPairTable.cs
rename to src/Avalonia.Base/Media/TextFormatting/Unicode/LineBreakPairTable.cs
diff --git a/src/Avalonia.Visuals/Media/TextFormatting/Unicode/PropertyValueAliasHelper.cs b/src/Avalonia.Base/Media/TextFormatting/Unicode/PropertyValueAliasHelper.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/TextFormatting/Unicode/PropertyValueAliasHelper.cs
rename to src/Avalonia.Base/Media/TextFormatting/Unicode/PropertyValueAliasHelper.cs
diff --git a/src/Avalonia.Visuals/Media/TextFormatting/Unicode/Script.cs b/src/Avalonia.Base/Media/TextFormatting/Unicode/Script.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/TextFormatting/Unicode/Script.cs
rename to src/Avalonia.Base/Media/TextFormatting/Unicode/Script.cs
diff --git a/src/Avalonia.Visuals/Media/TextFormatting/Unicode/UnicodeData.cs b/src/Avalonia.Base/Media/TextFormatting/Unicode/UnicodeData.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/TextFormatting/Unicode/UnicodeData.cs
rename to src/Avalonia.Base/Media/TextFormatting/Unicode/UnicodeData.cs
diff --git a/src/Avalonia.Visuals/Media/TextFormatting/Unicode/UnicodeTrie.cs b/src/Avalonia.Base/Media/TextFormatting/Unicode/UnicodeTrie.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/TextFormatting/Unicode/UnicodeTrie.cs
rename to src/Avalonia.Base/Media/TextFormatting/Unicode/UnicodeTrie.cs
diff --git a/src/Avalonia.Visuals/Media/TextFormatting/Unicode/UnicodeTrieBuilder.Constants.cs b/src/Avalonia.Base/Media/TextFormatting/Unicode/UnicodeTrieBuilder.Constants.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/TextFormatting/Unicode/UnicodeTrieBuilder.Constants.cs
rename to src/Avalonia.Base/Media/TextFormatting/Unicode/UnicodeTrieBuilder.Constants.cs
diff --git a/src/Avalonia.Visuals/Media/TextFormatting/Unicode/UnicodeTrieBuilder.cs b/src/Avalonia.Base/Media/TextFormatting/Unicode/UnicodeTrieBuilder.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/TextFormatting/Unicode/UnicodeTrieBuilder.cs
rename to src/Avalonia.Base/Media/TextFormatting/Unicode/UnicodeTrieBuilder.cs
diff --git a/src/Avalonia.Visuals/Media/TextHitTestResult.cs b/src/Avalonia.Base/Media/TextHitTestResult.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/TextHitTestResult.cs
rename to src/Avalonia.Base/Media/TextHitTestResult.cs
diff --git a/src/Avalonia.Visuals/Media/TextLeadingPrefixTrimming.cs b/src/Avalonia.Base/Media/TextLeadingPrefixTrimming.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/TextLeadingPrefixTrimming.cs
rename to src/Avalonia.Base/Media/TextLeadingPrefixTrimming.cs
diff --git a/src/Avalonia.Visuals/Media/TextNoneTrimming.cs b/src/Avalonia.Base/Media/TextNoneTrimming.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/TextNoneTrimming.cs
rename to src/Avalonia.Base/Media/TextNoneTrimming.cs
diff --git a/src/Avalonia.Visuals/Media/TextTrailingTrimming.cs b/src/Avalonia.Base/Media/TextTrailingTrimming.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/TextTrailingTrimming.cs
rename to src/Avalonia.Base/Media/TextTrailingTrimming.cs
diff --git a/src/Avalonia.Visuals/Media/TextTrimming.cs b/src/Avalonia.Base/Media/TextTrimming.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/TextTrimming.cs
rename to src/Avalonia.Base/Media/TextTrimming.cs
diff --git a/src/Avalonia.Visuals/Media/TextWrapping.cs b/src/Avalonia.Base/Media/TextWrapping.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/TextWrapping.cs
rename to src/Avalonia.Base/Media/TextWrapping.cs
diff --git a/src/Avalonia.Visuals/Media/TileBrush.cs b/src/Avalonia.Base/Media/TileBrush.cs
similarity index 99%
rename from src/Avalonia.Visuals/Media/TileBrush.cs
rename to src/Avalonia.Base/Media/TileBrush.cs
index 0a4bc0e56d..ab1ee2d604 100644
--- a/src/Avalonia.Visuals/Media/TileBrush.cs
+++ b/src/Avalonia.Base/Media/TileBrush.cs
@@ -1,4 +1,4 @@
-using Avalonia.Visuals.Media.Imaging;
+using Avalonia.Media.Imaging;
namespace Avalonia.Media
{
diff --git a/src/Avalonia.Visuals/Media/Transform.cs b/src/Avalonia.Base/Media/Transform.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/Transform.cs
rename to src/Avalonia.Base/Media/Transform.cs
diff --git a/src/Avalonia.Visuals/Media/TransformConverter.cs b/src/Avalonia.Base/Media/TransformConverter.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/TransformConverter.cs
rename to src/Avalonia.Base/Media/TransformConverter.cs
diff --git a/src/Avalonia.Visuals/Media/TransformExtensions.cs b/src/Avalonia.Base/Media/TransformExtensions.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/TransformExtensions.cs
rename to src/Avalonia.Base/Media/TransformExtensions.cs
diff --git a/src/Avalonia.Visuals/Media/TransformGroup.cs b/src/Avalonia.Base/Media/TransformGroup.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/TransformGroup.cs
rename to src/Avalonia.Base/Media/TransformGroup.cs
diff --git a/src/Avalonia.Visuals/Media/Transformation/InterpolationUtilities.cs b/src/Avalonia.Base/Media/Transformation/InterpolationUtilities.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/Transformation/InterpolationUtilities.cs
rename to src/Avalonia.Base/Media/Transformation/InterpolationUtilities.cs
diff --git a/src/Avalonia.Visuals/Media/Transformation/TransformOperation.cs b/src/Avalonia.Base/Media/Transformation/TransformOperation.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/Transformation/TransformOperation.cs
rename to src/Avalonia.Base/Media/Transformation/TransformOperation.cs
diff --git a/src/Avalonia.Visuals/Media/Transformation/TransformOperations.cs b/src/Avalonia.Base/Media/Transformation/TransformOperations.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/Transformation/TransformOperations.cs
rename to src/Avalonia.Base/Media/Transformation/TransformOperations.cs
diff --git a/src/Avalonia.Visuals/Media/Transformation/TransformParser.cs b/src/Avalonia.Base/Media/Transformation/TransformParser.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/Transformation/TransformParser.cs
rename to src/Avalonia.Base/Media/Transformation/TransformParser.cs
diff --git a/src/Avalonia.Visuals/Media/TranslateTransform.cs b/src/Avalonia.Base/Media/TranslateTransform.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/TranslateTransform.cs
rename to src/Avalonia.Base/Media/TranslateTransform.cs
diff --git a/src/Avalonia.Visuals/Media/Typeface.cs b/src/Avalonia.Base/Media/Typeface.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/Typeface.cs
rename to src/Avalonia.Base/Media/Typeface.cs
diff --git a/src/Avalonia.Visuals/Media/UnicodeRange.cs b/src/Avalonia.Base/Media/UnicodeRange.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/UnicodeRange.cs
rename to src/Avalonia.Base/Media/UnicodeRange.cs
diff --git a/src/Avalonia.Visuals/Media/VisualBrush.cs b/src/Avalonia.Base/Media/VisualBrush.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/VisualBrush.cs
rename to src/Avalonia.Base/Media/VisualBrush.cs
diff --git a/src/Avalonia.Visuals/Media/PixelPoint.cs b/src/Avalonia.Base/PixelPoint.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/PixelPoint.cs
rename to src/Avalonia.Base/PixelPoint.cs
diff --git a/src/Avalonia.Visuals/Media/PixelRect.cs b/src/Avalonia.Base/PixelRect.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/PixelRect.cs
rename to src/Avalonia.Base/PixelRect.cs
diff --git a/src/Avalonia.Visuals/Media/PixelSize.cs b/src/Avalonia.Base/PixelSize.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/PixelSize.cs
rename to src/Avalonia.Base/PixelSize.cs
diff --git a/src/Avalonia.Visuals/Media/PixelVector.cs b/src/Avalonia.Base/PixelVector.cs
similarity index 100%
rename from src/Avalonia.Visuals/Media/PixelVector.cs
rename to src/Avalonia.Base/PixelVector.cs
diff --git a/src/Avalonia.Visuals/Platform/AlphaFormat.cs b/src/Avalonia.Base/Platform/AlphaFormat.cs
similarity index 100%
rename from src/Avalonia.Visuals/Platform/AlphaFormat.cs
rename to src/Avalonia.Base/Platform/AlphaFormat.cs
diff --git a/src/Avalonia.Visuals/Platform/IBitmapImpl.cs b/src/Avalonia.Base/Platform/IBitmapImpl.cs
similarity index 100%
rename from src/Avalonia.Visuals/Platform/IBitmapImpl.cs
rename to src/Avalonia.Base/Platform/IBitmapImpl.cs
diff --git a/src/Avalonia.Input/Platform/ICursorFactory.cs b/src/Avalonia.Base/Platform/ICursorFactory.cs
similarity index 100%
rename from src/Avalonia.Input/Platform/ICursorFactory.cs
rename to src/Avalonia.Base/Platform/ICursorFactory.cs
diff --git a/src/Avalonia.Input/Platform/ICursorImpl.cs b/src/Avalonia.Base/Platform/ICursorImpl.cs
similarity index 100%
rename from src/Avalonia.Input/Platform/ICursorImpl.cs
rename to src/Avalonia.Base/Platform/ICursorImpl.cs
diff --git a/src/Avalonia.Visuals/Platform/IDrawingContextImpl.cs b/src/Avalonia.Base/Platform/IDrawingContextImpl.cs
similarity index 99%
rename from src/Avalonia.Visuals/Platform/IDrawingContextImpl.cs
rename to src/Avalonia.Base/Platform/IDrawingContextImpl.cs
index 82af6ff0b6..4e6612e908 100644
--- a/src/Avalonia.Visuals/Platform/IDrawingContextImpl.cs
+++ b/src/Avalonia.Base/Platform/IDrawingContextImpl.cs
@@ -2,7 +2,7 @@ using System;
using Avalonia.Media;
using Avalonia.Rendering.SceneGraph;
using Avalonia.Utilities;
-using Avalonia.Visuals.Media.Imaging;
+using Avalonia.Media.Imaging;
namespace Avalonia.Platform
{
diff --git a/src/Avalonia.Visuals/Platform/IDrawingContextWithAcrylicLikeSupport.cs b/src/Avalonia.Base/Platform/IDrawingContextWithAcrylicLikeSupport.cs
similarity index 100%
rename from src/Avalonia.Visuals/Platform/IDrawingContextWithAcrylicLikeSupport.cs
rename to src/Avalonia.Base/Platform/IDrawingContextWithAcrylicLikeSupport.cs
diff --git a/src/Avalonia.Visuals/Platform/IFontManagerImpl.cs b/src/Avalonia.Base/Platform/IFontManagerImpl.cs
similarity index 100%
rename from src/Avalonia.Visuals/Platform/IFontManagerImpl.cs
rename to src/Avalonia.Base/Platform/IFontManagerImpl.cs
diff --git a/src/Avalonia.Visuals/Platform/IGeometryContext.cs b/src/Avalonia.Base/Platform/IGeometryContext.cs
similarity index 100%
rename from src/Avalonia.Visuals/Platform/IGeometryContext.cs
rename to src/Avalonia.Base/Platform/IGeometryContext.cs
diff --git a/src/Avalonia.Visuals/Platform/IGeometryImpl.cs b/src/Avalonia.Base/Platform/IGeometryImpl.cs
similarity index 100%
rename from src/Avalonia.Visuals/Platform/IGeometryImpl.cs
rename to src/Avalonia.Base/Platform/IGeometryImpl.cs
diff --git a/src/Avalonia.Visuals/Platform/IGlyphRunImpl.cs b/src/Avalonia.Base/Platform/IGlyphRunImpl.cs
similarity index 100%
rename from src/Avalonia.Visuals/Platform/IGlyphRunImpl.cs
rename to src/Avalonia.Base/Platform/IGlyphRunImpl.cs
diff --git a/src/Avalonia.Visuals/Platform/IGlyphTypefaceImpl.cs b/src/Avalonia.Base/Platform/IGlyphTypefaceImpl.cs
similarity index 100%
rename from src/Avalonia.Visuals/Platform/IGlyphTypefaceImpl.cs
rename to src/Avalonia.Base/Platform/IGlyphTypefaceImpl.cs
diff --git a/src/Avalonia.Visuals/Platform/ILockedFramebuffer.cs b/src/Avalonia.Base/Platform/ILockedFramebuffer.cs
similarity index 100%
rename from src/Avalonia.Visuals/Platform/ILockedFramebuffer.cs
rename to src/Avalonia.Base/Platform/ILockedFramebuffer.cs
diff --git a/src/Avalonia.Visuals/Platform/IModuleEnvironmentChecker.cs b/src/Avalonia.Base/Platform/IModuleEnvironmentChecker.cs
similarity index 100%
rename from src/Avalonia.Visuals/Platform/IModuleEnvironmentChecker.cs
rename to src/Avalonia.Base/Platform/IModuleEnvironmentChecker.cs
diff --git a/src/Avalonia.Visuals/Platform/IPlatformRenderInterface.cs b/src/Avalonia.Base/Platform/IPlatformRenderInterface.cs
similarity index 99%
rename from src/Avalonia.Visuals/Platform/IPlatformRenderInterface.cs
rename to src/Avalonia.Base/Platform/IPlatformRenderInterface.cs
index 444cc2eb8c..c46efd46c3 100644
--- a/src/Avalonia.Visuals/Platform/IPlatformRenderInterface.cs
+++ b/src/Avalonia.Base/Platform/IPlatformRenderInterface.cs
@@ -2,7 +2,7 @@ using System;
using System.Collections.Generic;
using System.IO;
using Avalonia.Media;
-using Avalonia.Visuals.Media.Imaging;
+using Avalonia.Media.Imaging;
namespace Avalonia.Platform
{
diff --git a/src/Avalonia.Visuals/Platform/IPlatformSettings.cs b/src/Avalonia.Base/Platform/IPlatformSettings.cs
similarity index 100%
rename from src/Avalonia.Visuals/Platform/IPlatformSettings.cs
rename to src/Avalonia.Base/Platform/IPlatformSettings.cs
diff --git a/src/Avalonia.Visuals/Platform/IRenderTarget.cs b/src/Avalonia.Base/Platform/IRenderTarget.cs
similarity index 100%
rename from src/Avalonia.Visuals/Platform/IRenderTarget.cs
rename to src/Avalonia.Base/Platform/IRenderTarget.cs
diff --git a/src/Avalonia.Visuals/Platform/IRenderTargetBitmapImpl.cs b/src/Avalonia.Base/Platform/IRenderTargetBitmapImpl.cs
similarity index 100%
rename from src/Avalonia.Visuals/Platform/IRenderTargetBitmapImpl.cs
rename to src/Avalonia.Base/Platform/IRenderTargetBitmapImpl.cs
diff --git a/src/Avalonia.Visuals/Platform/IStreamGeometryContextImpl.cs b/src/Avalonia.Base/Platform/IStreamGeometryContextImpl.cs
similarity index 100%
rename from src/Avalonia.Visuals/Platform/IStreamGeometryContextImpl.cs
rename to src/Avalonia.Base/Platform/IStreamGeometryContextImpl.cs
diff --git a/src/Avalonia.Visuals/Platform/IStreamGeometryImpl.cs b/src/Avalonia.Base/Platform/IStreamGeometryImpl.cs
similarity index 100%
rename from src/Avalonia.Visuals/Platform/IStreamGeometryImpl.cs
rename to src/Avalonia.Base/Platform/IStreamGeometryImpl.cs
diff --git a/src/Avalonia.Visuals/Platform/ITextShaperImpl.cs b/src/Avalonia.Base/Platform/ITextShaperImpl.cs
similarity index 100%
rename from src/Avalonia.Visuals/Platform/ITextShaperImpl.cs
rename to src/Avalonia.Base/Platform/ITextShaperImpl.cs
diff --git a/src/Avalonia.Visuals/Platform/ITransformedGeometryImpl.cs b/src/Avalonia.Base/Platform/ITransformedGeometryImpl.cs
similarity index 100%
rename from src/Avalonia.Visuals/Platform/ITransformedGeometryImpl.cs
rename to src/Avalonia.Base/Platform/ITransformedGeometryImpl.cs
diff --git a/src/Avalonia.Visuals/Platform/IWriteableBitmapImpl.cs b/src/Avalonia.Base/Platform/IWriteableBitmapImpl.cs
similarity index 100%
rename from src/Avalonia.Visuals/Platform/IWriteableBitmapImpl.cs
rename to src/Avalonia.Base/Platform/IWriteableBitmapImpl.cs
diff --git a/src/Avalonia.Visuals/Platform/LockedFramebuffer.cs b/src/Avalonia.Base/Platform/LockedFramebuffer.cs
similarity index 100%
rename from src/Avalonia.Visuals/Platform/LockedFramebuffer.cs
rename to src/Avalonia.Base/Platform/LockedFramebuffer.cs
diff --git a/src/Avalonia.Visuals/Platform/PathGeometryContext.cs b/src/Avalonia.Base/Platform/PathGeometryContext.cs
similarity index 100%
rename from src/Avalonia.Visuals/Platform/PathGeometryContext.cs
rename to src/Avalonia.Base/Platform/PathGeometryContext.cs
diff --git a/src/Avalonia.Visuals/Platform/PixelFormat.cs b/src/Avalonia.Base/Platform/PixelFormat.cs
similarity index 100%
rename from src/Avalonia.Visuals/Platform/PixelFormat.cs
rename to src/Avalonia.Base/Platform/PixelFormat.cs
diff --git a/src/Avalonia.Visuals/Point.cs b/src/Avalonia.Base/Point.cs
similarity index 100%
rename from src/Avalonia.Visuals/Point.cs
rename to src/Avalonia.Base/Point.cs
diff --git a/src/Avalonia.Visuals/Points.cs b/src/Avalonia.Base/Points.cs
similarity index 100%
rename from src/Avalonia.Visuals/Points.cs
rename to src/Avalonia.Base/Points.cs
diff --git a/src/Avalonia.Base/Properties/AssemblyInfo.cs b/src/Avalonia.Base/Properties/AssemblyInfo.cs
index 9ffb5872f0..4d7f487e00 100644
--- a/src/Avalonia.Base/Properties/AssemblyInfo.cs
+++ b/src/Avalonia.Base/Properties/AssemblyInfo.cs
@@ -1,15 +1,32 @@
-// Licensed under the MIT license. See licence.md file in the project root for full license information.
-
using System.Reflection;
using System.Runtime.CompilerServices;
using Avalonia.Metadata;
+[assembly: XmlnsDefinition("https://github.com/avaloniaui", "Avalonia")]
+[assembly: XmlnsDefinition("https://github.com/avaloniaui", "Avalonia.Animation")]
+[assembly: XmlnsDefinition("https://github.com/avaloniaui", "Avalonia.Animation.Easings")]
+[assembly: XmlnsDefinition("https://github.com/avaloniaui", "Avalonia.Controls")]
[assembly: XmlnsDefinition("https://github.com/avaloniaui", "Avalonia.Data.Converters")]
+[assembly: XmlnsDefinition("https://github.com/avaloniaui", "Avalonia.Input")]
+[assembly: XmlnsDefinition("https://github.com/avaloniaui", "Avalonia.Input.GestureRecognizers")]
+[assembly: XmlnsDefinition("https://github.com/avaloniaui", "Avalonia.Input.TextInput")]
+[assembly: XmlnsDefinition("https://github.com/avaloniaui", "Avalonia.Layout")]
+[assembly: XmlnsDefinition("https://github.com/avaloniaui", "Avalonia.LogicalTree")]
+[assembly: XmlnsDefinition("https://github.com/avaloniaui", "Avalonia.Media")]
+[assembly: XmlnsDefinition("https://github.com/avaloniaui", "Avalonia.Media.Imaging")]
+[assembly: XmlnsDefinition("https://github.com/avaloniaui", "Avalonia.Media.Transformation")]
+[assembly: XmlnsDefinition("https://github.com/avaloniaui", "Avalonia.Styling")]
+
[assembly: InternalsVisibleTo("Avalonia.Base.UnitTests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100c1bba1142285fe0419326fb25866ba62c47e6c2b5c1ab0c95b46413fad375471232cb81706932e1cef38781b9ebd39d5100401bacb651c6c5bbf59e571e81b3bc08d2a622004e08b1a6ece82a7e0b9857525c86d2b95fab4bc3dce148558d7f3ae61aa3a234086902aeface87d9dfdd32b9d2fe3c6dd4055b5ab4b104998bd87")]
-[assembly: InternalsVisibleTo("Avalonia.UnitTests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100c1bba1142285fe0419326fb25866ba62c47e6c2b5c1ab0c95b46413fad375471232cb81706932e1cef38781b9ebd39d5100401bacb651c6c5bbf59e571e81b3bc08d2a622004e08b1a6ece82a7e0b9857525c86d2b95fab4bc3dce148558d7f3ae61aa3a234086902aeface87d9dfdd32b9d2fe3c6dd4055b5ab4b104998bd87")]
-[assembly: InternalsVisibleTo("DynamicProxyGenAssembly2, PublicKey=0024000004800000940000000602000000240000525341310004000001000100c547cac37abd99c8db225ef2f6c8a3602f3b3606cc9891605d02baa56104f4cfc0734aa39b93bf7852f7d9266654753cc297e7d2edfe0bac1cdcf9f717241550e0a7b191195b7667bb4f64bcb8e2121380fd1d9d46ad2d92d2d15605093924cceaf74c4861eff62abf69b9291ed0a340e113be11e6a7d3113e92484cf7045cc7")]
+[assembly: InternalsVisibleTo("Avalonia.Controls, PublicKey=0024000004800000940000000602000000240000525341310004000001000100c1bba1142285fe0419326fb25866ba62c47e6c2b5c1ab0c95b46413fad375471232cb81706932e1cef38781b9ebd39d5100401bacb651c6c5bbf59e571e81b3bc08d2a622004e08b1a6ece82a7e0b9857525c86d2b95fab4bc3dce148558d7f3ae61aa3a234086902aeface87d9dfdd32b9d2fe3c6dd4055b5ab4b104998bd87")]
[assembly: InternalsVisibleTo("Avalonia.Controls.DataGrid, PublicKey=0024000004800000940000000602000000240000525341310004000001000100c1bba1142285fe0419326fb25866ba62c47e6c2b5c1ab0c95b46413fad375471232cb81706932e1cef38781b9ebd39d5100401bacb651c6c5bbf59e571e81b3bc08d2a622004e08b1a6ece82a7e0b9857525c86d2b95fab4bc3dce148558d7f3ae61aa3a234086902aeface87d9dfdd32b9d2fe3c6dd4055b5ab4b104998bd87")]
+[assembly: InternalsVisibleTo("Avalonia.Controls.UnitTests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100c1bba1142285fe0419326fb25866ba62c47e6c2b5c1ab0c95b46413fad375471232cb81706932e1cef38781b9ebd39d5100401bacb651c6c5bbf59e571e81b3bc08d2a622004e08b1a6ece82a7e0b9857525c86d2b95fab4bc3dce148558d7f3ae61aa3a234086902aeface87d9dfdd32b9d2fe3c6dd4055b5ab4b104998bd87")]
+[assembly: InternalsVisibleTo("Avalonia.Direct2D1.RenderTests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100c1bba1142285fe0419326fb25866ba62c47e6c2b5c1ab0c95b46413fad375471232cb81706932e1cef38781b9ebd39d5100401bacb651c6c5bbf59e571e81b3bc08d2a622004e08b1a6ece82a7e0b9857525c86d2b95fab4bc3dce148558d7f3ae61aa3a234086902aeface87d9dfdd32b9d2fe3c6dd4055b5ab4b104998bd87")]
+[assembly: InternalsVisibleTo("Avalonia.LeakTests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100c1bba1142285fe0419326fb25866ba62c47e6c2b5c1ab0c95b46413fad375471232cb81706932e1cef38781b9ebd39d5100401bacb651c6c5bbf59e571e81b3bc08d2a622004e08b1a6ece82a7e0b9857525c86d2b95fab4bc3dce148558d7f3ae61aa3a234086902aeface87d9dfdd32b9d2fe3c6dd4055b5ab4b104998bd87")]
[assembly: InternalsVisibleTo("Avalonia.Markup.Xaml.UnitTests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100c1bba1142285fe0419326fb25866ba62c47e6c2b5c1ab0c95b46413fad375471232cb81706932e1cef38781b9ebd39d5100401bacb651c6c5bbf59e571e81b3bc08d2a622004e08b1a6ece82a7e0b9857525c86d2b95fab4bc3dce148558d7f3ae61aa3a234086902aeface87d9dfdd32b9d2fe3c6dd4055b5ab4b104998bd87")]
-[assembly: InternalsVisibleTo("Avalonia.Visuals, PublicKey=0024000004800000940000000602000000240000525341310004000001000100c1bba1142285fe0419326fb25866ba62c47e6c2b5c1ab0c95b46413fad375471232cb81706932e1cef38781b9ebd39d5100401bacb651c6c5bbf59e571e81b3bc08d2a622004e08b1a6ece82a7e0b9857525c86d2b95fab4bc3dce148558d7f3ae61aa3a234086902aeface87d9dfdd32b9d2fe3c6dd4055b5ab4b104998bd87")]
[assembly: InternalsVisibleTo("Avalonia.PlatformSupport, PublicKey=0024000004800000940000000602000000240000525341310004000001000100c1bba1142285fe0419326fb25866ba62c47e6c2b5c1ab0c95b46413fad375471232cb81706932e1cef38781b9ebd39d5100401bacb651c6c5bbf59e571e81b3bc08d2a622004e08b1a6ece82a7e0b9857525c86d2b95fab4bc3dce148558d7f3ae61aa3a234086902aeface87d9dfdd32b9d2fe3c6dd4055b5ab4b104998bd87")]
-
+[assembly: InternalsVisibleTo("Avalonia.Skia.RenderTests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100c1bba1142285fe0419326fb25866ba62c47e6c2b5c1ab0c95b46413fad375471232cb81706932e1cef38781b9ebd39d5100401bacb651c6c5bbf59e571e81b3bc08d2a622004e08b1a6ece82a7e0b9857525c86d2b95fab4bc3dce148558d7f3ae61aa3a234086902aeface87d9dfdd32b9d2fe3c6dd4055b5ab4b104998bd87")]
+[assembly: InternalsVisibleTo("Avalonia.Skia.UnitTests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100c1bba1142285fe0419326fb25866ba62c47e6c2b5c1ab0c95b46413fad375471232cb81706932e1cef38781b9ebd39d5100401bacb651c6c5bbf59e571e81b3bc08d2a622004e08b1a6ece82a7e0b9857525c86d2b95fab4bc3dce148558d7f3ae61aa3a234086902aeface87d9dfdd32b9d2fe3c6dd4055b5ab4b104998bd87")]
+[assembly: InternalsVisibleTo("Avalonia.UnitTests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100c1bba1142285fe0419326fb25866ba62c47e6c2b5c1ab0c95b46413fad375471232cb81706932e1cef38781b9ebd39d5100401bacb651c6c5bbf59e571e81b3bc08d2a622004e08b1a6ece82a7e0b9857525c86d2b95fab4bc3dce148558d7f3ae61aa3a234086902aeface87d9dfdd32b9d2fe3c6dd4055b5ab4b104998bd87")]
+[assembly: InternalsVisibleTo("Avalonia.Web.Blazor, PublicKey=0024000004800000940000000602000000240000525341310004000001000100c1bba1142285fe0419326fb25866ba62c47e6c2b5c1ab0c95b46413fad375471232cb81706932e1cef38781b9ebd39d5100401bacb651c6c5bbf59e571e81b3bc08d2a622004e08b1a6ece82a7e0b9857525c86d2b95fab4bc3dce148558d7f3ae61aa3a234086902aeface87d9dfdd32b9d2fe3c6dd4055b5ab4b104998bd87")]
+[assembly: InternalsVisibleTo("DynamicProxyGenAssembly2, PublicKey=0024000004800000940000000602000000240000525341310004000001000100c547cac37abd99c8db225ef2f6c8a3602f3b3606cc9891605d02baa56104f4cfc0734aa39b93bf7852f7d9266654753cc297e7d2edfe0bac1cdcf9f717241550e0a7b191195b7667bb4f64bcb8e2121380fd1d9d46ad2d92d2d15605093924cceaf74c4861eff62abf69b9291ed0a340e113be11e6a7d3113e92484cf7045cc7")]
diff --git a/src/Avalonia.Visuals/Rect.cs b/src/Avalonia.Base/Rect.cs
similarity index 100%
rename from src/Avalonia.Visuals/Rect.cs
rename to src/Avalonia.Base/Rect.cs
diff --git a/src/Avalonia.Visuals/RelativePoint.cs b/src/Avalonia.Base/RelativePoint.cs
similarity index 100%
rename from src/Avalonia.Visuals/RelativePoint.cs
rename to src/Avalonia.Base/RelativePoint.cs
diff --git a/src/Avalonia.Visuals/RelativeRect.cs b/src/Avalonia.Base/RelativeRect.cs
similarity index 100%
rename from src/Avalonia.Visuals/RelativeRect.cs
rename to src/Avalonia.Base/RelativeRect.cs
diff --git a/src/Avalonia.Visuals/RenderTargetCorruptedException.cs b/src/Avalonia.Base/RenderTargetCorruptedException.cs
similarity index 100%
rename from src/Avalonia.Visuals/RenderTargetCorruptedException.cs
rename to src/Avalonia.Base/RenderTargetCorruptedException.cs
diff --git a/src/Avalonia.Visuals/Rendering/DefaultRenderTimer.cs b/src/Avalonia.Base/Rendering/DefaultRenderTimer.cs
similarity index 100%
rename from src/Avalonia.Visuals/Rendering/DefaultRenderTimer.cs
rename to src/Avalonia.Base/Rendering/DefaultRenderTimer.cs
diff --git a/src/Avalonia.Visuals/Rendering/DeferredRenderer.cs b/src/Avalonia.Base/Rendering/DeferredRenderer.cs
similarity index 100%
rename from src/Avalonia.Visuals/Rendering/DeferredRenderer.cs
rename to src/Avalonia.Base/Rendering/DeferredRenderer.cs
diff --git a/src/Avalonia.Visuals/Rendering/DirtyRects.cs b/src/Avalonia.Base/Rendering/DirtyRects.cs
similarity index 100%
rename from src/Avalonia.Visuals/Rendering/DirtyRects.cs
rename to src/Avalonia.Base/Rendering/DirtyRects.cs
diff --git a/src/Avalonia.Visuals/Rendering/DirtyVisuals.cs b/src/Avalonia.Base/Rendering/DirtyVisuals.cs
similarity index 100%
rename from src/Avalonia.Visuals/Rendering/DirtyVisuals.cs
rename to src/Avalonia.Base/Rendering/DirtyVisuals.cs
diff --git a/src/Avalonia.Visuals/Rendering/DisplayDirtyRect.cs b/src/Avalonia.Base/Rendering/DisplayDirtyRect.cs
similarity index 100%
rename from src/Avalonia.Visuals/Rendering/DisplayDirtyRect.cs
rename to src/Avalonia.Base/Rendering/DisplayDirtyRect.cs
diff --git a/src/Avalonia.Visuals/Rendering/DisplayDirtyRects.cs b/src/Avalonia.Base/Rendering/DisplayDirtyRects.cs
similarity index 100%
rename from src/Avalonia.Visuals/Rendering/DisplayDirtyRects.cs
rename to src/Avalonia.Base/Rendering/DisplayDirtyRects.cs
diff --git a/src/Avalonia.Visuals/Rendering/ICustomSimpleHitTest.cs b/src/Avalonia.Base/Rendering/ICustomSimpleHitTest.cs
similarity index 100%
rename from src/Avalonia.Visuals/Rendering/ICustomSimpleHitTest.cs
rename to src/Avalonia.Base/Rendering/ICustomSimpleHitTest.cs
diff --git a/src/Avalonia.Visuals/Rendering/IDeferredRendererLock.cs b/src/Avalonia.Base/Rendering/IDeferredRendererLock.cs
similarity index 100%
rename from src/Avalonia.Visuals/Rendering/IDeferredRendererLock.cs
rename to src/Avalonia.Base/Rendering/IDeferredRendererLock.cs
diff --git a/src/Avalonia.Visuals/Rendering/IRenderLoop.cs b/src/Avalonia.Base/Rendering/IRenderLoop.cs
similarity index 100%
rename from src/Avalonia.Visuals/Rendering/IRenderLoop.cs
rename to src/Avalonia.Base/Rendering/IRenderLoop.cs
diff --git a/src/Avalonia.Visuals/Rendering/IRenderLoopTask.cs b/src/Avalonia.Base/Rendering/IRenderLoopTask.cs
similarity index 100%
rename from src/Avalonia.Visuals/Rendering/IRenderLoopTask.cs
rename to src/Avalonia.Base/Rendering/IRenderLoopTask.cs
diff --git a/src/Avalonia.Visuals/Rendering/IRenderRoot.cs b/src/Avalonia.Base/Rendering/IRenderRoot.cs
similarity index 100%
rename from src/Avalonia.Visuals/Rendering/IRenderRoot.cs
rename to src/Avalonia.Base/Rendering/IRenderRoot.cs
diff --git a/src/Avalonia.Visuals/Rendering/IRenderTimer.cs b/src/Avalonia.Base/Rendering/IRenderTimer.cs
similarity index 100%
rename from src/Avalonia.Visuals/Rendering/IRenderTimer.cs
rename to src/Avalonia.Base/Rendering/IRenderTimer.cs
diff --git a/src/Avalonia.Visuals/Rendering/IRenderer.cs b/src/Avalonia.Base/Rendering/IRenderer.cs
similarity index 100%
rename from src/Avalonia.Visuals/Rendering/IRenderer.cs
rename to src/Avalonia.Base/Rendering/IRenderer.cs
diff --git a/src/Avalonia.Visuals/Rendering/IRendererFactory.cs b/src/Avalonia.Base/Rendering/IRendererFactory.cs
similarity index 100%
rename from src/Avalonia.Visuals/Rendering/IRendererFactory.cs
rename to src/Avalonia.Base/Rendering/IRendererFactory.cs
diff --git a/src/Avalonia.Visuals/Rendering/IVisualBrushInitialize.cs b/src/Avalonia.Base/Rendering/IVisualBrushInitialize.cs
similarity index 100%
rename from src/Avalonia.Visuals/Rendering/IVisualBrushInitialize.cs
rename to src/Avalonia.Base/Rendering/IVisualBrushInitialize.cs
diff --git a/src/Avalonia.Visuals/Rendering/IVisualBrushRenderer.cs b/src/Avalonia.Base/Rendering/IVisualBrushRenderer.cs
similarity index 100%
rename from src/Avalonia.Visuals/Rendering/IVisualBrushRenderer.cs
rename to src/Avalonia.Base/Rendering/IVisualBrushRenderer.cs
diff --git a/src/Avalonia.Visuals/Rendering/ImmediateRenderer.cs b/src/Avalonia.Base/Rendering/ImmediateRenderer.cs
similarity index 100%
rename from src/Avalonia.Visuals/Rendering/ImmediateRenderer.cs
rename to src/Avalonia.Base/Rendering/ImmediateRenderer.cs
diff --git a/src/Avalonia.Visuals/Rendering/ManagedDeferredRendererLock.cs b/src/Avalonia.Base/Rendering/ManagedDeferredRendererLock.cs
similarity index 100%
rename from src/Avalonia.Visuals/Rendering/ManagedDeferredRendererLock.cs
rename to src/Avalonia.Base/Rendering/ManagedDeferredRendererLock.cs
diff --git a/src/Avalonia.Visuals/Rendering/RenderLayer.cs b/src/Avalonia.Base/Rendering/RenderLayer.cs
similarity index 100%
rename from src/Avalonia.Visuals/Rendering/RenderLayer.cs
rename to src/Avalonia.Base/Rendering/RenderLayer.cs
diff --git a/src/Avalonia.Visuals/Rendering/RenderLayers.cs b/src/Avalonia.Base/Rendering/RenderLayers.cs
similarity index 100%
rename from src/Avalonia.Visuals/Rendering/RenderLayers.cs
rename to src/Avalonia.Base/Rendering/RenderLayers.cs
diff --git a/src/Avalonia.Visuals/Rendering/RenderLoop.cs b/src/Avalonia.Base/Rendering/RenderLoop.cs
similarity index 100%
rename from src/Avalonia.Visuals/Rendering/RenderLoop.cs
rename to src/Avalonia.Base/Rendering/RenderLoop.cs
diff --git a/src/Avalonia.Visuals/Rendering/RendererBase.cs b/src/Avalonia.Base/Rendering/RendererBase.cs
similarity index 100%
rename from src/Avalonia.Visuals/Rendering/RendererBase.cs
rename to src/Avalonia.Base/Rendering/RendererBase.cs
diff --git a/src/Avalonia.Visuals/Rendering/SceneGraph/BitmapBlendModeNode.cs b/src/Avalonia.Base/Rendering/SceneGraph/BitmapBlendModeNode.cs
similarity index 98%
rename from src/Avalonia.Visuals/Rendering/SceneGraph/BitmapBlendModeNode.cs
rename to src/Avalonia.Base/Rendering/SceneGraph/BitmapBlendModeNode.cs
index 45b62b843b..98e89f6549 100644
--- a/src/Avalonia.Visuals/Rendering/SceneGraph/BitmapBlendModeNode.cs
+++ b/src/Avalonia.Base/Rendering/SceneGraph/BitmapBlendModeNode.cs
@@ -1,5 +1,5 @@
using Avalonia.Platform;
-using Avalonia.Visuals.Media.Imaging;
+using Avalonia.Media.Imaging;
namespace Avalonia.Rendering.SceneGraph
{
diff --git a/src/Avalonia.Visuals/Rendering/SceneGraph/BrushDrawOperation.cs b/src/Avalonia.Base/Rendering/SceneGraph/BrushDrawOperation.cs
similarity index 100%
rename from src/Avalonia.Visuals/Rendering/SceneGraph/BrushDrawOperation.cs
rename to src/Avalonia.Base/Rendering/SceneGraph/BrushDrawOperation.cs
diff --git a/src/Avalonia.Visuals/Rendering/SceneGraph/ClipNode.cs b/src/Avalonia.Base/Rendering/SceneGraph/ClipNode.cs
similarity index 100%
rename from src/Avalonia.Visuals/Rendering/SceneGraph/ClipNode.cs
rename to src/Avalonia.Base/Rendering/SceneGraph/ClipNode.cs
diff --git a/src/Avalonia.Visuals/Rendering/SceneGraph/CustomDrawOperation.cs b/src/Avalonia.Base/Rendering/SceneGraph/CustomDrawOperation.cs
similarity index 100%
rename from src/Avalonia.Visuals/Rendering/SceneGraph/CustomDrawOperation.cs
rename to src/Avalonia.Base/Rendering/SceneGraph/CustomDrawOperation.cs
diff --git a/src/Avalonia.Visuals/Rendering/SceneGraph/DeferredDrawingContextImpl.cs b/src/Avalonia.Base/Rendering/SceneGraph/DeferredDrawingContextImpl.cs
similarity index 99%
rename from src/Avalonia.Visuals/Rendering/SceneGraph/DeferredDrawingContextImpl.cs
rename to src/Avalonia.Base/Rendering/SceneGraph/DeferredDrawingContextImpl.cs
index 9710ca6c3c..5225b85020 100644
--- a/src/Avalonia.Visuals/Rendering/SceneGraph/DeferredDrawingContextImpl.cs
+++ b/src/Avalonia.Base/Rendering/SceneGraph/DeferredDrawingContextImpl.cs
@@ -3,7 +3,7 @@ using System.Collections.Generic;
using Avalonia.Media;
using Avalonia.Platform;
using Avalonia.Utilities;
-using Avalonia.Visuals.Media.Imaging;
+using Avalonia.Media.Imaging;
using Avalonia.VisualTree;
namespace Avalonia.Rendering.SceneGraph
diff --git a/src/Avalonia.Visuals/Rendering/SceneGraph/DrawOperation.cs b/src/Avalonia.Base/Rendering/SceneGraph/DrawOperation.cs
similarity index 100%
rename from src/Avalonia.Visuals/Rendering/SceneGraph/DrawOperation.cs
rename to src/Avalonia.Base/Rendering/SceneGraph/DrawOperation.cs
diff --git a/src/Avalonia.Visuals/Rendering/SceneGraph/EllipseNode.cs b/src/Avalonia.Base/Rendering/SceneGraph/EllipseNode.cs
similarity index 100%
rename from src/Avalonia.Visuals/Rendering/SceneGraph/EllipseNode.cs
rename to src/Avalonia.Base/Rendering/SceneGraph/EllipseNode.cs
diff --git a/src/Avalonia.Visuals/Rendering/SceneGraph/ExperimentalAcrylicNode.cs b/src/Avalonia.Base/Rendering/SceneGraph/ExperimentalAcrylicNode.cs
similarity index 100%
rename from src/Avalonia.Visuals/Rendering/SceneGraph/ExperimentalAcrylicNode.cs
rename to src/Avalonia.Base/Rendering/SceneGraph/ExperimentalAcrylicNode.cs
diff --git a/src/Avalonia.Visuals/Rendering/SceneGraph/GeometryBoundsHelper.cs b/src/Avalonia.Base/Rendering/SceneGraph/GeometryBoundsHelper.cs
similarity index 100%
rename from src/Avalonia.Visuals/Rendering/SceneGraph/GeometryBoundsHelper.cs
rename to src/Avalonia.Base/Rendering/SceneGraph/GeometryBoundsHelper.cs
diff --git a/src/Avalonia.Visuals/Rendering/SceneGraph/GeometryClipNode.cs b/src/Avalonia.Base/Rendering/SceneGraph/GeometryClipNode.cs
similarity index 100%
rename from src/Avalonia.Visuals/Rendering/SceneGraph/GeometryClipNode.cs
rename to src/Avalonia.Base/Rendering/SceneGraph/GeometryClipNode.cs
diff --git a/src/Avalonia.Visuals/Rendering/SceneGraph/GeometryNode.cs b/src/Avalonia.Base/Rendering/SceneGraph/GeometryNode.cs
similarity index 100%
rename from src/Avalonia.Visuals/Rendering/SceneGraph/GeometryNode.cs
rename to src/Avalonia.Base/Rendering/SceneGraph/GeometryNode.cs
diff --git a/src/Avalonia.Visuals/Rendering/SceneGraph/GlyphRunNode.cs b/src/Avalonia.Base/Rendering/SceneGraph/GlyphRunNode.cs
similarity index 100%
rename from src/Avalonia.Visuals/Rendering/SceneGraph/GlyphRunNode.cs
rename to src/Avalonia.Base/Rendering/SceneGraph/GlyphRunNode.cs
diff --git a/src/Avalonia.Visuals/Rendering/SceneGraph/IDrawOperation.cs b/src/Avalonia.Base/Rendering/SceneGraph/IDrawOperation.cs
similarity index 100%
rename from src/Avalonia.Visuals/Rendering/SceneGraph/IDrawOperation.cs
rename to src/Avalonia.Base/Rendering/SceneGraph/IDrawOperation.cs
diff --git a/src/Avalonia.Visuals/Rendering/SceneGraph/ISceneBuilder.cs b/src/Avalonia.Base/Rendering/SceneGraph/ISceneBuilder.cs
similarity index 100%
rename from src/Avalonia.Visuals/Rendering/SceneGraph/ISceneBuilder.cs
rename to src/Avalonia.Base/Rendering/SceneGraph/ISceneBuilder.cs
diff --git a/src/Avalonia.Visuals/Rendering/SceneGraph/IVisualNode.cs b/src/Avalonia.Base/Rendering/SceneGraph/IVisualNode.cs
similarity index 100%
rename from src/Avalonia.Visuals/Rendering/SceneGraph/IVisualNode.cs
rename to src/Avalonia.Base/Rendering/SceneGraph/IVisualNode.cs
diff --git a/src/Avalonia.Visuals/Rendering/SceneGraph/ImageNode.cs b/src/Avalonia.Base/Rendering/SceneGraph/ImageNode.cs
similarity index 99%
rename from src/Avalonia.Visuals/Rendering/SceneGraph/ImageNode.cs
rename to src/Avalonia.Base/Rendering/SceneGraph/ImageNode.cs
index d3da19d8c9..23267166a5 100644
--- a/src/Avalonia.Visuals/Rendering/SceneGraph/ImageNode.cs
+++ b/src/Avalonia.Base/Rendering/SceneGraph/ImageNode.cs
@@ -1,6 +1,6 @@
using Avalonia.Platform;
using Avalonia.Utilities;
-using Avalonia.Visuals.Media.Imaging;
+using Avalonia.Media.Imaging;
namespace Avalonia.Rendering.SceneGraph
{
diff --git a/src/Avalonia.Visuals/Rendering/SceneGraph/LineBoundsHelper.cs b/src/Avalonia.Base/Rendering/SceneGraph/LineBoundsHelper.cs
similarity index 100%
rename from src/Avalonia.Visuals/Rendering/SceneGraph/LineBoundsHelper.cs
rename to src/Avalonia.Base/Rendering/SceneGraph/LineBoundsHelper.cs
diff --git a/src/Avalonia.Visuals/Rendering/SceneGraph/LineNode.cs b/src/Avalonia.Base/Rendering/SceneGraph/LineNode.cs
similarity index 100%
rename from src/Avalonia.Visuals/Rendering/SceneGraph/LineNode.cs
rename to src/Avalonia.Base/Rendering/SceneGraph/LineNode.cs
diff --git a/src/Avalonia.Visuals/Rendering/SceneGraph/OpacityMaskNode.cs b/src/Avalonia.Base/Rendering/SceneGraph/OpacityMaskNode.cs
similarity index 100%
rename from src/Avalonia.Visuals/Rendering/SceneGraph/OpacityMaskNode.cs
rename to src/Avalonia.Base/Rendering/SceneGraph/OpacityMaskNode.cs
diff --git a/src/Avalonia.Visuals/Rendering/SceneGraph/OpacityNode.cs b/src/Avalonia.Base/Rendering/SceneGraph/OpacityNode.cs
similarity index 100%
rename from src/Avalonia.Visuals/Rendering/SceneGraph/OpacityNode.cs
rename to src/Avalonia.Base/Rendering/SceneGraph/OpacityNode.cs
diff --git a/src/Avalonia.Visuals/Rendering/SceneGraph/RectangleNode.cs b/src/Avalonia.Base/Rendering/SceneGraph/RectangleNode.cs
similarity index 100%
rename from src/Avalonia.Visuals/Rendering/SceneGraph/RectangleNode.cs
rename to src/Avalonia.Base/Rendering/SceneGraph/RectangleNode.cs
diff --git a/src/Avalonia.Visuals/Rendering/SceneGraph/Scene.cs b/src/Avalonia.Base/Rendering/SceneGraph/Scene.cs
similarity index 100%
rename from src/Avalonia.Visuals/Rendering/SceneGraph/Scene.cs
rename to src/Avalonia.Base/Rendering/SceneGraph/Scene.cs
diff --git a/src/Avalonia.Visuals/Rendering/SceneGraph/SceneBuilder.cs b/src/Avalonia.Base/Rendering/SceneGraph/SceneBuilder.cs
similarity index 100%
rename from src/Avalonia.Visuals/Rendering/SceneGraph/SceneBuilder.cs
rename to src/Avalonia.Base/Rendering/SceneGraph/SceneBuilder.cs
diff --git a/src/Avalonia.Visuals/Rendering/SceneGraph/SceneLayer.cs b/src/Avalonia.Base/Rendering/SceneGraph/SceneLayer.cs
similarity index 100%
rename from src/Avalonia.Visuals/Rendering/SceneGraph/SceneLayer.cs
rename to src/Avalonia.Base/Rendering/SceneGraph/SceneLayer.cs
diff --git a/src/Avalonia.Visuals/Rendering/SceneGraph/SceneLayers.cs b/src/Avalonia.Base/Rendering/SceneGraph/SceneLayers.cs
similarity index 100%
rename from src/Avalonia.Visuals/Rendering/SceneGraph/SceneLayers.cs
rename to src/Avalonia.Base/Rendering/SceneGraph/SceneLayers.cs
diff --git a/src/Avalonia.Visuals/Rendering/SceneGraph/VisualNode.cs b/src/Avalonia.Base/Rendering/SceneGraph/VisualNode.cs
similarity index 100%
rename from src/Avalonia.Visuals/Rendering/SceneGraph/VisualNode.cs
rename to src/Avalonia.Base/Rendering/SceneGraph/VisualNode.cs
diff --git a/src/Avalonia.Visuals/Rendering/SceneInvalidatedEventArgs.cs b/src/Avalonia.Base/Rendering/SceneInvalidatedEventArgs.cs
similarity index 100%
rename from src/Avalonia.Visuals/Rendering/SceneInvalidatedEventArgs.cs
rename to src/Avalonia.Base/Rendering/SceneInvalidatedEventArgs.cs
diff --git a/src/Avalonia.Visuals/Rendering/SleepLoopRenderTimer.cs b/src/Avalonia.Base/Rendering/SleepLoopRenderTimer.cs
similarity index 100%
rename from src/Avalonia.Visuals/Rendering/SleepLoopRenderTimer.cs
rename to src/Avalonia.Base/Rendering/SleepLoopRenderTimer.cs
diff --git a/src/Avalonia.Visuals/Rendering/UiThreadRenderTimer.cs b/src/Avalonia.Base/Rendering/UiThreadRenderTimer.cs
similarity index 100%
rename from src/Avalonia.Visuals/Rendering/UiThreadRenderTimer.cs
rename to src/Avalonia.Base/Rendering/UiThreadRenderTimer.cs
diff --git a/src/Avalonia.Visuals/Rendering/Utilities/TileBrushCalculator.cs b/src/Avalonia.Base/Rendering/Utilities/TileBrushCalculator.cs
similarity index 100%
rename from src/Avalonia.Visuals/Rendering/Utilities/TileBrushCalculator.cs
rename to src/Avalonia.Base/Rendering/Utilities/TileBrushCalculator.cs
diff --git a/src/Avalonia.Visuals/Rendering/ZIndexComparer.cs b/src/Avalonia.Base/Rendering/ZIndexComparer.cs
similarity index 100%
rename from src/Avalonia.Visuals/Rendering/ZIndexComparer.cs
rename to src/Avalonia.Base/Rendering/ZIndexComparer.cs
diff --git a/src/Avalonia.Visuals/RoundedRect.cs b/src/Avalonia.Base/RoundedRect.cs
similarity index 100%
rename from src/Avalonia.Visuals/RoundedRect.cs
rename to src/Avalonia.Base/RoundedRect.cs
diff --git a/src/Avalonia.Base/Settings.StyleCop b/src/Avalonia.Base/Settings.StyleCop
deleted file mode 100644
index bb05f99bc1..0000000000
--- a/src/Avalonia.Base/Settings.StyleCop
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/Avalonia.Visuals/Size.cs b/src/Avalonia.Base/Size.cs
similarity index 100%
rename from src/Avalonia.Visuals/Size.cs
rename to src/Avalonia.Base/Size.cs
diff --git a/src/Avalonia.Styling/StyledElement.cs b/src/Avalonia.Base/StyledElement.cs
similarity index 100%
rename from src/Avalonia.Styling/StyledElement.cs
rename to src/Avalonia.Base/StyledElement.cs
diff --git a/src/Avalonia.Styling/StyledElementExtensions.cs b/src/Avalonia.Base/StyledElementExtensions.cs
similarity index 100%
rename from src/Avalonia.Styling/StyledElementExtensions.cs
rename to src/Avalonia.Base/StyledElementExtensions.cs
diff --git a/src/Avalonia.Styling/Styling/Activators/AndActivator.cs b/src/Avalonia.Base/Styling/Activators/AndActivator.cs
similarity index 100%
rename from src/Avalonia.Styling/Styling/Activators/AndActivator.cs
rename to src/Avalonia.Base/Styling/Activators/AndActivator.cs
diff --git a/src/Avalonia.Styling/Styling/Activators/AndActivatorBuilder.cs b/src/Avalonia.Base/Styling/Activators/AndActivatorBuilder.cs
similarity index 100%
rename from src/Avalonia.Styling/Styling/Activators/AndActivatorBuilder.cs
rename to src/Avalonia.Base/Styling/Activators/AndActivatorBuilder.cs
diff --git a/src/Avalonia.Styling/Styling/Activators/IStyleActivator.cs b/src/Avalonia.Base/Styling/Activators/IStyleActivator.cs
similarity index 100%
rename from src/Avalonia.Styling/Styling/Activators/IStyleActivator.cs
rename to src/Avalonia.Base/Styling/Activators/IStyleActivator.cs
diff --git a/src/Avalonia.Styling/Styling/Activators/IStyleActivatorSink.cs b/src/Avalonia.Base/Styling/Activators/IStyleActivatorSink.cs
similarity index 100%
rename from src/Avalonia.Styling/Styling/Activators/IStyleActivatorSink.cs
rename to src/Avalonia.Base/Styling/Activators/IStyleActivatorSink.cs
diff --git a/src/Avalonia.Styling/Styling/Activators/NotActivator.cs b/src/Avalonia.Base/Styling/Activators/NotActivator.cs
similarity index 100%
rename from src/Avalonia.Styling/Styling/Activators/NotActivator.cs
rename to src/Avalonia.Base/Styling/Activators/NotActivator.cs
diff --git a/src/Avalonia.Styling/Styling/Activators/NthChildActivator.cs b/src/Avalonia.Base/Styling/Activators/NthChildActivator.cs
similarity index 100%
rename from src/Avalonia.Styling/Styling/Activators/NthChildActivator.cs
rename to src/Avalonia.Base/Styling/Activators/NthChildActivator.cs
diff --git a/src/Avalonia.Styling/Styling/Activators/OrActivator.cs b/src/Avalonia.Base/Styling/Activators/OrActivator.cs
similarity index 100%
rename from src/Avalonia.Styling/Styling/Activators/OrActivator.cs
rename to src/Avalonia.Base/Styling/Activators/OrActivator.cs
diff --git a/src/Avalonia.Styling/Styling/Activators/OrActivatorBuilder.cs b/src/Avalonia.Base/Styling/Activators/OrActivatorBuilder.cs
similarity index 100%
rename from src/Avalonia.Styling/Styling/Activators/OrActivatorBuilder.cs
rename to src/Avalonia.Base/Styling/Activators/OrActivatorBuilder.cs
diff --git a/src/Avalonia.Styling/Styling/Activators/PropertyEqualsActivator.cs b/src/Avalonia.Base/Styling/Activators/PropertyEqualsActivator.cs
similarity index 100%
rename from src/Avalonia.Styling/Styling/Activators/PropertyEqualsActivator.cs
rename to src/Avalonia.Base/Styling/Activators/PropertyEqualsActivator.cs
diff --git a/src/Avalonia.Styling/Styling/Activators/StyleActivatorBase.cs b/src/Avalonia.Base/Styling/Activators/StyleActivatorBase.cs
similarity index 100%
rename from src/Avalonia.Styling/Styling/Activators/StyleActivatorBase.cs
rename to src/Avalonia.Base/Styling/Activators/StyleActivatorBase.cs
diff --git a/src/Avalonia.Styling/Styling/Activators/StyleClassActivator.cs b/src/Avalonia.Base/Styling/Activators/StyleClassActivator.cs
similarity index 100%
rename from src/Avalonia.Styling/Styling/Activators/StyleClassActivator.cs
rename to src/Avalonia.Base/Styling/Activators/StyleClassActivator.cs
diff --git a/src/Avalonia.Styling/Styling/ChildSelector.cs b/src/Avalonia.Base/Styling/ChildSelector.cs
similarity index 100%
rename from src/Avalonia.Styling/Styling/ChildSelector.cs
rename to src/Avalonia.Base/Styling/ChildSelector.cs
diff --git a/src/Avalonia.Styling/Styling/DescendentSelector.cs b/src/Avalonia.Base/Styling/DescendentSelector.cs
similarity index 100%
rename from src/Avalonia.Styling/Styling/DescendentSelector.cs
rename to src/Avalonia.Base/Styling/DescendentSelector.cs
diff --git a/src/Avalonia.Styling/Styling/IGlobalStyles.cs b/src/Avalonia.Base/Styling/IGlobalStyles.cs
similarity index 100%
rename from src/Avalonia.Styling/Styling/IGlobalStyles.cs
rename to src/Avalonia.Base/Styling/IGlobalStyles.cs
diff --git a/src/Avalonia.Styling/Styling/ISetter.cs b/src/Avalonia.Base/Styling/ISetter.cs
similarity index 100%
rename from src/Avalonia.Styling/Styling/ISetter.cs
rename to src/Avalonia.Base/Styling/ISetter.cs
diff --git a/src/Avalonia.Styling/Styling/ISetterInstance.cs b/src/Avalonia.Base/Styling/ISetterInstance.cs
similarity index 100%
rename from src/Avalonia.Styling/Styling/ISetterInstance.cs
rename to src/Avalonia.Base/Styling/ISetterInstance.cs
diff --git a/src/Avalonia.Styling/Styling/ISetterValue.cs b/src/Avalonia.Base/Styling/ISetterValue.cs
similarity index 100%
rename from src/Avalonia.Styling/Styling/ISetterValue.cs
rename to src/Avalonia.Base/Styling/ISetterValue.cs
diff --git a/src/Avalonia.Styling/Styling/IStyle.cs b/src/Avalonia.Base/Styling/IStyle.cs
similarity index 100%
rename from src/Avalonia.Styling/Styling/IStyle.cs
rename to src/Avalonia.Base/Styling/IStyle.cs
diff --git a/src/Avalonia.Styling/Styling/IStyleHost.cs b/src/Avalonia.Base/Styling/IStyleHost.cs
similarity index 100%
rename from src/Avalonia.Styling/Styling/IStyleHost.cs
rename to src/Avalonia.Base/Styling/IStyleHost.cs
diff --git a/src/Avalonia.Styling/Styling/IStyleInstance.cs b/src/Avalonia.Base/Styling/IStyleInstance.cs
similarity index 100%
rename from src/Avalonia.Styling/Styling/IStyleInstance.cs
rename to src/Avalonia.Base/Styling/IStyleInstance.cs
diff --git a/src/Avalonia.Styling/Styling/IStyleable.cs b/src/Avalonia.Base/Styling/IStyleable.cs
similarity index 100%
rename from src/Avalonia.Styling/Styling/IStyleable.cs
rename to src/Avalonia.Base/Styling/IStyleable.cs
diff --git a/src/Avalonia.Styling/Styling/IStyler.cs b/src/Avalonia.Base/Styling/IStyler.cs
similarity index 100%
rename from src/Avalonia.Styling/Styling/IStyler.cs
rename to src/Avalonia.Base/Styling/IStyler.cs
diff --git a/src/Avalonia.Styling/Styling/ITemplate.cs b/src/Avalonia.Base/Styling/ITemplate.cs
similarity index 100%
rename from src/Avalonia.Styling/Styling/ITemplate.cs
rename to src/Avalonia.Base/Styling/ITemplate.cs
diff --git a/src/Avalonia.Styling/Styling/ITemplatedControl.cs b/src/Avalonia.Base/Styling/ITemplatedControl.cs
similarity index 100%
rename from src/Avalonia.Styling/Styling/ITemplatedControl.cs
rename to src/Avalonia.Base/Styling/ITemplatedControl.cs
diff --git a/src/Avalonia.Styling/Styling/NotSelector.cs b/src/Avalonia.Base/Styling/NotSelector.cs
similarity index 100%
rename from src/Avalonia.Styling/Styling/NotSelector.cs
rename to src/Avalonia.Base/Styling/NotSelector.cs
diff --git a/src/Avalonia.Styling/Styling/NthChildSelector.cs b/src/Avalonia.Base/Styling/NthChildSelector.cs
similarity index 100%
rename from src/Avalonia.Styling/Styling/NthChildSelector.cs
rename to src/Avalonia.Base/Styling/NthChildSelector.cs
diff --git a/src/Avalonia.Styling/Styling/NthLastChildSelector.cs b/src/Avalonia.Base/Styling/NthLastChildSelector.cs
similarity index 100%
rename from src/Avalonia.Styling/Styling/NthLastChildSelector.cs
rename to src/Avalonia.Base/Styling/NthLastChildSelector.cs
diff --git a/src/Avalonia.Styling/Styling/OrSelector.cs b/src/Avalonia.Base/Styling/OrSelector.cs
similarity index 100%
rename from src/Avalonia.Styling/Styling/OrSelector.cs
rename to src/Avalonia.Base/Styling/OrSelector.cs
diff --git a/src/Avalonia.Styling/Styling/PropertyEqualsSelector.cs b/src/Avalonia.Base/Styling/PropertyEqualsSelector.cs
similarity index 100%
rename from src/Avalonia.Styling/Styling/PropertyEqualsSelector.cs
rename to src/Avalonia.Base/Styling/PropertyEqualsSelector.cs
diff --git a/src/Avalonia.Styling/Styling/PropertySetterBindingInstance.cs b/src/Avalonia.Base/Styling/PropertySetterBindingInstance.cs
similarity index 100%
rename from src/Avalonia.Styling/Styling/PropertySetterBindingInstance.cs
rename to src/Avalonia.Base/Styling/PropertySetterBindingInstance.cs
diff --git a/src/Avalonia.Styling/Styling/PropertySetterInstance.cs b/src/Avalonia.Base/Styling/PropertySetterInstance.cs
similarity index 100%
rename from src/Avalonia.Styling/Styling/PropertySetterInstance.cs
rename to src/Avalonia.Base/Styling/PropertySetterInstance.cs
diff --git a/src/Avalonia.Styling/Styling/PropertySetterLazyInstance.cs b/src/Avalonia.Base/Styling/PropertySetterLazyInstance.cs
similarity index 100%
rename from src/Avalonia.Styling/Styling/PropertySetterLazyInstance.cs
rename to src/Avalonia.Base/Styling/PropertySetterLazyInstance.cs
diff --git a/src/Avalonia.Styling/Styling/Selector.cs b/src/Avalonia.Base/Styling/Selector.cs
similarity index 100%
rename from src/Avalonia.Styling/Styling/Selector.cs
rename to src/Avalonia.Base/Styling/Selector.cs
diff --git a/src/Avalonia.Styling/Styling/SelectorMatch.cs b/src/Avalonia.Base/Styling/SelectorMatch.cs
similarity index 100%
rename from src/Avalonia.Styling/Styling/SelectorMatch.cs
rename to src/Avalonia.Base/Styling/SelectorMatch.cs
diff --git a/src/Avalonia.Styling/Styling/Selectors.cs b/src/Avalonia.Base/Styling/Selectors.cs
similarity index 100%
rename from src/Avalonia.Styling/Styling/Selectors.cs
rename to src/Avalonia.Base/Styling/Selectors.cs
diff --git a/src/Avalonia.Styling/Styling/Setter.cs b/src/Avalonia.Base/Styling/Setter.cs
similarity index 100%
rename from src/Avalonia.Styling/Styling/Setter.cs
rename to src/Avalonia.Base/Styling/Setter.cs
diff --git a/src/Avalonia.Styling/Styling/Style.cs b/src/Avalonia.Base/Styling/Style.cs
similarity index 100%
rename from src/Avalonia.Styling/Styling/Style.cs
rename to src/Avalonia.Base/Styling/Style.cs
diff --git a/src/Avalonia.Styling/Styling/StyleInstance.cs b/src/Avalonia.Base/Styling/StyleInstance.cs
similarity index 100%
rename from src/Avalonia.Styling/Styling/StyleInstance.cs
rename to src/Avalonia.Base/Styling/StyleInstance.cs
diff --git a/src/Avalonia.Styling/Styling/Styler.cs b/src/Avalonia.Base/Styling/Styler.cs
similarity index 100%
rename from src/Avalonia.Styling/Styling/Styler.cs
rename to src/Avalonia.Base/Styling/Styler.cs
diff --git a/src/Avalonia.Styling/Styling/Styles.cs b/src/Avalonia.Base/Styling/Styles.cs
similarity index 100%
rename from src/Avalonia.Styling/Styling/Styles.cs
rename to src/Avalonia.Base/Styling/Styles.cs
diff --git a/src/Avalonia.Styling/Styling/TemplateSelector.cs b/src/Avalonia.Base/Styling/TemplateSelector.cs
similarity index 100%
rename from src/Avalonia.Styling/Styling/TemplateSelector.cs
rename to src/Avalonia.Base/Styling/TemplateSelector.cs
diff --git a/src/Avalonia.Styling/Styling/TypeNameAndClassSelector.cs b/src/Avalonia.Base/Styling/TypeNameAndClassSelector.cs
similarity index 100%
rename from src/Avalonia.Styling/Styling/TypeNameAndClassSelector.cs
rename to src/Avalonia.Base/Styling/TypeNameAndClassSelector.cs
diff --git a/src/Avalonia.Visuals/Thickness.cs b/src/Avalonia.Base/Thickness.cs
similarity index 100%
rename from src/Avalonia.Visuals/Thickness.cs
rename to src/Avalonia.Base/Thickness.cs
diff --git a/src/Avalonia.Visuals/Utilities/ArrayBuilder.cs b/src/Avalonia.Base/Utilities/ArrayBuilder.cs
similarity index 100%
rename from src/Avalonia.Visuals/Utilities/ArrayBuilder.cs
rename to src/Avalonia.Base/Utilities/ArrayBuilder.cs
diff --git a/src/Avalonia.Visuals/Utilities/ArraySlice.cs b/src/Avalonia.Base/Utilities/ArraySlice.cs
similarity index 100%
rename from src/Avalonia.Visuals/Utilities/ArraySlice.cs
rename to src/Avalonia.Base/Utilities/ArraySlice.cs
diff --git a/src/Avalonia.Visuals/Utilities/BinarySearchExtension.cs b/src/Avalonia.Base/Utilities/BinarySearchExtension.cs
similarity index 100%
rename from src/Avalonia.Visuals/Utilities/BinarySearchExtension.cs
rename to src/Avalonia.Base/Utilities/BinarySearchExtension.cs
diff --git a/src/Avalonia.Visuals/Utilities/FrugalList.cs b/src/Avalonia.Base/Utilities/FrugalList.cs
similarity index 100%
rename from src/Avalonia.Visuals/Utilities/FrugalList.cs
rename to src/Avalonia.Base/Utilities/FrugalList.cs
diff --git a/src/Avalonia.Visuals/Utilities/MappedArraySlice.cs b/src/Avalonia.Base/Utilities/MappedArraySlice.cs
similarity index 100%
rename from src/Avalonia.Visuals/Utilities/MappedArraySlice.cs
rename to src/Avalonia.Base/Utilities/MappedArraySlice.cs
diff --git a/src/Avalonia.Visuals/Utilities/ReadOnlySlice.cs b/src/Avalonia.Base/Utilities/ReadOnlySlice.cs
similarity index 100%
rename from src/Avalonia.Visuals/Utilities/ReadOnlySlice.cs
rename to src/Avalonia.Base/Utilities/ReadOnlySlice.cs
diff --git a/src/Avalonia.Visuals/Utilities/Span.cs b/src/Avalonia.Base/Utilities/Span.cs
similarity index 100%
rename from src/Avalonia.Visuals/Utilities/Span.cs
rename to src/Avalonia.Base/Utilities/Span.cs
diff --git a/src/Avalonia.Visuals/Utilities/ValueSpan.cs b/src/Avalonia.Base/Utilities/ValueSpan.cs
similarity index 100%
rename from src/Avalonia.Visuals/Utilities/ValueSpan.cs
rename to src/Avalonia.Base/Utilities/ValueSpan.cs
diff --git a/src/Avalonia.Visuals/Vector.cs b/src/Avalonia.Base/Vector.cs
similarity index 100%
rename from src/Avalonia.Visuals/Vector.cs
rename to src/Avalonia.Base/Vector.cs
diff --git a/src/Avalonia.Visuals/Visual.cs b/src/Avalonia.Base/Visual.cs
similarity index 100%
rename from src/Avalonia.Visuals/Visual.cs
rename to src/Avalonia.Base/Visual.cs
diff --git a/src/Avalonia.Visuals/VisualExtensions.cs b/src/Avalonia.Base/VisualExtensions.cs
similarity index 100%
rename from src/Avalonia.Visuals/VisualExtensions.cs
rename to src/Avalonia.Base/VisualExtensions.cs
diff --git a/src/Avalonia.Visuals/VisualTree/IHostedVisualTreeRoot.cs b/src/Avalonia.Base/VisualTree/IHostedVisualTreeRoot.cs
similarity index 100%
rename from src/Avalonia.Visuals/VisualTree/IHostedVisualTreeRoot.cs
rename to src/Avalonia.Base/VisualTree/IHostedVisualTreeRoot.cs
diff --git a/src/Avalonia.Visuals/VisualTree/IVisual.cs b/src/Avalonia.Base/VisualTree/IVisual.cs
similarity index 100%
rename from src/Avalonia.Visuals/VisualTree/IVisual.cs
rename to src/Avalonia.Base/VisualTree/IVisual.cs
diff --git a/src/Avalonia.Visuals/VisualTree/IVisualTreeHost.cs b/src/Avalonia.Base/VisualTree/IVisualTreeHost.cs
similarity index 100%
rename from src/Avalonia.Visuals/VisualTree/IVisualTreeHost.cs
rename to src/Avalonia.Base/VisualTree/IVisualTreeHost.cs
diff --git a/src/Avalonia.Visuals/VisualTree/IVisualWithRoundRectClip.cs b/src/Avalonia.Base/VisualTree/IVisualWithRoundRectClip.cs
similarity index 100%
rename from src/Avalonia.Visuals/VisualTree/IVisualWithRoundRectClip.cs
rename to src/Avalonia.Base/VisualTree/IVisualWithRoundRectClip.cs
diff --git a/src/Avalonia.Visuals/VisualTree/TransformedBounds.cs b/src/Avalonia.Base/VisualTree/TransformedBounds.cs
similarity index 100%
rename from src/Avalonia.Visuals/VisualTree/TransformedBounds.cs
rename to src/Avalonia.Base/VisualTree/TransformedBounds.cs
diff --git a/src/Avalonia.Visuals/VisualTree/VisualExtensions.cs b/src/Avalonia.Base/VisualTree/VisualExtensions.cs
similarity index 100%
rename from src/Avalonia.Visuals/VisualTree/VisualExtensions.cs
rename to src/Avalonia.Base/VisualTree/VisualExtensions.cs
diff --git a/src/Avalonia.Visuals/VisualTree/VisualLocator.cs b/src/Avalonia.Base/VisualTree/VisualLocator.cs
similarity index 100%
rename from src/Avalonia.Visuals/VisualTree/VisualLocator.cs
rename to src/Avalonia.Base/VisualTree/VisualLocator.cs
diff --git a/src/Avalonia.Visuals/VisualTreeAttachmentEventArgs.cs b/src/Avalonia.Base/VisualTreeAttachmentEventArgs.cs
similarity index 100%
rename from src/Avalonia.Visuals/VisualTreeAttachmentEventArgs.cs
rename to src/Avalonia.Base/VisualTreeAttachmentEventArgs.cs
diff --git a/src/Avalonia.Build.Tasks/Avalonia.Build.Tasks.csproj b/src/Avalonia.Build.Tasks/Avalonia.Build.Tasks.csproj
index 9629324c8d..6267c74df9 100644
--- a/src/Avalonia.Build.Tasks/Avalonia.Build.Tasks.csproj
+++ b/src/Avalonia.Build.Tasks/Avalonia.Build.Tasks.csproj
@@ -62,34 +62,34 @@
Markup/%(RecursiveDir)%(FileName)%(Extension)
-
+
Markup/%(RecursiveDir)%(FileName)%(Extension)
-
+
Markup/%(RecursiveDir)%(FileName)%(Extension)
-
+
Markup/%(RecursiveDir)%(FileName)%(Extension)
-
+
Markup/%(RecursiveDir)%(FileName)%(Extension)
-
+
Markup/%(RecursiveDir)%(FileName)%(Extension)
-
+
Markup/%(RecursiveDir)%(FileName)%(Extension)
-
+
Markup/%(RecursiveDir)%(FileName)%(Extension)
-
+
Markup/%(RecursiveDir)%(FileName)%(Extension)
-
+
Markup/%(RecursiveDir)%(FileName)%(Extension)
-
+
Markup/%(RecursiveDir)%(FileName)%(Extension)
diff --git a/src/Avalonia.Controls.DataGrid/Avalonia.Controls.DataGrid.csproj b/src/Avalonia.Controls.DataGrid/Avalonia.Controls.DataGrid.csproj
index 0438e4e0e8..410cac72fc 100644
--- a/src/Avalonia.Controls.DataGrid/Avalonia.Controls.DataGrid.csproj
+++ b/src/Avalonia.Controls.DataGrid/Avalonia.Controls.DataGrid.csproj
@@ -4,14 +4,8 @@
Avalonia.Controls.DataGrid
-
-
-
-
-
-
diff --git a/src/Avalonia.Controls/Avalonia.Controls.csproj b/src/Avalonia.Controls/Avalonia.Controls.csproj
index 5d34261bdf..4d239e69f4 100644
--- a/src/Avalonia.Controls/Avalonia.Controls.csproj
+++ b/src/Avalonia.Controls/Avalonia.Controls.csproj
@@ -6,14 +6,8 @@
-
-
-
-
-
-
diff --git a/src/Avalonia.Controls/MenuItem.cs b/src/Avalonia.Controls/MenuItem.cs
index c03c6000d8..955af8888b 100644
--- a/src/Avalonia.Controls/MenuItem.cs
+++ b/src/Avalonia.Controls/MenuItem.cs
@@ -644,7 +644,9 @@ namespace Avalonia.Controls
/// The property change event.
private void IsSelectedChanged(AvaloniaPropertyChangedEventArgs e)
{
- if ((bool)e.NewValue!)
+ var parentMenu = Parent as Menu;
+
+ if ((bool)e.NewValue! && (parentMenu is null || parentMenu.IsOpen))
{
Focus();
}
diff --git a/src/Avalonia.Controls/Platform/DefaultMenuInteractionHandler.cs b/src/Avalonia.Controls/Platform/DefaultMenuInteractionHandler.cs
index 23ecdb2e7b..6e9ac537f1 100644
--- a/src/Avalonia.Controls/Platform/DefaultMenuInteractionHandler.cs
+++ b/src/Avalonia.Controls/Platform/DefaultMenuInteractionHandler.cs
@@ -149,13 +149,18 @@ namespace Avalonia.Controls.Platform
case Key.Up:
case Key.Down:
{
- if (item?.IsTopLevel == true)
+ if (item?.IsTopLevel == true && item.HasSubMenu)
{
- if (item.HasSubMenu && !item.IsSubMenuOpen)
+ if (!item.IsSubMenuOpen)
{
Open(item, true);
- e.Handled = true;
}
+ else
+ {
+ item.MoveSelection(NavigationDirection.First, true);
+ }
+
+ e.Handled = true;
}
else
{
@@ -247,7 +252,8 @@ namespace Avalonia.Controls.Platform
// new menu.
if (item.IsSubMenuOpen &&
item.Parent is IMenu &&
- item.Parent.SelectedItem is object)
+ item.Parent.SelectedItem is object &&
+ item.Parent.SelectedItem != item)
{
item.Close();
Open(item.Parent.SelectedItem, true);
diff --git a/src/Avalonia.DesignerSupport/Avalonia.DesignerSupport.csproj b/src/Avalonia.DesignerSupport/Avalonia.DesignerSupport.csproj
index f8a7cdc690..0270000d8c 100644
--- a/src/Avalonia.DesignerSupport/Avalonia.DesignerSupport.csproj
+++ b/src/Avalonia.DesignerSupport/Avalonia.DesignerSupport.csproj
@@ -16,14 +16,8 @@
-
-
-
-
-
-
diff --git a/src/Avalonia.Diagnostics/Avalonia.Diagnostics.csproj b/src/Avalonia.Diagnostics/Avalonia.Diagnostics.csproj
index bb908e07dc..2fb7c07b6f 100644
--- a/src/Avalonia.Diagnostics/Avalonia.Diagnostics.csproj
+++ b/src/Avalonia.Diagnostics/Avalonia.Diagnostics.csproj
@@ -16,14 +16,8 @@
-
-
-
-
-
-
diff --git a/src/Avalonia.Headless/HeadlessPlatformRenderInterface.cs b/src/Avalonia.Headless/HeadlessPlatformRenderInterface.cs
index 90221bb922..addc248d58 100644
--- a/src/Avalonia.Headless/HeadlessPlatformRenderInterface.cs
+++ b/src/Avalonia.Headless/HeadlessPlatformRenderInterface.cs
@@ -7,7 +7,7 @@ using Avalonia.Platform;
using Avalonia.Rendering;
using Avalonia.Rendering.SceneGraph;
using Avalonia.Utilities;
-using Avalonia.Visuals.Media.Imaging;
+using Avalonia.Media.Imaging;
namespace Avalonia.Headless
{
diff --git a/src/Avalonia.Input/ApiCompatBaseline.txt b/src/Avalonia.Input/ApiCompatBaseline.txt
deleted file mode 100644
index d655483e93..0000000000
--- a/src/Avalonia.Input/ApiCompatBaseline.txt
+++ /dev/null
@@ -1,30 +0,0 @@
-Compat issues with assembly Avalonia.Input:
-MembersMustExist : Member 'public Avalonia.Platform.IPlatformHandle Avalonia.Input.Cursor.PlatformCursor.get()' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public Avalonia.Interactivity.RoutedEvent Avalonia.Interactivity.RoutedEvent Avalonia.Input.Gestures.DoubleTappedEvent' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public Avalonia.Interactivity.RoutedEvent Avalonia.Interactivity.RoutedEvent Avalonia.Input.Gestures.RightTappedEvent' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public Avalonia.Interactivity.RoutedEvent Avalonia.Interactivity.RoutedEvent Avalonia.Input.Gestures.TappedEvent' does not exist in the implementation but it does exist in the contract.
-InterfacesShouldHaveSameMembers : Interface member 'public void Avalonia.Input.IFocusManager.RemoveFocusScope(Avalonia.Input.IFocusScope)' is present in the implementation but not in the contract.
-MembersMustExist : Member 'public Avalonia.Interactivity.RoutedEvent Avalonia.Interactivity.RoutedEvent Avalonia.Input.InputElement.TextInputOptionsQueryEvent' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public Avalonia.Interactivity.RoutedEvent Avalonia.Interactivity.RoutedEvent Avalonia.Input.InputElement.DoubleTappedEvent' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public Avalonia.Interactivity.RoutedEvent Avalonia.Interactivity.RoutedEvent Avalonia.Input.InputElement.TappedEvent' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public void Avalonia.Input.InputElement.add_DoubleTapped(System.EventHandler)' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public void Avalonia.Input.InputElement.add_Tapped(System.EventHandler)' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public void Avalonia.Input.InputElement.add_TextInputOptionsQuery(System.EventHandler)' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'protected void Avalonia.Input.InputElement.OnPropertyChanged(Avalonia.AvaloniaPropertyChangedEventArgs)' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public void Avalonia.Input.InputElement.remove_DoubleTapped(System.EventHandler)' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public void Avalonia.Input.InputElement.remove_Tapped(System.EventHandler)' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public void Avalonia.Input.InputElement.remove_TextInputOptionsQuery(System.EventHandler)' does not exist in the implementation but it does exist in the contract.
-InterfacesShouldHaveSameMembers : Interface member 'public void Avalonia.Input.TextInput.ITextInputMethodImpl.SetActive(System.Boolean)' is present in the contract but not in the implementation.
-MembersMustExist : Member 'public void Avalonia.Input.TextInput.ITextInputMethodImpl.SetActive(System.Boolean)' does not exist in the implementation but it does exist in the contract.
-InterfacesShouldHaveSameMembers : Interface member 'public void Avalonia.Input.TextInput.ITextInputMethodImpl.SetClient(Avalonia.Input.TextInput.ITextInputMethodClient)' is present in the implementation but not in the contract.
-InterfacesShouldHaveSameMembers : Interface member 'public void Avalonia.Input.TextInput.ITextInputMethodImpl.SetOptions(Avalonia.Input.TextInput.TextInputOptions)' is present in the implementation but not in the contract.
-InterfacesShouldHaveSameMembers : Interface member 'public void Avalonia.Input.TextInput.ITextInputMethodImpl.SetOptions(Avalonia.Input.TextInput.TextInputOptionsQueryEventArgs)' is present in the contract but not in the implementation.
-MembersMustExist : Member 'public void Avalonia.Input.TextInput.ITextInputMethodImpl.SetOptions(Avalonia.Input.TextInput.TextInputOptionsQueryEventArgs)' does not exist in the implementation but it does exist in the contract.
-EnumValuesMustMatch : Enum value 'Avalonia.Input.TextInput.TextInputContentType Avalonia.Input.TextInput.TextInputContentType.Email' is (System.Int32)5 in the implementation but (System.Int32)1 in the contract.
-EnumValuesMustMatch : Enum value 'Avalonia.Input.TextInput.TextInputContentType Avalonia.Input.TextInput.TextInputContentType.Number' is (System.Int32)4 in the implementation but (System.Int32)3 in the contract.
-EnumValuesMustMatch : Enum value 'Avalonia.Input.TextInput.TextInputContentType Avalonia.Input.TextInput.TextInputContentType.Password' is (System.Int32)8 in the implementation but (System.Int32)5 in the contract.
-MembersMustExist : Member 'public Avalonia.Input.TextInput.TextInputContentType Avalonia.Input.TextInput.TextInputContentType Avalonia.Input.TextInput.TextInputContentType.Phone' does not exist in the implementation but it does exist in the contract.
-EnumValuesMustMatch : Enum value 'Avalonia.Input.TextInput.TextInputContentType Avalonia.Input.TextInput.TextInputContentType.Url' is (System.Int32)6 in the implementation but (System.Int32)4 in the contract.
-TypesMustExist : Type 'Avalonia.Input.TextInput.TextInputOptionsQueryEventArgs' does not exist in the implementation but it does exist in the contract.
-TypesMustExist : Type 'Avalonia.Platform.IStandardCursorFactory' does not exist in the implementation but it does exist in the contract.
-Total Issues: 28
diff --git a/src/Avalonia.Input/Avalonia.Input.csproj b/src/Avalonia.Input/Avalonia.Input.csproj
deleted file mode 100644
index 6e0321b3aa..0000000000
--- a/src/Avalonia.Input/Avalonia.Input.csproj
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
- net6.0;netstandard2.0
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/Avalonia.Input/Properties/AssemblyInfo.cs b/src/Avalonia.Input/Properties/AssemblyInfo.cs
deleted file mode 100644
index a7126d6ba9..0000000000
--- a/src/Avalonia.Input/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,10 +0,0 @@
-using System.Reflection;
-using System.Runtime.CompilerServices;
-using Avalonia.Metadata;
-
-[assembly: XmlnsDefinition("https://github.com/avaloniaui", "Avalonia.Input")]
-[assembly: XmlnsDefinition("https://github.com/avaloniaui", "Avalonia.Input.TextInput")]
-[assembly: XmlnsDefinition("https://github.com/avaloniaui", "Avalonia.Input.GestureRecognizers")]
-
-[assembly: InternalsVisibleTo("Avalonia.Controls, PublicKey=0024000004800000940000000602000000240000525341310004000001000100c1bba1142285fe0419326fb25866ba62c47e6c2b5c1ab0c95b46413fad375471232cb81706932e1cef38781b9ebd39d5100401bacb651c6c5bbf59e571e81b3bc08d2a622004e08b1a6ece82a7e0b9857525c86d2b95fab4bc3dce148558d7f3ae61aa3a234086902aeface87d9dfdd32b9d2fe3c6dd4055b5ab4b104998bd87")]
-[assembly: InternalsVisibleTo("Avalonia.Controls.UnitTests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100c1bba1142285fe0419326fb25866ba62c47e6c2b5c1ab0c95b46413fad375471232cb81706932e1cef38781b9ebd39d5100401bacb651c6c5bbf59e571e81b3bc08d2a622004e08b1a6ece82a7e0b9857525c86d2b95fab4bc3dce148558d7f3ae61aa3a234086902aeface87d9dfdd32b9d2fe3c6dd4055b5ab4b104998bd87")]
diff --git a/src/Avalonia.Interactivity/ApiCompatBaseline.txt b/src/Avalonia.Interactivity/ApiCompatBaseline.txt
deleted file mode 100644
index fcc74cf864..0000000000
--- a/src/Avalonia.Interactivity/ApiCompatBaseline.txt
+++ /dev/null
@@ -1 +0,0 @@
-Total Issues: 0
diff --git a/src/Avalonia.Interactivity/Avalonia.Interactivity.csproj b/src/Avalonia.Interactivity/Avalonia.Interactivity.csproj
deleted file mode 100644
index fa115ed980..0000000000
--- a/src/Avalonia.Interactivity/Avalonia.Interactivity.csproj
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
- net6.0;netstandard2.0
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/Avalonia.Layout/ApiCompatBaseline.txt b/src/Avalonia.Layout/ApiCompatBaseline.txt
deleted file mode 100644
index d5b7f17ff7..0000000000
--- a/src/Avalonia.Layout/ApiCompatBaseline.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-Compat issues with assembly Avalonia.Layout:
-MembersMustExist : Member 'protected void Avalonia.Layout.StackLayout.OnPropertyChanged(Avalonia.AvaloniaPropertyChangedEventArgs)' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'protected void Avalonia.Layout.UniformGridLayout.OnPropertyChanged(Avalonia.AvaloniaPropertyChangedEventArgs)' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'protected void Avalonia.Layout.WrapLayout.OnPropertyChanged(Avalonia.AvaloniaPropertyChangedEventArgs)' does not exist in the implementation but it does exist in the contract.
-Total Issues: 3
diff --git a/src/Avalonia.Layout/Avalonia.Layout.csproj b/src/Avalonia.Layout/Avalonia.Layout.csproj
deleted file mode 100644
index d94c3eb101..0000000000
--- a/src/Avalonia.Layout/Avalonia.Layout.csproj
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
- net6.0;netstandard2.0
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/Avalonia.Layout/Properties/AssemblyInfo.cs b/src/Avalonia.Layout/Properties/AssemblyInfo.cs
deleted file mode 100644
index efcbf184b5..0000000000
--- a/src/Avalonia.Layout/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,7 +0,0 @@
-using System.Runtime.CompilerServices;
-using Avalonia.Metadata;
-
-[assembly: InternalsVisibleTo("Avalonia.Layout.UnitTests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100c1bba1142285fe0419326fb25866ba62c47e6c2b5c1ab0c95b46413fad375471232cb81706932e1cef38781b9ebd39d5100401bacb651c6c5bbf59e571e81b3bc08d2a622004e08b1a6ece82a7e0b9857525c86d2b95fab4bc3dce148558d7f3ae61aa3a234086902aeface87d9dfdd32b9d2fe3c6dd4055b5ab4b104998bd87")]
-
-[assembly: XmlnsDefinition("https://github.com/avaloniaui", "Avalonia.Layout")]
-
diff --git a/src/Avalonia.OpenGL/Avalonia.OpenGL.csproj b/src/Avalonia.OpenGL/Avalonia.OpenGL.csproj
index 07cd295711..76924d060f 100644
--- a/src/Avalonia.OpenGL/Avalonia.OpenGL.csproj
+++ b/src/Avalonia.OpenGL/Avalonia.OpenGL.csproj
@@ -8,7 +8,6 @@
-
diff --git a/src/Avalonia.Remote.Protocol/Avalonia.Remote.Protocol.csproj b/src/Avalonia.Remote.Protocol/Avalonia.Remote.Protocol.csproj
index 5a8301a2e9..d746c6db7e 100644
--- a/src/Avalonia.Remote.Protocol/Avalonia.Remote.Protocol.csproj
+++ b/src/Avalonia.Remote.Protocol/Avalonia.Remote.Protocol.csproj
@@ -7,7 +7,7 @@
Avalonia.Remote.Protocol
-
+
\ No newline at end of file
diff --git a/src/Avalonia.Styling/ApiCompatBaseline.txt b/src/Avalonia.Styling/ApiCompatBaseline.txt
deleted file mode 100644
index 0eedc3e360..0000000000
--- a/src/Avalonia.Styling/ApiCompatBaseline.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-Compat issues with assembly Avalonia.Styling:
-InterfacesShouldHaveSameMembers : Interface member 'public System.Boolean Avalonia.Styling.IStyleInstance.IsActive' is present in the implementation but not in the contract.
-InterfacesShouldHaveSameMembers : Interface member 'public System.Boolean Avalonia.Styling.IStyleInstance.IsActive.get()' is present in the implementation but not in the contract.
-Total Issues: 2
diff --git a/src/Avalonia.Styling/Avalonia.Styling.csproj b/src/Avalonia.Styling/Avalonia.Styling.csproj
deleted file mode 100644
index 260cfb0516..0000000000
--- a/src/Avalonia.Styling/Avalonia.Styling.csproj
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
- net6.0;netstandard2.0
- Avalonia.Styling
- Avalonia
-
-
-
-
-
-
-
-
-
diff --git a/src/Avalonia.Styling/Properties/AssemblyInfo.cs b/src/Avalonia.Styling/Properties/AssemblyInfo.cs
deleted file mode 100644
index ab034740ed..0000000000
--- a/src/Avalonia.Styling/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,9 +0,0 @@
-using System.Runtime.CompilerServices;
-using Avalonia.Metadata;
-
-[assembly: XmlnsDefinition("https://github.com/avaloniaui", "Avalonia.Controls")]
-[assembly: XmlnsDefinition("https://github.com/avaloniaui", "Avalonia.LogicalTree")]
-[assembly: XmlnsDefinition("https://github.com/avaloniaui", "Avalonia.Styling")]
-
-[assembly: InternalsVisibleTo("Avalonia.Styling.UnitTests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100c1bba1142285fe0419326fb25866ba62c47e6c2b5c1ab0c95b46413fad375471232cb81706932e1cef38781b9ebd39d5100401bacb651c6c5bbf59e571e81b3bc08d2a622004e08b1a6ece82a7e0b9857525c86d2b95fab4bc3dce148558d7f3ae61aa3a234086902aeface87d9dfdd32b9d2fe3c6dd4055b5ab4b104998bd87")]
-
diff --git a/src/Avalonia.Themes.Default/Avalonia.Themes.Default.csproj b/src/Avalonia.Themes.Default/Avalonia.Themes.Default.csproj
index ef200b5532..40ed4a0f87 100644
--- a/src/Avalonia.Themes.Default/Avalonia.Themes.Default.csproj
+++ b/src/Avalonia.Themes.Default/Avalonia.Themes.Default.csproj
@@ -3,16 +3,10 @@
net6.0;netstandard2.0
-
-
-
-
-
-
-
+
diff --git a/src/Avalonia.Themes.Fluent/Avalonia.Themes.Fluent.csproj b/src/Avalonia.Themes.Fluent/Avalonia.Themes.Fluent.csproj
index 885661536c..35603fe216 100644
--- a/src/Avalonia.Themes.Fluent/Avalonia.Themes.Fluent.csproj
+++ b/src/Avalonia.Themes.Fluent/Avalonia.Themes.Fluent.csproj
@@ -3,16 +3,10 @@
net6.0;netstandard2.0
-
-
-
-
-
-
-
+
diff --git a/src/Avalonia.Visuals/ApiCompatBaseline.txt b/src/Avalonia.Visuals/ApiCompatBaseline.txt
deleted file mode 100644
index f86101cdd5..0000000000
--- a/src/Avalonia.Visuals/ApiCompatBaseline.txt
+++ /dev/null
@@ -1,190 +0,0 @@
-Compat issues with assembly Avalonia.Visuals:
-MembersMustExist : Member 'public System.Threading.Tasks.Task Avalonia.Animation.CompositePageTransition.Start(Avalonia.Visual, Avalonia.Visual, System.Boolean)' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public System.Threading.Tasks.Task Avalonia.Animation.CrossFade.Start(Avalonia.Visual, Avalonia.Visual)' does not exist in the implementation but it does exist in the contract.
-InterfacesShouldHaveSameMembers : Interface member 'public System.Threading.Tasks.Task Avalonia.Animation.IPageTransition.Start(Avalonia.Visual, Avalonia.Visual, System.Boolean)' is present in the contract but not in the implementation.
-MembersMustExist : Member 'public System.Threading.Tasks.Task Avalonia.Animation.IPageTransition.Start(Avalonia.Visual, Avalonia.Visual, System.Boolean)' does not exist in the implementation but it does exist in the contract.
-InterfacesShouldHaveSameMembers : Interface member 'public System.Threading.Tasks.Task Avalonia.Animation.IPageTransition.Start(Avalonia.Visual, Avalonia.Visual, System.Boolean, System.Threading.CancellationToken)' is present in the implementation but not in the contract.
-MembersMustExist : Member 'public System.Threading.Tasks.Task Avalonia.Animation.PageSlide.Start(Avalonia.Visual, Avalonia.Visual, System.Boolean)' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'protected void Avalonia.Media.DashStyle.OnPropertyChanged(Avalonia.AvaloniaPropertyChangedEventArgs)' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public void Avalonia.Media.DrawingContext.DrawText(Avalonia.Media.IBrush, Avalonia.Point, Avalonia.Media.FormattedText)' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'protected void Avalonia.Media.DrawingImage.OnPropertyChanged(Avalonia.AvaloniaPropertyChangedEventArgs)' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public System.Boolean Avalonia.Media.FontManager.TryMatchCharacter(System.Int32, Avalonia.Media.FontStyle, Avalonia.Media.FontWeight, Avalonia.Media.FontFamily, System.Globalization.CultureInfo, Avalonia.Media.Typeface)' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public void Avalonia.Media.FormattedText..ctor()' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public void Avalonia.Media.FormattedText..ctor(Avalonia.Platform.IPlatformRenderInterface)' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public void Avalonia.Media.FormattedText..ctor(System.String, Avalonia.Media.Typeface, System.Double, Avalonia.Media.TextAlignment, Avalonia.Media.TextWrapping, Avalonia.Size)' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public Avalonia.Rect Avalonia.Media.FormattedText.Bounds.get()' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public Avalonia.Size Avalonia.Media.FormattedText.Constraint.get()' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public void Avalonia.Media.FormattedText.Constraint.set(Avalonia.Size)' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public System.Double Avalonia.Media.FormattedText.FontSize.get()' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public void Avalonia.Media.FormattedText.FontSize.set(System.Double)' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public System.Collections.Generic.IEnumerable Avalonia.Media.FormattedText.GetLines()' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public Avalonia.Media.TextHitTestResult Avalonia.Media.FormattedText.HitTestPoint(Avalonia.Point)' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public Avalonia.Rect Avalonia.Media.FormattedText.HitTestTextPosition(System.Int32)' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public System.Collections.Generic.IEnumerable Avalonia.Media.FormattedText.HitTestTextRange(System.Int32, System.Int32)' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public Avalonia.Platform.IFormattedTextImpl Avalonia.Media.FormattedText.PlatformImpl.get()' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public System.Collections.Generic.IReadOnlyList Avalonia.Media.FormattedText.Spans.get()' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public void Avalonia.Media.FormattedText.Spans.set(System.Collections.Generic.IReadOnlyList)' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public System.String Avalonia.Media.FormattedText.Text.get()' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public void Avalonia.Media.FormattedText.Text.set(System.String)' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public Avalonia.Media.TextWrapping Avalonia.Media.FormattedText.TextWrapping.get()' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public void Avalonia.Media.FormattedText.TextWrapping.set(Avalonia.Media.TextWrapping)' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public Avalonia.Media.Typeface Avalonia.Media.FormattedText.Typeface.get()' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public void Avalonia.Media.FormattedText.Typeface.set(Avalonia.Media.Typeface)' does not exist in the implementation but it does exist in the contract.
-TypesMustExist : Type 'Avalonia.Media.FormattedTextLine' does not exist in the implementation but it does exist in the contract.
-TypesMustExist : Type 'Avalonia.Media.FormattedTextStyleSpan' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public void Avalonia.Media.GlyphRun..ctor()' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public void Avalonia.Media.GlyphRun..ctor(Avalonia.Media.GlyphTypeface, System.Double, Avalonia.Utilities.ReadOnlySlice, Avalonia.Utilities.ReadOnlySlice, Avalonia.Utilities.ReadOnlySlice, Avalonia.Utilities.ReadOnlySlice, Avalonia.Utilities.ReadOnlySlice, System.Int32)' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public Avalonia.Utilities.ReadOnlySlice Avalonia.Media.GlyphRun.GlyphAdvances.get()' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public void Avalonia.Media.GlyphRun.GlyphAdvances.set(Avalonia.Utilities.ReadOnlySlice)' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public Avalonia.Utilities.ReadOnlySlice Avalonia.Media.GlyphRun.GlyphClusters.get()' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public void Avalonia.Media.GlyphRun.GlyphClusters.set(Avalonia.Utilities.ReadOnlySlice)' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public Avalonia.Utilities.ReadOnlySlice Avalonia.Media.GlyphRun.GlyphIndices.get()' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public void Avalonia.Media.GlyphRun.GlyphIndices.set(Avalonia.Utilities.ReadOnlySlice)' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public Avalonia.Utilities.ReadOnlySlice Avalonia.Media.GlyphRun.GlyphOffsets.get()' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public void Avalonia.Media.GlyphRun.GlyphOffsets.set(Avalonia.Utilities.ReadOnlySlice)' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public void Avalonia.Media.GlyphRun.GlyphTypeface.set(Avalonia.Media.GlyphTypeface)' does not exist in the implementation but it does exist in the contract.
-InterfacesShouldHaveSameMembers : Interface member 'public Avalonia.Media.ITransform Avalonia.Media.IBrush.Transform' is present in the implementation but not in the contract.
-InterfacesShouldHaveSameMembers : Interface member 'public Avalonia.Media.ITransform Avalonia.Media.IBrush.Transform.get()' is present in the implementation but not in the contract.
-CannotSealType : Type 'Avalonia.Media.Pen' is actually (has the sealed modifier) sealed in the implementation but not sealed in the contract.
-MembersMustExist : Member 'protected void Avalonia.Media.Pen.AffectsRender(Avalonia.AvaloniaProperty[])' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'protected void Avalonia.Media.Pen.RaiseInvalidated(System.EventArgs)' does not exist in the implementation but it does exist in the contract.
-CannotSealType : Type 'Avalonia.Media.TextHitTestResult' is actually (has the sealed modifier) sealed in the implementation but not sealed in the contract.
-TypeCannotChangeClassification : Type 'Avalonia.Media.TextHitTestResult' is a 'struct' in the implementation but is a 'class' in the contract.
-MembersMustExist : Member 'public void Avalonia.Media.TextHitTestResult..ctor()' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public void Avalonia.Media.TextHitTestResult.IsInside.set(System.Boolean)' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public void Avalonia.Media.TextHitTestResult.IsTrailing.set(System.Boolean)' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public void Avalonia.Media.TextHitTestResult.TextPosition.set(System.Int32)' does not exist in the implementation but it does exist in the contract.
-CannotMakeTypeAbstract : Type 'Avalonia.Media.TextTrimming' is abstract in the implementation but is not abstract in the contract.
-TypeCannotChangeClassification : Type 'Avalonia.Media.TextTrimming' is a 'class' in the implementation but is a 'struct' in the contract.
-MembersMustExist : Member 'public Avalonia.Media.TextTrimming Avalonia.Media.TextTrimming Avalonia.Media.TextTrimming.CharacterEllipsis' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public Avalonia.Media.TextTrimming Avalonia.Media.TextTrimming Avalonia.Media.TextTrimming.None' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public Avalonia.Media.TextTrimming Avalonia.Media.TextTrimming Avalonia.Media.TextTrimming.WordEllipsis' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public System.Int32 System.Int32 Avalonia.Media.TextTrimming.value__' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public void Avalonia.Media.Typeface..ctor(Avalonia.Media.FontFamily, Avalonia.Media.FontStyle, Avalonia.Media.FontWeight)' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public void Avalonia.Media.Typeface..ctor(System.String, Avalonia.Media.FontStyle, Avalonia.Media.FontWeight)' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public void Avalonia.Media.Immutable.ImmutableConicGradientBrush..ctor(System.Collections.Generic.IReadOnlyList, System.Double, Avalonia.Media.GradientSpreadMethod, System.Nullable, System.Double)' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'protected void Avalonia.Media.Immutable.ImmutableGradientBrush..ctor(System.Collections.Generic.IReadOnlyList, System.Double, Avalonia.Media.GradientSpreadMethod)' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public void Avalonia.Media.Immutable.ImmutableLinearGradientBrush..ctor(System.Collections.Generic.IReadOnlyList, System.Double, Avalonia.Media.GradientSpreadMethod, System.Nullable, System.Nullable)' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public void Avalonia.Media.Immutable.ImmutableRadialGradientBrush..ctor(System.Collections.Generic.IReadOnlyList, System.Double, Avalonia.Media.GradientSpreadMethod, System.Nullable, System.Nullable, System.Double)' does not exist in the implementation but it does exist in the contract.
-TypeCannotChangeClassification : Type 'Avalonia.Media.Immutable.ImmutableSolidColorBrush' is a 'class' in the implementation but is a 'struct' in the contract.
-MembersMustExist : Member 'public void Avalonia.Media.Immutable.ImmutableSolidColorBrush..ctor(Avalonia.Media.Color, System.Double)' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'protected void Avalonia.Media.Immutable.ImmutableTileBrush..ctor(Avalonia.Media.AlignmentX, Avalonia.Media.AlignmentY, Avalonia.RelativeRect, System.Double, Avalonia.RelativeRect, Avalonia.Media.Stretch, Avalonia.Media.TileMode, Avalonia.Visuals.Media.Imaging.BitmapInterpolationMode)' does not exist in the implementation but it does exist in the contract.
-CannotAddAbstractMembers : Member 'public System.Double Avalonia.Media.TextFormatting.DrawableTextRun.Baseline' is abstract in the implementation but is missing in the contract.
-CannotAddAbstractMembers : Member 'public System.Double Avalonia.Media.TextFormatting.DrawableTextRun.Baseline.get()' is abstract in the implementation but is missing in the contract.
-MembersMustExist : Member 'public void Avalonia.Media.TextFormatting.DrawableTextRun.Draw(Avalonia.Media.DrawingContext)' does not exist in the implementation but it does exist in the contract.
-CannotAddAbstractMembers : Member 'public void Avalonia.Media.TextFormatting.DrawableTextRun.Draw(Avalonia.Media.DrawingContext, Avalonia.Point)' is abstract in the implementation but is missing in the contract.
-CannotSealType : Type 'Avalonia.Media.TextFormatting.GenericTextParagraphProperties' is actually (has the sealed modifier) sealed in the implementation but not sealed in the contract.
-CannotMakeMemberNonVirtual : Member 'public Avalonia.Media.TextFormatting.TextRunProperties Avalonia.Media.TextFormatting.GenericTextParagraphProperties.DefaultTextRunProperties' is non-virtual in the implementation but is virtual in the contract.
-CannotMakeMemberNonVirtual : Member 'public System.Double Avalonia.Media.TextFormatting.GenericTextParagraphProperties.LineHeight' is non-virtual in the implementation but is virtual in the contract.
-CannotMakeMemberNonVirtual : Member 'public Avalonia.Media.TextAlignment Avalonia.Media.TextFormatting.GenericTextParagraphProperties.TextAlignment' is non-virtual in the implementation but is virtual in the contract.
-CannotMakeMemberNonVirtual : Member 'public Avalonia.Media.TextWrapping Avalonia.Media.TextFormatting.GenericTextParagraphProperties.TextWrapping' is non-virtual in the implementation but is virtual in the contract.
-CannotMakeMemberNonVirtual : Member 'public Avalonia.Media.TextFormatting.TextRunProperties Avalonia.Media.TextFormatting.GenericTextParagraphProperties.DefaultTextRunProperties.get()' is non-virtual in the implementation but is virtual in the contract.
-CannotMakeMemberNonVirtual : Member 'public System.Double Avalonia.Media.TextFormatting.GenericTextParagraphProperties.LineHeight.get()' is non-virtual in the implementation but is virtual in the contract.
-CannotMakeMemberNonVirtual : Member 'public Avalonia.Media.TextAlignment Avalonia.Media.TextFormatting.GenericTextParagraphProperties.TextAlignment.get()' is non-virtual in the implementation but is virtual in the contract.
-CannotMakeMemberNonVirtual : Member 'public Avalonia.Media.TextWrapping Avalonia.Media.TextFormatting.GenericTextParagraphProperties.TextWrapping.get()' is non-virtual in the implementation but is virtual in the contract.
-MembersMustExist : Member 'public void Avalonia.Media.TextFormatting.GenericTextRunProperties..ctor(Avalonia.Media.Typeface, System.Double, Avalonia.Media.TextDecorationCollection, Avalonia.Media.IBrush, Avalonia.Media.IBrush, System.Globalization.CultureInfo)' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public void Avalonia.Media.TextFormatting.ShapeableTextCharacters..ctor(Avalonia.Utilities.ReadOnlySlice, Avalonia.Media.TextFormatting.TextRunProperties)' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public void Avalonia.Media.TextFormatting.ShapedTextCharacters..ctor(Avalonia.Media.GlyphRun, Avalonia.Media.TextFormatting.TextRunProperties)' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public void Avalonia.Media.TextFormatting.ShapedTextCharacters.Draw(Avalonia.Media.DrawingContext)' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public Avalonia.Media.TextFormatting.ShapedTextCharacters.SplitTextCharactersResult Avalonia.Media.TextFormatting.ShapedTextCharacters.Split(System.Int32)' does not exist in the implementation but it does exist in the contract.
-TypesMustExist : Type 'Avalonia.Media.TextFormatting.ShapedTextCharacters.SplitTextCharactersResult' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'protected System.Boolean Avalonia.Media.TextFormatting.TextCharacters.TryGetRunProperties(Avalonia.Utilities.ReadOnlySlice, Avalonia.Media.Typeface, Avalonia.Media.Typeface, System.Int32)' does not exist in the implementation but it does exist in the contract.
-CannotAddAbstractMembers : Member 'public System.Collections.Generic.List Avalonia.Media.TextFormatting.TextCollapsingProperties.Collapse(Avalonia.Media.TextFormatting.TextLine)' is abstract in the implementation but is missing in the contract.
-MembersMustExist : Member 'public Avalonia.Media.TextFormatting.TextCollapsingStyle Avalonia.Media.TextFormatting.TextCollapsingProperties.Style.get()' does not exist in the implementation but it does exist in the contract.
-TypesMustExist : Type 'Avalonia.Media.TextFormatting.TextCollapsingStyle' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public void Avalonia.Media.TextFormatting.TextEndOfLine..ctor()' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public void Avalonia.Media.TextFormatting.TextLayout..ctor(System.String, Avalonia.Media.Typeface, System.Double, Avalonia.Media.IBrush, Avalonia.Media.TextAlignment, Avalonia.Media.TextWrapping, Avalonia.Media.TextTrimming, Avalonia.Media.TextDecorationCollection, System.Double, System.Double, System.Double, System.Int32, System.Collections.Generic.IReadOnlyList>)' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public void Avalonia.Media.TextFormatting.TextLayout.Draw(Avalonia.Media.DrawingContext)' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public Avalonia.Size Avalonia.Media.TextFormatting.TextLayout.Size.get()' does not exist in the implementation but it does exist in the contract.
-CannotAddAbstractMembers : Member 'public System.Double Avalonia.Media.TextFormatting.TextLine.Baseline' is abstract in the implementation but is missing in the contract.
-CannotAddAbstractMembers : Member 'public System.Double Avalonia.Media.TextFormatting.TextLine.Extent' is abstract in the implementation but is missing in the contract.
-CannotAddAbstractMembers : Member 'public System.Int32 Avalonia.Media.TextFormatting.TextLine.FirstTextSourceIndex' is abstract in the implementation but is missing in the contract.
-CannotAddAbstractMembers : Member 'public System.Boolean Avalonia.Media.TextFormatting.TextLine.HasOverflowed' is abstract in the implementation but is missing in the contract.
-CannotAddAbstractMembers : Member 'public System.Double Avalonia.Media.TextFormatting.TextLine.Height' is abstract in the implementation but is missing in the contract.
-CannotAddAbstractMembers : Member 'public System.Int32 Avalonia.Media.TextFormatting.TextLine.Length' is abstract in the implementation but is missing in the contract.
-CannotAddAbstractMembers : Member 'public System.Int32 Avalonia.Media.TextFormatting.TextLine.NewLineLength' is abstract in the implementation but is missing in the contract.
-CannotAddAbstractMembers : Member 'public System.Double Avalonia.Media.TextFormatting.TextLine.OverhangAfter' is abstract in the implementation but is missing in the contract.
-CannotAddAbstractMembers : Member 'public System.Double Avalonia.Media.TextFormatting.TextLine.OverhangLeading' is abstract in the implementation but is missing in the contract.
-CannotAddAbstractMembers : Member 'public System.Double Avalonia.Media.TextFormatting.TextLine.OverhangTrailing' is abstract in the implementation but is missing in the contract.
-CannotAddAbstractMembers : Member 'public System.Double Avalonia.Media.TextFormatting.TextLine.Start' is abstract in the implementation but is missing in the contract.
-CannotAddAbstractMembers : Member 'public System.Int32 Avalonia.Media.TextFormatting.TextLine.TrailingWhitespaceLength' is abstract in the implementation but is missing in the contract.
-CannotAddAbstractMembers : Member 'public System.Double Avalonia.Media.TextFormatting.TextLine.Width' is abstract in the implementation but is missing in the contract.
-CannotAddAbstractMembers : Member 'public System.Double Avalonia.Media.TextFormatting.TextLine.WidthIncludingTrailingWhitespace' is abstract in the implementation but is missing in the contract.
-CannotAddAbstractMembers : Member 'public System.Double Avalonia.Media.TextFormatting.TextLine.Baseline.get()' is abstract in the implementation but is missing in the contract.
-MembersMustExist : Member 'public void Avalonia.Media.TextFormatting.TextLine.Draw(Avalonia.Media.DrawingContext)' does not exist in the implementation but it does exist in the contract.
-CannotAddAbstractMembers : Member 'public void Avalonia.Media.TextFormatting.TextLine.Draw(Avalonia.Media.DrawingContext, Avalonia.Point)' is abstract in the implementation but is missing in the contract.
-CannotAddAbstractMembers : Member 'public System.Double Avalonia.Media.TextFormatting.TextLine.Extent.get()' is abstract in the implementation but is missing in the contract.
-CannotAddAbstractMembers : Member 'public System.Int32 Avalonia.Media.TextFormatting.TextLine.FirstTextSourceIndex.get()' is abstract in the implementation but is missing in the contract.
-CannotAddAbstractMembers : Member 'public System.Collections.Generic.IReadOnlyList Avalonia.Media.TextFormatting.TextLine.GetTextBounds(System.Int32, System.Int32)' is abstract in the implementation but is missing in the contract.
-CannotAddAbstractMembers : Member 'public System.Boolean Avalonia.Media.TextFormatting.TextLine.HasOverflowed.get()' is abstract in the implementation but is missing in the contract.
-CannotAddAbstractMembers : Member 'public System.Double Avalonia.Media.TextFormatting.TextLine.Height.get()' is abstract in the implementation but is missing in the contract.
-CannotAddAbstractMembers : Member 'public System.Int32 Avalonia.Media.TextFormatting.TextLine.Length.get()' is abstract in the implementation but is missing in the contract.
-MembersMustExist : Member 'public Avalonia.Media.TextFormatting.TextLineMetrics Avalonia.Media.TextFormatting.TextLine.LineMetrics.get()' does not exist in the implementation but it does exist in the contract.
-CannotAddAbstractMembers : Member 'public System.Int32 Avalonia.Media.TextFormatting.TextLine.NewLineLength.get()' is abstract in the implementation but is missing in the contract.
-CannotAddAbstractMembers : Member 'public System.Double Avalonia.Media.TextFormatting.TextLine.OverhangAfter.get()' is abstract in the implementation but is missing in the contract.
-CannotAddAbstractMembers : Member 'public System.Double Avalonia.Media.TextFormatting.TextLine.OverhangLeading.get()' is abstract in the implementation but is missing in the contract.
-CannotAddAbstractMembers : Member 'public System.Double Avalonia.Media.TextFormatting.TextLine.OverhangTrailing.get()' is abstract in the implementation but is missing in the contract.
-CannotAddAbstractMembers : Member 'public System.Double Avalonia.Media.TextFormatting.TextLine.Start.get()' is abstract in the implementation but is missing in the contract.
-MembersMustExist : Member 'public Avalonia.Media.TextFormatting.TextRange Avalonia.Media.TextFormatting.TextLine.TextRange.get()' does not exist in the implementation but it does exist in the contract.
-CannotAddAbstractMembers : Member 'public System.Int32 Avalonia.Media.TextFormatting.TextLine.TrailingWhitespaceLength.get()' is abstract in the implementation but is missing in the contract.
-CannotAddAbstractMembers : Member 'public System.Double Avalonia.Media.TextFormatting.TextLine.Width.get()' is abstract in the implementation but is missing in the contract.
-CannotAddAbstractMembers : Member 'public System.Double Avalonia.Media.TextFormatting.TextLine.WidthIncludingTrailingWhitespace.get()' is abstract in the implementation but is missing in the contract.
-MembersMustExist : Member 'public void Avalonia.Media.TextFormatting.TextLineBreak..ctor(System.Collections.Generic.IReadOnlyList)' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public System.Collections.Generic.IReadOnlyList Avalonia.Media.TextFormatting.TextLineBreak.RemainingCharacters.get()' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public void Avalonia.Media.TextFormatting.TextLineMetrics..ctor(Avalonia.Size, System.Double, Avalonia.Media.TextFormatting.TextRange, System.Boolean)' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public Avalonia.Media.TextFormatting.TextLineMetrics Avalonia.Media.TextFormatting.TextLineMetrics.Create(System.Collections.Generic.IEnumerable, Avalonia.Media.TextFormatting.TextRange, System.Double, Avalonia.Media.TextFormatting.TextParagraphProperties)' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public Avalonia.Size Avalonia.Media.TextFormatting.TextLineMetrics.Size.get()' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public Avalonia.Media.TextFormatting.TextRange Avalonia.Media.TextFormatting.TextLineMetrics.TextRange.get()' does not exist in the implementation but it does exist in the contract.
-CannotAddAbstractMembers : Member 'public System.Boolean Avalonia.Media.TextFormatting.TextParagraphProperties.FirstLineInParagraph' is abstract in the implementation but is missing in the contract.
-CannotAddAbstractMembers : Member 'public Avalonia.Media.FlowDirection Avalonia.Media.TextFormatting.TextParagraphProperties.FlowDirection' is abstract in the implementation but is missing in the contract.
-CannotAddAbstractMembers : Member 'public System.Double Avalonia.Media.TextFormatting.TextParagraphProperties.Indent' is abstract in the implementation but is missing in the contract.
-CannotAddAbstractMembers : Member 'public System.Boolean Avalonia.Media.TextFormatting.TextParagraphProperties.FirstLineInParagraph.get()' is abstract in the implementation but is missing in the contract.
-CannotAddAbstractMembers : Member 'public Avalonia.Media.FlowDirection Avalonia.Media.TextFormatting.TextParagraphProperties.FlowDirection.get()' is abstract in the implementation but is missing in the contract.
-CannotAddAbstractMembers : Member 'public System.Double Avalonia.Media.TextFormatting.TextParagraphProperties.Indent.get()' is abstract in the implementation but is missing in the contract.
-MembersMustExist : Member 'public Avalonia.Media.GlyphRun Avalonia.Media.TextFormatting.TextShaper.ShapeText(Avalonia.Utilities.ReadOnlySlice, Avalonia.Media.Typeface, System.Double, System.Globalization.CultureInfo)' does not exist in the implementation but it does exist in the contract.
-CannotSealType : Type 'Avalonia.Media.TextFormatting.TextTrailingCharacterEllipsis' is actually (has the sealed modifier) sealed in the implementation but not sealed in the contract.
-MembersMustExist : Member 'public void Avalonia.Media.TextFormatting.TextTrailingCharacterEllipsis..ctor(System.Double, Avalonia.Media.TextFormatting.TextRunProperties)' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public Avalonia.Media.TextFormatting.TextCollapsingStyle Avalonia.Media.TextFormatting.TextTrailingCharacterEllipsis.Style.get()' does not exist in the implementation but it does exist in the contract.
-CannotSealType : Type 'Avalonia.Media.TextFormatting.TextTrailingWordEllipsis' is actually (has the sealed modifier) sealed in the implementation but not sealed in the contract.
-MembersMustExist : Member 'public void Avalonia.Media.TextFormatting.TextTrailingWordEllipsis..ctor(System.Double, Avalonia.Media.TextFormatting.TextRunProperties)' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public Avalonia.Media.TextFormatting.TextCollapsingStyle Avalonia.Media.TextFormatting.TextTrailingWordEllipsis.Style.get()' does not exist in the implementation but it does exist in the contract.
-TypesMustExist : Type 'Avalonia.Media.TextFormatting.Unicode.BiDiClass' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public Avalonia.Media.TextFormatting.Unicode.BiDiClass Avalonia.Media.TextFormatting.Unicode.Codepoint.BiDiClass.get()' does not exist in the implementation but it does exist in the contract.
-TypesMustExist : Type 'Avalonia.Platform.ExportRenderingSubsystemAttribute' does not exist in the implementation but it does exist in the contract.
-InterfacesShouldHaveSameMembers : Interface member 'public void Avalonia.Platform.IDrawingContextImpl.DrawEllipse(Avalonia.Media.IBrush, Avalonia.Media.IPen, Avalonia.Rect)' is present in the implementation but not in the contract.
-InterfacesShouldHaveSameMembers : Interface member 'public void Avalonia.Platform.IDrawingContextImpl.DrawText(Avalonia.Media.IBrush, Avalonia.Point, Avalonia.Platform.IFormattedTextImpl)' is present in the contract but not in the implementation.
-MembersMustExist : Member 'public void Avalonia.Platform.IDrawingContextImpl.DrawText(Avalonia.Media.IBrush, Avalonia.Point, Avalonia.Platform.IFormattedTextImpl)' does not exist in the implementation but it does exist in the contract.
-InterfacesShouldHaveSameMembers : Interface member 'public void Avalonia.Platform.IDrawingContextImpl.PopBitmapBlendMode()' is present in the implementation but not in the contract.
-InterfacesShouldHaveSameMembers : Interface member 'public void Avalonia.Platform.IDrawingContextImpl.PushBitmapBlendMode(Avalonia.Visuals.Media.Imaging.BitmapBlendingMode)' is present in the implementation but not in the contract.
-InterfacesShouldHaveSameMembers : Interface member 'public System.Boolean Avalonia.Platform.IFontManagerImpl.TryMatchCharacter(System.Int32, Avalonia.Media.FontStyle, Avalonia.Media.FontWeight, Avalonia.Media.FontFamily, System.Globalization.CultureInfo, Avalonia.Media.Typeface)' is present in the contract but not in the implementation.
-MembersMustExist : Member 'public System.Boolean Avalonia.Platform.IFontManagerImpl.TryMatchCharacter(System.Int32, Avalonia.Media.FontStyle, Avalonia.Media.FontWeight, Avalonia.Media.FontFamily, System.Globalization.CultureInfo, Avalonia.Media.Typeface)' does not exist in the implementation but it does exist in the contract.
-InterfacesShouldHaveSameMembers : Interface member 'public System.Boolean Avalonia.Platform.IFontManagerImpl.TryMatchCharacter(System.Int32, Avalonia.Media.FontStyle, Avalonia.Media.FontWeight, Avalonia.Media.FontStretch, Avalonia.Media.FontFamily, System.Globalization.CultureInfo, Avalonia.Media.Typeface)' is present in the implementation but not in the contract.
-TypesMustExist : Type 'Avalonia.Platform.IFormattedTextImpl' does not exist in the implementation but it does exist in the contract.
-InterfacesShouldHaveSameMembers : Interface member 'public System.Double Avalonia.Platform.IGeometryImpl.ContourLength' is present in the implementation but not in the contract.
-InterfacesShouldHaveSameMembers : Interface member 'public System.Double Avalonia.Platform.IGeometryImpl.ContourLength.get()' is present in the implementation but not in the contract.
-InterfacesShouldHaveSameMembers : Interface member 'public System.Boolean Avalonia.Platform.IGeometryImpl.TryGetPointAndTangentAtDistance(System.Double, Avalonia.Point, Avalonia.Point)' is present in the implementation but not in the contract.
-InterfacesShouldHaveSameMembers : Interface member 'public System.Boolean Avalonia.Platform.IGeometryImpl.TryGetPointAtDistance(System.Double, Avalonia.Point)' is present in the implementation but not in the contract.
-InterfacesShouldHaveSameMembers : Interface member 'public System.Boolean Avalonia.Platform.IGeometryImpl.TryGetSegment(System.Double, System.Double, System.Boolean, Avalonia.Platform.IGeometryImpl)' is present in the implementation but not in the contract.
-InterfacesShouldHaveSameMembers : Interface member 'public Avalonia.Platform.IGeometryImpl Avalonia.Platform.IPlatformRenderInterface.CreateCombinedGeometry(Avalonia.Media.GeometryCombineMode, Avalonia.Media.Geometry, Avalonia.Media.Geometry)' is present in the implementation but not in the contract.
-InterfacesShouldHaveSameMembers : Interface member 'public Avalonia.Platform.IFormattedTextImpl Avalonia.Platform.IPlatformRenderInterface.CreateFormattedText(System.String, Avalonia.Media.Typeface, System.Double, Avalonia.Media.TextAlignment, Avalonia.Media.TextWrapping, Avalonia.Size, System.Collections.Generic.IReadOnlyList)' is present in the contract but not in the implementation.
-MembersMustExist : Member 'public Avalonia.Platform.IFormattedTextImpl Avalonia.Platform.IPlatformRenderInterface.CreateFormattedText(System.String, Avalonia.Media.Typeface, System.Double, Avalonia.Media.TextAlignment, Avalonia.Media.TextWrapping, Avalonia.Size, System.Collections.Generic.IReadOnlyList)' does not exist in the implementation but it does exist in the contract.
-InterfacesShouldHaveSameMembers : Interface member 'public Avalonia.Platform.IGeometryImpl Avalonia.Platform.IPlatformRenderInterface.CreateGeometryGroup(Avalonia.Media.FillRule, System.Collections.Generic.IReadOnlyList)' is present in the implementation but not in the contract.
-InterfacesShouldHaveSameMembers : Interface member 'public Avalonia.Platform.IGlyphRunImpl Avalonia.Platform.IPlatformRenderInterface.CreateGlyphRun(Avalonia.Media.GlyphRun)' is present in the implementation but not in the contract.
-InterfacesShouldHaveSameMembers : Interface member 'public Avalonia.Platform.IGlyphRunImpl Avalonia.Platform.IPlatformRenderInterface.CreateGlyphRun(Avalonia.Media.GlyphRun, System.Double)' is present in the contract but not in the implementation.
-MembersMustExist : Member 'public Avalonia.Platform.IGlyphRunImpl Avalonia.Platform.IPlatformRenderInterface.CreateGlyphRun(Avalonia.Media.GlyphRun, System.Double)' does not exist in the implementation but it does exist in the contract.
-InterfacesShouldHaveSameMembers : Interface member 'public Avalonia.Platform.IWriteableBitmapImpl Avalonia.Platform.IPlatformRenderInterface.LoadWriteableBitmap(System.IO.Stream)' is present in the implementation but not in the contract.
-InterfacesShouldHaveSameMembers : Interface member 'public Avalonia.Platform.IWriteableBitmapImpl Avalonia.Platform.IPlatformRenderInterface.LoadWriteableBitmap(System.String)' is present in the implementation but not in the contract.
-InterfacesShouldHaveSameMembers : Interface member 'public Avalonia.Platform.IWriteableBitmapImpl Avalonia.Platform.IPlatformRenderInterface.LoadWriteableBitmapToHeight(System.IO.Stream, System.Int32, Avalonia.Visuals.Media.Imaging.BitmapInterpolationMode)' is present in the implementation but not in the contract.
-InterfacesShouldHaveSameMembers : Interface member 'public Avalonia.Platform.IWriteableBitmapImpl Avalonia.Platform.IPlatformRenderInterface.LoadWriteableBitmapToWidth(System.IO.Stream, System.Int32, Avalonia.Visuals.Media.Imaging.BitmapInterpolationMode)' is present in the implementation but not in the contract.
-InterfacesShouldHaveSameMembers : Interface member 'public Avalonia.Size Avalonia.Platform.IPlatformSettings.TouchDoubleClickSize' is present in the implementation but not in the contract.
-InterfacesShouldHaveSameMembers : Interface member 'public System.TimeSpan Avalonia.Platform.IPlatformSettings.TouchDoubleClickTime' is present in the implementation but not in the contract.
-InterfacesShouldHaveSameMembers : Interface member 'public Avalonia.Size Avalonia.Platform.IPlatformSettings.TouchDoubleClickSize.get()' is present in the implementation but not in the contract.
-InterfacesShouldHaveSameMembers : Interface member 'public System.TimeSpan Avalonia.Platform.IPlatformSettings.TouchDoubleClickTime.get()' is present in the implementation but not in the contract.
-InterfacesShouldHaveSameMembers : Interface member 'public Avalonia.Media.TextFormatting.ShapedBuffer Avalonia.Platform.ITextShaperImpl.ShapeText(Avalonia.Utilities.ReadOnlySlice, Avalonia.Media.TextFormatting.TextShaperOptions)' is present in the implementation but not in the contract.
-InterfacesShouldHaveSameMembers : Interface member 'public Avalonia.Media.GlyphRun Avalonia.Platform.ITextShaperImpl.ShapeText(Avalonia.Utilities.ReadOnlySlice, Avalonia.Media.Typeface, System.Double, System.Globalization.CultureInfo)' is present in the contract but not in the implementation.
-MembersMustExist : Member 'public Avalonia.Media.GlyphRun Avalonia.Platform.ITextShaperImpl.ShapeText(Avalonia.Utilities.ReadOnlySlice, Avalonia.Media.Typeface, System.Double, System.Globalization.CultureInfo)' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'protected void Avalonia.Rendering.RendererBase.RenderFps(Avalonia.Platform.IDrawingContextImpl, Avalonia.Rect, System.Nullable)' does not exist in the implementation but it does exist in the contract.
-MembersMustExist : Member 'public void Avalonia.Utilities.ReadOnlySlice..ctor(System.ReadOnlyMemory, System.Int32, System.Int32)' does not exist in the implementation but it does exist in the contract.
-InterfacesShouldHaveSameMembers : Interface member 'public System.Boolean Avalonia.VisualTree.IVisual.HasMirrorTransform' is present in the implementation but not in the contract.
-InterfacesShouldHaveSameMembers : Interface member 'public System.Boolean Avalonia.VisualTree.IVisual.HasMirrorTransform.get()' is present in the implementation but not in the contract.
-Total Issues: 188
diff --git a/src/Avalonia.Visuals/Avalonia.Visuals.csproj b/src/Avalonia.Visuals/Avalonia.Visuals.csproj
deleted file mode 100644
index 7e9947812b..0000000000
--- a/src/Avalonia.Visuals/Avalonia.Visuals.csproj
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
- net6.0;netstandard2.0
- Avalonia
- true
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/Avalonia.Visuals/Properties/AssemblyInfo.cs b/src/Avalonia.Visuals/Properties/AssemblyInfo.cs
deleted file mode 100644
index ebff097199..0000000000
--- a/src/Avalonia.Visuals/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,15 +0,0 @@
-using System.Runtime.CompilerServices;
-using Avalonia.Metadata;
-
-[assembly: XmlnsDefinition("https://github.com/avaloniaui", "Avalonia.Animation")]
-[assembly: XmlnsDefinition("https://github.com/avaloniaui", "Avalonia.Media")]
-[assembly: XmlnsDefinition("https://github.com/avaloniaui", "Avalonia.Media.Imaging")]
-[assembly: XmlnsDefinition("https://github.com/avaloniaui", "Avalonia.Media.Transformation")]
-[assembly: XmlnsDefinition("https://github.com/avaloniaui", "Avalonia")]
-
-[assembly: InternalsVisibleTo("Avalonia.Visuals.UnitTests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100c1bba1142285fe0419326fb25866ba62c47e6c2b5c1ab0c95b46413fad375471232cb81706932e1cef38781b9ebd39d5100401bacb651c6c5bbf59e571e81b3bc08d2a622004e08b1a6ece82a7e0b9857525c86d2b95fab4bc3dce148558d7f3ae61aa3a234086902aeface87d9dfdd32b9d2fe3c6dd4055b5ab4b104998bd87")]
-[assembly: InternalsVisibleTo("Avalonia.Direct2D1.RenderTests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100c1bba1142285fe0419326fb25866ba62c47e6c2b5c1ab0c95b46413fad375471232cb81706932e1cef38781b9ebd39d5100401bacb651c6c5bbf59e571e81b3bc08d2a622004e08b1a6ece82a7e0b9857525c86d2b95fab4bc3dce148558d7f3ae61aa3a234086902aeface87d9dfdd32b9d2fe3c6dd4055b5ab4b104998bd87")]
-[assembly: InternalsVisibleTo("Avalonia.Skia.RenderTests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100c1bba1142285fe0419326fb25866ba62c47e6c2b5c1ab0c95b46413fad375471232cb81706932e1cef38781b9ebd39d5100401bacb651c6c5bbf59e571e81b3bc08d2a622004e08b1a6ece82a7e0b9857525c86d2b95fab4bc3dce148558d7f3ae61aa3a234086902aeface87d9dfdd32b9d2fe3c6dd4055b5ab4b104998bd87")]
-[assembly: InternalsVisibleTo("Avalonia.Skia.UnitTests, PublicKey=0024000004800000940000000602000000240000525341310004000001000100c1bba1142285fe0419326fb25866ba62c47e6c2b5c1ab0c95b46413fad375471232cb81706932e1cef38781b9ebd39d5100401bacb651c6c5bbf59e571e81b3bc08d2a622004e08b1a6ece82a7e0b9857525c86d2b95fab4bc3dce148558d7f3ae61aa3a234086902aeface87d9dfdd32b9d2fe3c6dd4055b5ab4b104998bd87")]
-[assembly: InternalsVisibleTo("Avalonia.Web.Blazor, PublicKey=0024000004800000940000000602000000240000525341310004000001000100c1bba1142285fe0419326fb25866ba62c47e6c2b5c1ab0c95b46413fad375471232cb81706932e1cef38781b9ebd39d5100401bacb651c6c5bbf59e571e81b3bc08d2a622004e08b1a6ece82a7e0b9857525c86d2b95fab4bc3dce148558d7f3ae61aa3a234086902aeface87d9dfdd32b9d2fe3c6dd4055b5ab4b104998bd87")]
-
diff --git a/src/Avalonia.X11/X11IconLoader.cs b/src/Avalonia.X11/X11IconLoader.cs
index 6632573ba2..36939f4103 100644
--- a/src/Avalonia.X11/X11IconLoader.cs
+++ b/src/Avalonia.X11/X11IconLoader.cs
@@ -2,12 +2,9 @@ using System;
using System.IO;
using System.Runtime.InteropServices;
using Avalonia.Controls.Platform.Surfaces;
-using Avalonia.Media;
using Avalonia.Media.Imaging;
using Avalonia.Platform;
-using Avalonia.Utilities;
-using Avalonia.Visuals.Media.Imaging;
-using static Avalonia.X11.XLib;
+
namespace Avalonia.X11
{
class X11IconLoader : IPlatformIconLoader
diff --git a/src/Markup/Avalonia.Markup.Xaml/Avalonia.Markup.Xaml.csproj b/src/Markup/Avalonia.Markup.Xaml/Avalonia.Markup.Xaml.csproj
index 6624392258..622ec416e8 100644
--- a/src/Markup/Avalonia.Markup.Xaml/Avalonia.Markup.Xaml.csproj
+++ b/src/Markup/Avalonia.Markup.Xaml/Avalonia.Markup.Xaml.csproj
@@ -56,14 +56,8 @@
-
-
-
-
-
-
diff --git a/src/Markup/Avalonia.Markup/Avalonia.Markup.csproj b/src/Markup/Avalonia.Markup/Avalonia.Markup.csproj
index 119f57973c..f7f1a111ba 100644
--- a/src/Markup/Avalonia.Markup/Avalonia.Markup.csproj
+++ b/src/Markup/Avalonia.Markup/Avalonia.Markup.csproj
@@ -11,8 +11,6 @@
-
-
diff --git a/src/Skia/Avalonia.Skia/DrawingContextImpl.cs b/src/Skia/Avalonia.Skia/DrawingContextImpl.cs
index 642808eacb..2548b9f5aa 100644
--- a/src/Skia/Avalonia.Skia/DrawingContextImpl.cs
+++ b/src/Skia/Avalonia.Skia/DrawingContextImpl.cs
@@ -9,7 +9,7 @@ using Avalonia.Rendering;
using Avalonia.Rendering.SceneGraph;
using Avalonia.Rendering.Utilities;
using Avalonia.Utilities;
-using Avalonia.Visuals.Media.Imaging;
+using Avalonia.Media.Imaging;
using SkiaSharp;
namespace Avalonia.Skia
diff --git a/src/Skia/Avalonia.Skia/FontManagerImpl.cs b/src/Skia/Avalonia.Skia/FontManagerImpl.cs
index 075a2cc746..125dd0e455 100644
--- a/src/Skia/Avalonia.Skia/FontManagerImpl.cs
+++ b/src/Skia/Avalonia.Skia/FontManagerImpl.cs
@@ -122,9 +122,7 @@ namespace Avalonia.Skia
skTypeface = _skFontManager.MatchFamily(familyName, fontStyle);
- if (skTypeface is null
- || (!skTypeface.FamilyName.Equals(familyName, StringComparison.Ordinal)
- && defaultName.Equals(skTypeface.FamilyName, StringComparison.Ordinal)))
+ if (skTypeface is null || defaultName.Equals(skTypeface.FamilyName, StringComparison.Ordinal))
{
continue;
}
diff --git a/src/Skia/Avalonia.Skia/ImmutableBitmap.cs b/src/Skia/Avalonia.Skia/ImmutableBitmap.cs
index 3010f49420..5628ae177c 100644
--- a/src/Skia/Avalonia.Skia/ImmutableBitmap.cs
+++ b/src/Skia/Avalonia.Skia/ImmutableBitmap.cs
@@ -5,7 +5,7 @@ using System.Security.Cryptography;
using Avalonia.Media.Imaging;
using Avalonia.Platform;
using Avalonia.Skia.Helpers;
-using Avalonia.Visuals.Media.Imaging;
+using Avalonia.Media.Imaging;
using SkiaSharp;
namespace Avalonia.Skia
diff --git a/src/Skia/Avalonia.Skia/PlatformRenderInterface.cs b/src/Skia/Avalonia.Skia/PlatformRenderInterface.cs
index 1c92c7d193..d3c3585cd0 100644
--- a/src/Skia/Avalonia.Skia/PlatformRenderInterface.cs
+++ b/src/Skia/Avalonia.Skia/PlatformRenderInterface.cs
@@ -10,7 +10,7 @@ using Avalonia.Media;
using Avalonia.OpenGL;
using Avalonia.OpenGL.Imaging;
using Avalonia.Platform;
-using Avalonia.Visuals.Media.Imaging;
+using Avalonia.Media.Imaging;
using SkiaSharp;
namespace Avalonia.Skia
diff --git a/src/Skia/Avalonia.Skia/SKTypefaceCollection.cs b/src/Skia/Avalonia.Skia/SKTypefaceCollection.cs
index f66df9e6e9..1f3f20730f 100644
--- a/src/Skia/Avalonia.Skia/SKTypefaceCollection.cs
+++ b/src/Skia/Avalonia.Skia/SKTypefaceCollection.cs
@@ -59,15 +59,30 @@ namespace Avalonia.Skia
return typeface;
}
- //Nothing was found so we try some regular cases.
+ if (TryFindStretchFallback(key, out typeface))
+ {
+ return typeface;
+ }
+
+ //Nothing was found so we try some regular typeface.
if (_typefaces.TryGetValue(new Typeface(key.FontFamily), out typeface))
{
return typeface;
}
- return _typefaces.TryGetValue(new Typeface(key.FontFamily, FontStyle.Italic), out typeface) ?
- typeface :
- null;
+ SKTypeface skTypeface = null;
+
+ foreach(var pair in _typefaces)
+ {
+ skTypeface = pair.Value;
+
+ if (skTypeface.FamilyName.Contains(key.FontFamily.Name))
+ {
+ return skTypeface;
+ }
+ }
+
+ return skTypeface;
}
private bool TryFindStretchFallback(Typeface key, out SKTypeface typeface)
diff --git a/src/Skia/Avalonia.Skia/SkiaSharpExtensions.cs b/src/Skia/Avalonia.Skia/SkiaSharpExtensions.cs
index 75b4231640..166f2e8f98 100644
--- a/src/Skia/Avalonia.Skia/SkiaSharpExtensions.cs
+++ b/src/Skia/Avalonia.Skia/SkiaSharpExtensions.cs
@@ -1,7 +1,7 @@
using System;
using Avalonia.Media;
using Avalonia.Platform;
-using Avalonia.Visuals.Media.Imaging;
+using Avalonia.Media.Imaging;
using SkiaSharp;
namespace Avalonia.Skia
diff --git a/src/Skia/Avalonia.Skia/WriteableBitmapImpl.cs b/src/Skia/Avalonia.Skia/WriteableBitmapImpl.cs
index 63a1e8f869..506edf0627 100644
--- a/src/Skia/Avalonia.Skia/WriteableBitmapImpl.cs
+++ b/src/Skia/Avalonia.Skia/WriteableBitmapImpl.cs
@@ -4,7 +4,7 @@ using System.Threading;
using Avalonia.Media.Imaging;
using Avalonia.Platform;
using Avalonia.Skia.Helpers;
-using Avalonia.Visuals.Media.Imaging;
+using Avalonia.Media.Imaging;
using SkiaSharp;
namespace Avalonia.Skia
diff --git a/src/Windows/Avalonia.Direct2D1/Direct2D1Platform.cs b/src/Windows/Avalonia.Direct2D1/Direct2D1Platform.cs
index c32c58605f..d9e992bb80 100644
--- a/src/Windows/Avalonia.Direct2D1/Direct2D1Platform.cs
+++ b/src/Windows/Avalonia.Direct2D1/Direct2D1Platform.cs
@@ -9,7 +9,7 @@ using Avalonia.Direct2D1.Media.Imaging;
using Avalonia.Media;
using Avalonia.Media.Imaging;
using Avalonia.Platform;
-using Avalonia.Visuals.Media.Imaging;
+using Avalonia.Media.Imaging;
using SharpDX.DirectWrite;
using GlyphRun = Avalonia.Media.GlyphRun;
using TextAlignment = Avalonia.Media.TextAlignment;
diff --git a/src/Windows/Avalonia.Direct2D1/Media/DrawingContextImpl.cs b/src/Windows/Avalonia.Direct2D1/Media/DrawingContextImpl.cs
index b62a6fa5a6..a259d8fab9 100644
--- a/src/Windows/Avalonia.Direct2D1/Media/DrawingContextImpl.cs
+++ b/src/Windows/Avalonia.Direct2D1/Media/DrawingContextImpl.cs
@@ -5,11 +5,11 @@ using Avalonia.Platform;
using Avalonia.Rendering;
using Avalonia.Rendering.SceneGraph;
using Avalonia.Utilities;
-using Avalonia.Visuals.Media.Imaging;
+using Avalonia.Media.Imaging;
using SharpDX;
using SharpDX.Direct2D1;
using SharpDX.Mathematics.Interop;
-using BitmapInterpolationMode = Avalonia.Visuals.Media.Imaging.BitmapInterpolationMode;
+using BitmapInterpolationMode = Avalonia.Media.Imaging.BitmapInterpolationMode;
namespace Avalonia.Direct2D1.Media
{
diff --git a/src/Windows/Avalonia.Direct2D1/Media/ImageBrushImpl.cs b/src/Windows/Avalonia.Direct2D1/Media/ImageBrushImpl.cs
index 09b900b0c2..296cefad4e 100644
--- a/src/Windows/Avalonia.Direct2D1/Media/ImageBrushImpl.cs
+++ b/src/Windows/Avalonia.Direct2D1/Media/ImageBrushImpl.cs
@@ -9,7 +9,7 @@ namespace Avalonia.Direct2D1.Media
{
private readonly OptionalDispose _bitmap;
- private readonly Visuals.Media.Imaging.BitmapInterpolationMode _bitmapInterpolationMode;
+ private readonly Avalonia.Media.Imaging.BitmapInterpolationMode _bitmapInterpolationMode;
public ImageBrushImpl(
ITileBrush brush,
diff --git a/src/Windows/Avalonia.Direct2D1/Media/Imaging/WicBitmapImpl.cs b/src/Windows/Avalonia.Direct2D1/Media/Imaging/WicBitmapImpl.cs
index cac35aa4ae..df07f7f39c 100644
--- a/src/Windows/Avalonia.Direct2D1/Media/Imaging/WicBitmapImpl.cs
+++ b/src/Windows/Avalonia.Direct2D1/Media/Imaging/WicBitmapImpl.cs
@@ -15,21 +15,21 @@ namespace Avalonia.Direct2D1.Media
{
private readonly BitmapDecoder _decoder;
- private static BitmapInterpolationMode ConvertInterpolationMode(Avalonia.Visuals.Media.Imaging.BitmapInterpolationMode interpolationMode)
+ private static BitmapInterpolationMode ConvertInterpolationMode(Avalonia.Media.Imaging.BitmapInterpolationMode interpolationMode)
{
switch (interpolationMode)
{
- case Visuals.Media.Imaging.BitmapInterpolationMode.Default:
+ case Avalonia.Media.Imaging.BitmapInterpolationMode.Default:
return BitmapInterpolationMode.Fant;
- case Visuals.Media.Imaging.BitmapInterpolationMode.LowQuality:
+ case Avalonia.Media.Imaging.BitmapInterpolationMode.LowQuality:
return BitmapInterpolationMode.NearestNeighbor;
- case Visuals.Media.Imaging.BitmapInterpolationMode.MediumQuality:
+ case Avalonia.Media.Imaging.BitmapInterpolationMode.MediumQuality:
return BitmapInterpolationMode.Fant;
default:
- case Visuals.Media.Imaging.BitmapInterpolationMode.HighQuality:
+ case Avalonia.Media.Imaging.BitmapInterpolationMode.HighQuality:
return BitmapInterpolationMode.HighQualityCubic;
}
@@ -118,7 +118,7 @@ namespace Avalonia.Direct2D1.Media
}
}
- public WicBitmapImpl(Stream stream, int decodeSize, bool horizontal, Avalonia.Visuals.Media.Imaging.BitmapInterpolationMode interpolationMode)
+ public WicBitmapImpl(Stream stream, int decodeSize, bool horizontal, Avalonia.Media.Imaging.BitmapInterpolationMode interpolationMode)
{
_decoder = new BitmapDecoder(Direct2D1Platform.ImagingFactory, stream, DecodeOptions.CacheOnLoad);
diff --git a/src/Windows/Avalonia.Direct2D1/Media/Imaging/WriteableWicBitmapImpl.cs b/src/Windows/Avalonia.Direct2D1/Media/Imaging/WriteableWicBitmapImpl.cs
index fef6a9aa82..885be132a4 100644
--- a/src/Windows/Avalonia.Direct2D1/Media/Imaging/WriteableWicBitmapImpl.cs
+++ b/src/Windows/Avalonia.Direct2D1/Media/Imaging/WriteableWicBitmapImpl.cs
@@ -9,7 +9,7 @@ namespace Avalonia.Direct2D1.Media.Imaging
class WriteableWicBitmapImpl : WicBitmapImpl, IWriteableBitmapImpl
{
public WriteableWicBitmapImpl(Stream stream, int decodeSize, bool horizontal,
- Avalonia.Visuals.Media.Imaging.BitmapInterpolationMode interpolationMode)
+ Avalonia.Media.Imaging.BitmapInterpolationMode interpolationMode)
: base(stream, decodeSize, horizontal, interpolationMode)
{
}
diff --git a/src/Windows/Avalonia.Win32/Win32GlManager.cs b/src/Windows/Avalonia.Win32/Win32GlManager.cs
index 0376a41f8c..2a3f4a3384 100644
--- a/src/Windows/Avalonia.Win32/Win32GlManager.cs
+++ b/src/Windows/Avalonia.Win32/Win32GlManager.cs
@@ -24,9 +24,23 @@ namespace Avalonia.Win32
{
var egl = EglPlatformOpenGlInterface.TryCreate(() => new AngleWin32EglDisplay());
- if (egl != null && opts.UseWindowsUIComposition)
+ if (egl != null)
{
- WinUICompositorConnection.TryCreateAndRegister(egl, opts.CompositionBackdropCornerRadius);
+ if (opts.EglRendererBlacklist != null)
+ {
+ foreach (var item in opts.EglRendererBlacklist)
+ {
+ if (egl.PrimaryEglContext.GlInterface.Renderer.Contains(item))
+ {
+ return null;
+ }
+ }
+ }
+
+ if (opts.UseWindowsUIComposition)
+ {
+ WinUICompositorConnection.TryCreateAndRegister(egl, opts.CompositionBackdropCornerRadius);
+ }
}
return egl;
diff --git a/src/Windows/Avalonia.Win32/Win32Platform.cs b/src/Windows/Avalonia.Win32/Win32Platform.cs
index 5cfbab40e4..dc5e5324c4 100644
--- a/src/Windows/Avalonia.Win32/Win32Platform.cs
+++ b/src/Windows/Avalonia.Win32/Win32Platform.cs
@@ -56,6 +56,11 @@ namespace Avalonia
/// GPU rendering will not be enabled if this is set to false.
///
public bool? AllowEglInitialization { get; set; }
+
+ public IList EglRendererBlacklist { get; set; } = new List
+ {
+ "Microsoft Basic Render"
+ };
///
/// Enables multitouch support. The default value is true.
diff --git a/src/iOS/Avalonia.iOS/Avalonia.iOS.csproj b/src/iOS/Avalonia.iOS/Avalonia.iOS.csproj
index 4e134b7d4e..ea3a79941d 100644
--- a/src/iOS/Avalonia.iOS/Avalonia.iOS.csproj
+++ b/src/iOS/Avalonia.iOS/Avalonia.iOS.csproj
@@ -1,8 +1,6 @@
-
-
+
- net6.0-ios
- $(TargetFrameworks);xamarin.ios10
+ net6.0-ios
10.0
true
@@ -10,15 +8,6 @@
-
-
-
-
-
- <_BuiltProjectOutputGroupOutputIntermediate Remove="$(OutDir)$(_DeploymentTargetApplicationManifestFileName)" />
-
-
-
-
+
diff --git a/src/tools/Avalonia.Designer.HostApp/Avalonia.Designer.HostApp.csproj b/src/tools/Avalonia.Designer.HostApp/Avalonia.Designer.HostApp.csproj
index a2d27fd579..1cf68c1605 100644
--- a/src/tools/Avalonia.Designer.HostApp/Avalonia.Designer.HostApp.csproj
+++ b/src/tools/Avalonia.Designer.HostApp/Avalonia.Designer.HostApp.csproj
@@ -7,15 +7,9 @@
-
-
-
-
-
-
diff --git a/tests/Avalonia.Animation.UnitTests/Avalonia.Animation.UnitTests.csproj b/tests/Avalonia.Animation.UnitTests/Avalonia.Animation.UnitTests.csproj
deleted file mode 100644
index e07ece5460..0000000000
--- a/tests/Avalonia.Animation.UnitTests/Avalonia.Animation.UnitTests.csproj
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
- net6.0
- Library
- true
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/tests/Avalonia.Animation.UnitTests/Properties/AssemblyInfo.cs b/tests/Avalonia.Animation.UnitTests/Properties/AssemblyInfo.cs
deleted file mode 100644
index b57cd55868..0000000000
--- a/tests/Avalonia.Animation.UnitTests/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,7 +0,0 @@
-using System.Reflection;
-using Xunit;
-
-[assembly: AssemblyTitle("Avalonia.Animation.UnitTests")]
-
-// Don't run tests in parallel.
-[assembly: CollectionBehavior(DisableTestParallelization = true)]
\ No newline at end of file
diff --git a/tests/Avalonia.Animation.UnitTests/AnimatableTests.cs b/tests/Avalonia.Base.UnitTests/Animation/AnimatableTests.cs
similarity index 99%
rename from tests/Avalonia.Animation.UnitTests/AnimatableTests.cs
rename to tests/Avalonia.Base.UnitTests/Animation/AnimatableTests.cs
index 1d5296bebd..f9ff8caab1 100644
--- a/tests/Avalonia.Animation.UnitTests/AnimatableTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Animation/AnimatableTests.cs
@@ -1,5 +1,5 @@
using System;
-using Avalonia.Animation.Animators;
+using Avalonia.Animation;
using Avalonia.Controls;
using Avalonia.Controls.Shapes;
using Avalonia.Data;
@@ -10,7 +10,7 @@ using Avalonia.UnitTests;
using Moq;
using Xunit;
-namespace Avalonia.Animation.UnitTests
+namespace Avalonia.Base.UnitTests.Animation
{
public class AnimatableTests
{
@@ -136,7 +136,7 @@ namespace Avalonia.Animation.UnitTests
KeyTime = TimeSpan.FromSeconds(3),
};
- var animation = new Animation()
+ var animation = new Avalonia.Animation.Animation()
{
Duration = TimeSpan.FromSeconds(3),
Children =
diff --git a/tests/Avalonia.Animation.UnitTests/AnimationIterationTests.cs b/tests/Avalonia.Base.UnitTests/Animation/AnimationIterationTests.cs
similarity index 97%
rename from tests/Avalonia.Animation.UnitTests/AnimationIterationTests.cs
rename to tests/Avalonia.Base.UnitTests/Animation/AnimationIterationTests.cs
index 58bd7a42c3..ca24b95e65 100644
--- a/tests/Avalonia.Animation.UnitTests/AnimationIterationTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Animation/AnimationIterationTests.cs
@@ -12,8 +12,10 @@ using Avalonia.Animation.Easings;
using System.Threading;
using System.Reactive.Linq;
-namespace Avalonia.Animation.UnitTests
+namespace Avalonia.Base.UnitTests.Animation
{
+ using Animation = Avalonia.Animation.Animation;
+
public class AnimationIterationTests
{
[Fact]
@@ -37,7 +39,7 @@ namespace Avalonia.Animation.UnitTests
KeyTime = TimeSpan.FromSeconds(0)
};
- var animation = new Animation()
+ var animation = new Avalonia.Animation.Animation()
{
Duration = TimeSpan.FromSeconds(1),
Children =
@@ -86,7 +88,7 @@ namespace Avalonia.Animation.UnitTests
Cue = new Cue(0d)
};
- var animation = new Animation()
+ var animation = new Avalonia.Animation.Animation()
{
Duration = TimeSpan.FromSeconds(3),
Delay = TimeSpan.FromSeconds(3),
@@ -147,7 +149,7 @@ namespace Avalonia.Animation.UnitTests
Cue = new Cue(1.0d)
};
- var animation = new Animation()
+ var animation = new Avalonia.Animation.Animation()
{
Duration = TimeSpan.FromSeconds(0.05d),
Delay = TimeSpan.FromSeconds(0.05d),
diff --git a/tests/Avalonia.Animation.UnitTests/BrushTransitionTests.cs b/tests/Avalonia.Base.UnitTests/Animation/BrushTransitionTests.cs
similarity index 93%
rename from tests/Avalonia.Animation.UnitTests/BrushTransitionTests.cs
rename to tests/Avalonia.Base.UnitTests/Animation/BrushTransitionTests.cs
index 1986bd2ee3..acc32fd6a2 100644
--- a/tests/Avalonia.Animation.UnitTests/BrushTransitionTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Animation/BrushTransitionTests.cs
@@ -1,13 +1,10 @@
using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
+using Avalonia.Animation;
using Avalonia.Controls;
using Avalonia.Media;
using Xunit;
-namespace Avalonia.Animation.UnitTests
+namespace Avalonia.Base.UnitTests.Animation
{
public class BrushTransitionTests
{
diff --git a/tests/Avalonia.Animation.UnitTests/KeySplineTests.cs b/tests/Avalonia.Base.UnitTests/Animation/KeySplineTests.cs
similarity index 97%
rename from tests/Avalonia.Animation.UnitTests/KeySplineTests.cs
rename to tests/Avalonia.Base.UnitTests/Animation/KeySplineTests.cs
index fa2ed61e65..3cd12d92ec 100644
--- a/tests/Avalonia.Animation.UnitTests/KeySplineTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Animation/KeySplineTests.cs
@@ -1,11 +1,12 @@
using System;
+using Avalonia.Animation;
using Avalonia.Animation.Easings;
using Avalonia.Controls.Shapes;
using Avalonia.Media;
using Avalonia.Styling;
using Xunit;
-namespace Avalonia.Animation.UnitTests
+namespace Avalonia.Base.UnitTests.Animation
{
public class KeySplineTests
{
@@ -123,7 +124,7 @@ namespace Avalonia.Animation.UnitTests
0.499999999999999999)
};
- var animation = new Animation()
+ var animation = new Avalonia.Animation.Animation()
{
Duration = TimeSpan.FromSeconds(5),
Children =
@@ -190,7 +191,7 @@ namespace Avalonia.Animation.UnitTests
KeyTime = TimeSpan.FromSeconds(5),
};
- var animation = new Animation()
+ var animation = new Avalonia.Animation.Animation()
{
Duration = TimeSpan.FromSeconds(5),
Children =
diff --git a/tests/Avalonia.Animation.UnitTests/TestClock.cs b/tests/Avalonia.Base.UnitTests/Animation/TestClock.cs
similarity index 90%
rename from tests/Avalonia.Animation.UnitTests/TestClock.cs
rename to tests/Avalonia.Base.UnitTests/Animation/TestClock.cs
index 4812880c03..6604bd29a4 100644
--- a/tests/Avalonia.Animation.UnitTests/TestClock.cs
+++ b/tests/Avalonia.Base.UnitTests/Animation/TestClock.cs
@@ -1,7 +1,7 @@
using System;
-using System.Collections.Generic;
+using Avalonia.Animation;
-namespace Avalonia.Animation.UnitTests
+namespace Avalonia.Base.UnitTests.Animation
{
internal class TestClock : IClock, IDisposable
{
@@ -33,4 +33,4 @@ namespace Avalonia.Animation.UnitTests
return this;
}
}
-}
\ No newline at end of file
+}
diff --git a/tests/Avalonia.Animation.UnitTests/TransitionsTests.cs b/tests/Avalonia.Base.UnitTests/Animation/TransitionsTests.cs
similarity index 98%
rename from tests/Avalonia.Animation.UnitTests/TransitionsTests.cs
rename to tests/Avalonia.Base.UnitTests/Animation/TransitionsTests.cs
index 640013dedd..65cf90b642 100644
--- a/tests/Avalonia.Animation.UnitTests/TransitionsTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Animation/TransitionsTests.cs
@@ -1,9 +1,9 @@
using System;
+using Avalonia.Animation;
using Avalonia.Controls;
-using Avalonia.UnitTests;
using Xunit;
-namespace Avalonia.Animation.UnitTests
+namespace Avalonia.Base.UnitTests.Animation
{
public class TransitionsTests
{
diff --git a/tests/Avalonia.Base.UnitTests/Avalonia.Base.UnitTests.csproj b/tests/Avalonia.Base.UnitTests/Avalonia.Base.UnitTests.csproj
index 9628d16a6c..602e5e4496 100644
--- a/tests/Avalonia.Base.UnitTests/Avalonia.Base.UnitTests.csproj
+++ b/tests/Avalonia.Base.UnitTests/Avalonia.Base.UnitTests.csproj
@@ -12,6 +12,11 @@
+
+
+
+
+
diff --git a/tests/Avalonia.Base.UnitTests/AvaloniaPropertyRegistryTests.cs b/tests/Avalonia.Base.UnitTests/AvaloniaPropertyRegistryTests.cs
index 7f4db23268..0d62f20f7e 100644
--- a/tests/Avalonia.Base.UnitTests/AvaloniaPropertyRegistryTests.cs
+++ b/tests/Avalonia.Base.UnitTests/AvaloniaPropertyRegistryTests.cs
@@ -1,3 +1,4 @@
+using System;
using System.Linq;
using System.Reactive.Linq;
using Xunit;
@@ -56,7 +57,7 @@ namespace Avalonia.Base.UnitTests
.Select(x => x.Name)
.ToArray();
- Assert.Equal(new[] { "Attached" }, names);
+ Assert.Contains("Attached", names);
}
[Fact]
@@ -66,7 +67,7 @@ namespace Avalonia.Base.UnitTests
.Select(x => x.Name)
.ToArray();
- Assert.Equal(new[] { "Attached" }, names);
+ Assert.Contains("Attached", names);
}
[Fact]
diff --git a/tests/Avalonia.Visuals.UnitTests/CornerRadiusTests.cs b/tests/Avalonia.Base.UnitTests/CornerRadiusTests.cs
similarity index 93%
rename from tests/Avalonia.Visuals.UnitTests/CornerRadiusTests.cs
rename to tests/Avalonia.Base.UnitTests/CornerRadiusTests.cs
index 21633b1cec..edfbd5acd9 100644
--- a/tests/Avalonia.Visuals.UnitTests/CornerRadiusTests.cs
+++ b/tests/Avalonia.Base.UnitTests/CornerRadiusTests.cs
@@ -1,7 +1,6 @@
-using System.Globalization;
using Xunit;
-namespace Avalonia.Visuals.UnitTests
+namespace Avalonia.Base.UnitTests
{
public class CornerRadiusTests
{
@@ -37,4 +36,4 @@ namespace Avalonia.Visuals.UnitTests
Assert.Equal(new CornerRadius(1.1, 2.2, 3.3, 4.4), result);
}
}
-}
\ No newline at end of file
+}
diff --git a/tests/Avalonia.Base.UnitTests/Data/Core/Plugins/DataAnnotationsValidationPluginTests.cs b/tests/Avalonia.Base.UnitTests/Data/Core/Plugins/DataAnnotationsValidationPluginTests.cs
index 1d9524a191..574ecd2ca4 100644
--- a/tests/Avalonia.Base.UnitTests/Data/Core/Plugins/DataAnnotationsValidationPluginTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Data/Core/Plugins/DataAnnotationsValidationPluginTests.cs
@@ -7,7 +7,7 @@ using Avalonia.Data.Core.Plugins;
using Avalonia.UnitTests;
using Xunit;
-namespace Avalonia.Markup.UnitTests.Data.Plugins
+namespace Avalonia.Base.UnitTests.Data.Core.Plugins
{
public class DataAnnotationsValidationPluginTests : IClassFixture
{
diff --git a/tests/Avalonia.Base.UnitTests/Data/DefaultValueConverterTests.cs b/tests/Avalonia.Base.UnitTests/Data/DefaultValueConverterTests.cs
index f522acf9ce..7cf84d767a 100644
--- a/tests/Avalonia.Base.UnitTests/Data/DefaultValueConverterTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Data/DefaultValueConverterTests.cs
@@ -7,7 +7,7 @@ using Avalonia.Data.Converters;
using Avalonia.Layout;
using Xunit;
-namespace Avalonia.Base.UnitTests.Data.Converters
+namespace Avalonia.Base.UnitTests.Data
{
public class DefaultValueConverterTests
{
diff --git a/tests/Avalonia.Input.UnitTests/GesturesTests.cs b/tests/Avalonia.Base.UnitTests/Input/GesturesTests.cs
similarity index 98%
rename from tests/Avalonia.Input.UnitTests/GesturesTests.cs
rename to tests/Avalonia.Base.UnitTests/Input/GesturesTests.cs
index b2687c2555..57ec00cb58 100644
--- a/tests/Avalonia.Input.UnitTests/GesturesTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Input/GesturesTests.cs
@@ -1,9 +1,10 @@
using System.Collections.Generic;
using Avalonia.Controls;
+using Avalonia.Input;
using Avalonia.UnitTests;
using Xunit;
-namespace Avalonia.Input.UnitTests
+namespace Avalonia.Base.UnitTests.Input
{
public class GesturesTests
{
diff --git a/tests/Avalonia.Input.UnitTests/InputElement_Enabled.cs b/tests/Avalonia.Base.UnitTests/Input/InputElement_Enabled.cs
similarity index 98%
rename from tests/Avalonia.Input.UnitTests/InputElement_Enabled.cs
rename to tests/Avalonia.Base.UnitTests/Input/InputElement_Enabled.cs
index 11d68d307e..1c001d4b3a 100644
--- a/tests/Avalonia.Input.UnitTests/InputElement_Enabled.cs
+++ b/tests/Avalonia.Base.UnitTests/Input/InputElement_Enabled.cs
@@ -1,7 +1,7 @@
using Avalonia.Controls;
using Xunit;
-namespace Avalonia.Input.UnitTests
+namespace Avalonia.Base.UnitTests.Input
{
public class InputElement_Enabled
{
diff --git a/tests/Avalonia.Input.UnitTests/InputElement_Focus.cs b/tests/Avalonia.Base.UnitTests/Input/InputElement_Focus.cs
similarity index 99%
rename from tests/Avalonia.Input.UnitTests/InputElement_Focus.cs
rename to tests/Avalonia.Base.UnitTests/Input/InputElement_Focus.cs
index 602455ba36..2d8ee62ef2 100644
--- a/tests/Avalonia.Input.UnitTests/InputElement_Focus.cs
+++ b/tests/Avalonia.Base.UnitTests/Input/InputElement_Focus.cs
@@ -1,8 +1,9 @@
using Avalonia.Controls;
+using Avalonia.Input;
using Avalonia.UnitTests;
using Xunit;
-namespace Avalonia.Input.UnitTests
+namespace Avalonia.Base.UnitTests.Input
{
public class InputElement_Focus
{
diff --git a/tests/Avalonia.Input.UnitTests/KeyGestureTests.cs b/tests/Avalonia.Base.UnitTests/Input/KeyGestureTests.cs
similarity index 97%
rename from tests/Avalonia.Input.UnitTests/KeyGestureTests.cs
rename to tests/Avalonia.Base.UnitTests/Input/KeyGestureTests.cs
index 90f9a0a985..33cd94ec98 100644
--- a/tests/Avalonia.Input.UnitTests/KeyGestureTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Input/KeyGestureTests.cs
@@ -1,7 +1,8 @@
using System.Collections.Generic;
+using Avalonia.Input;
using Xunit;
-namespace Avalonia.Input.UnitTests
+namespace Avalonia.Base.UnitTests.Input
{
public class KeyGestureTests
{
diff --git a/tests/Avalonia.Input.UnitTests/KeyboardDeviceTests.cs b/tests/Avalonia.Base.UnitTests/Input/KeyboardDeviceTests.cs
similarity index 98%
rename from tests/Avalonia.Input.UnitTests/KeyboardDeviceTests.cs
rename to tests/Avalonia.Base.UnitTests/Input/KeyboardDeviceTests.cs
index 32ba14d337..07bfa0d2e6 100644
--- a/tests/Avalonia.Input.UnitTests/KeyboardDeviceTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Input/KeyboardDeviceTests.cs
@@ -1,12 +1,13 @@
using System;
using System.Windows.Input;
using Avalonia.Controls;
+using Avalonia.Input;
using Avalonia.Input.Raw;
using Avalonia.UnitTests;
using Moq;
using Xunit;
-namespace Avalonia.Input.UnitTests
+namespace Avalonia.Base.UnitTests.Input
{
public class KeyboardDeviceTests
{
diff --git a/tests/Avalonia.Input.UnitTests/KeyboardNavigationTests_Custom.cs b/tests/Avalonia.Base.UnitTests/Input/KeyboardNavigationTests_Custom.cs
similarity index 99%
rename from tests/Avalonia.Input.UnitTests/KeyboardNavigationTests_Custom.cs
rename to tests/Avalonia.Base.UnitTests/Input/KeyboardNavigationTests_Custom.cs
index f9c85ee4ca..830f7223ec 100644
--- a/tests/Avalonia.Input.UnitTests/KeyboardNavigationTests_Custom.cs
+++ b/tests/Avalonia.Base.UnitTests/Input/KeyboardNavigationTests_Custom.cs
@@ -1,7 +1,8 @@
using Avalonia.Controls;
+using Avalonia.Input;
using Xunit;
-namespace Avalonia.Input.UnitTests
+namespace Avalonia.Base.UnitTests.Input
{
public class KeyboardNavigationTests_Custom
{
diff --git a/tests/Avalonia.Input.UnitTests/KeyboardNavigationTests_Tab.cs b/tests/Avalonia.Base.UnitTests/Input/KeyboardNavigationTests_Tab.cs
similarity index 99%
rename from tests/Avalonia.Input.UnitTests/KeyboardNavigationTests_Tab.cs
rename to tests/Avalonia.Base.UnitTests/Input/KeyboardNavigationTests_Tab.cs
index 9a117bb71d..7fd8cb345d 100644
--- a/tests/Avalonia.Input.UnitTests/KeyboardNavigationTests_Tab.cs
+++ b/tests/Avalonia.Base.UnitTests/Input/KeyboardNavigationTests_Tab.cs
@@ -1,8 +1,9 @@
using System.Collections.Generic;
using Avalonia.Controls;
+using Avalonia.Input;
using Xunit;
-namespace Avalonia.Input.UnitTests
+namespace Avalonia.Base.UnitTests.Input
{
public class KeyboardNavigationTests_Tab
{
diff --git a/tests/Avalonia.Input.UnitTests/MouseDeviceTests.cs b/tests/Avalonia.Base.UnitTests/Input/MouseDeviceTests.cs
similarity index 98%
rename from tests/Avalonia.Input.UnitTests/MouseDeviceTests.cs
rename to tests/Avalonia.Base.UnitTests/Input/MouseDeviceTests.cs
index 223f458f25..758d501cc1 100644
--- a/tests/Avalonia.Input.UnitTests/MouseDeviceTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Input/MouseDeviceTests.cs
@@ -1,16 +1,16 @@
-using Avalonia.Controls;
+using System;
+using System.Collections.Generic;
+using Avalonia.Controls;
+using Avalonia.Input;
using Avalonia.Input.Raw;
-using Avalonia.Interactivity;
using Avalonia.Media;
using Avalonia.Rendering;
using Avalonia.UnitTests;
using Avalonia.VisualTree;
using Moq;
-using System;
-using System.Collections.Generic;
using Xunit;
-namespace Avalonia.Input.UnitTests
+namespace Avalonia.Base.UnitTests.Input
{
public class MouseDeviceTests
{
diff --git a/tests/Avalonia.Input.UnitTests/PointerTests.cs b/tests/Avalonia.Base.UnitTests/Input/PointerTests.cs
similarity index 95%
rename from tests/Avalonia.Input.UnitTests/PointerTests.cs
rename to tests/Avalonia.Base.UnitTests/Input/PointerTests.cs
index e639726dbd..e25ef0a9b8 100644
--- a/tests/Avalonia.Input.UnitTests/PointerTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Input/PointerTests.cs
@@ -1,11 +1,12 @@
using System.Collections.Generic;
using System.Linq;
using Avalonia.Controls;
+using Avalonia.Input;
using Avalonia.UnitTests;
using Avalonia.VisualTree;
using Xunit;
-namespace Avalonia.Input.UnitTests
+namespace Avalonia.Base.UnitTests.Input
{
public class PointerTests
{
diff --git a/tests/Avalonia.Input.UnitTests/TouchDeviceTests.cs b/tests/Avalonia.Base.UnitTests/Input/TouchDeviceTests.cs
similarity index 100%
rename from tests/Avalonia.Input.UnitTests/TouchDeviceTests.cs
rename to tests/Avalonia.Base.UnitTests/Input/TouchDeviceTests.cs
diff --git a/tests/Avalonia.Interactivity.UnitTests/InteractiveTests.cs b/tests/Avalonia.Base.UnitTests/Interactivity/InteractiveTests.cs
similarity index 99%
rename from tests/Avalonia.Interactivity.UnitTests/InteractiveTests.cs
rename to tests/Avalonia.Base.UnitTests/Interactivity/InteractiveTests.cs
index b997ffbbd9..1ca7e9bd49 100644
--- a/tests/Avalonia.Interactivity.UnitTests/InteractiveTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Interactivity/InteractiveTests.cs
@@ -1,10 +1,11 @@
using System;
using System.Collections.Generic;
using System.Linq;
+using Avalonia.Interactivity;
using Avalonia.VisualTree;
using Xunit;
-namespace Avalonia.Interactivity.UnitTests
+namespace Avalonia.Base.UnitTests.Interactivity
{
public class InteractiveTests
{
diff --git a/tests/Avalonia.Interactivity.UnitTests/RoutedEventRegistryTests.cs b/tests/Avalonia.Base.UnitTests/Interactivity/RoutedEventRegistryTests.cs
similarity index 95%
rename from tests/Avalonia.Interactivity.UnitTests/RoutedEventRegistryTests.cs
rename to tests/Avalonia.Base.UnitTests/Interactivity/RoutedEventRegistryTests.cs
index 8276039d09..05b2187df4 100644
--- a/tests/Avalonia.Interactivity.UnitTests/RoutedEventRegistryTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Interactivity/RoutedEventRegistryTests.cs
@@ -1,9 +1,10 @@
using System.Collections.Generic;
using Avalonia.Controls;
using Avalonia.Input;
+using Avalonia.Interactivity;
using Xunit;
-namespace Avalonia.Interactivity.UnitTests
+namespace Avalonia.Base.UnitTests.Interactivity
{
public class RoutedEventRegistryTests
{
diff --git a/tests/Avalonia.Layout.UnitTests/ArrangeTests.cs b/tests/Avalonia.Base.UnitTests/Layout/ArrangeTests.cs
similarity index 98%
rename from tests/Avalonia.Layout.UnitTests/ArrangeTests.cs
rename to tests/Avalonia.Base.UnitTests/Layout/ArrangeTests.cs
index db0ead1b00..b771cf2d24 100644
--- a/tests/Avalonia.Layout.UnitTests/ArrangeTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Layout/ArrangeTests.cs
@@ -1,7 +1,8 @@
using Avalonia.Controls;
+using Avalonia.Layout;
using Xunit;
-namespace Avalonia.Layout.UnitTests
+namespace Avalonia.Base.UnitTests.Layout
{
public class ArrangeTests
{
diff --git a/tests/Avalonia.Layout.UnitTests/FullLayoutTests.cs b/tests/Avalonia.Base.UnitTests/Layout/FullLayoutTests.cs
similarity index 98%
rename from tests/Avalonia.Layout.UnitTests/FullLayoutTests.cs
rename to tests/Avalonia.Base.UnitTests/Layout/FullLayoutTests.cs
index dcc29a9716..1d6eead6dd 100644
--- a/tests/Avalonia.Layout.UnitTests/FullLayoutTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Layout/FullLayoutTests.cs
@@ -3,12 +3,12 @@ using Avalonia.Controls;
using Avalonia.Controls.Presenters;
using Avalonia.Controls.Primitives;
using Avalonia.Controls.Templates;
-using Avalonia.Styling;
+using Avalonia.Layout;
using Avalonia.UnitTests;
using Avalonia.VisualTree;
using Xunit;
-namespace Avalonia.Layout.UnitTests
+namespace Avalonia.Base.UnitTests.Layout
{
public class FullLayoutTests
{
diff --git a/tests/Avalonia.Layout.UnitTests/LayoutHelperTests.cs b/tests/Avalonia.Base.UnitTests/Layout/LayoutHelperTests.cs
similarity index 92%
rename from tests/Avalonia.Layout.UnitTests/LayoutHelperTests.cs
rename to tests/Avalonia.Base.UnitTests/Layout/LayoutHelperTests.cs
index f9187edc42..3df31939d1 100644
--- a/tests/Avalonia.Layout.UnitTests/LayoutHelperTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Layout/LayoutHelperTests.cs
@@ -1,7 +1,8 @@
using System;
+using Avalonia.Layout;
using Xunit;
-namespace Avalonia.Layout.UnitTests
+namespace Avalonia.Base.UnitTests.Layout
{
public class LayoutHelperTests
{
diff --git a/tests/Avalonia.Layout.UnitTests/LayoutManagerTests.cs b/tests/Avalonia.Base.UnitTests/Layout/LayoutManagerTests.cs
similarity index 99%
rename from tests/Avalonia.Layout.UnitTests/LayoutManagerTests.cs
rename to tests/Avalonia.Base.UnitTests/Layout/LayoutManagerTests.cs
index e429adce85..f0e8e1cd11 100644
--- a/tests/Avalonia.Layout.UnitTests/LayoutManagerTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Layout/LayoutManagerTests.cs
@@ -1,9 +1,10 @@
using System.Collections.Generic;
using System.Linq;
using Avalonia.Controls;
+using Avalonia.Layout;
using Xunit;
-namespace Avalonia.Layout.UnitTests
+namespace Avalonia.Base.UnitTests.Layout
{
public class LayoutManagerTests
{
diff --git a/tests/Avalonia.Layout.UnitTests/LayoutQueueTests.cs b/tests/Avalonia.Base.UnitTests/Layout/LayoutQueueTests.cs
similarity index 98%
rename from tests/Avalonia.Layout.UnitTests/LayoutQueueTests.cs
rename to tests/Avalonia.Base.UnitTests/Layout/LayoutQueueTests.cs
index f047677a8a..fc3b5c3d43 100644
--- a/tests/Avalonia.Layout.UnitTests/LayoutQueueTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Layout/LayoutQueueTests.cs
@@ -1,8 +1,9 @@
using System.Collections.Generic;
using System.Linq;
+using Avalonia.Layout;
using Xunit;
-namespace Avalonia.Layout.UnitTests
+namespace Avalonia.Base.UnitTests.Layout
{
public class LayoutQueueTests
{
diff --git a/tests/Avalonia.Layout.UnitTests/LayoutTestControl.cs b/tests/Avalonia.Base.UnitTests/Layout/LayoutTestControl.cs
similarity index 93%
rename from tests/Avalonia.Layout.UnitTests/LayoutTestControl.cs
rename to tests/Avalonia.Base.UnitTests/Layout/LayoutTestControl.cs
index f7f072eb1e..ca593cc665 100644
--- a/tests/Avalonia.Layout.UnitTests/LayoutTestControl.cs
+++ b/tests/Avalonia.Base.UnitTests/Layout/LayoutTestControl.cs
@@ -1,7 +1,8 @@
using System;
using Avalonia.Controls;
+using Avalonia.Layout;
-namespace Avalonia.Layout.UnitTests
+namespace Avalonia.Base.UnitTests.Layout
{
internal class LayoutTestControl : Decorator
{
diff --git a/tests/Avalonia.Layout.UnitTests/LayoutTestRoot.cs b/tests/Avalonia.Base.UnitTests/Layout/LayoutTestRoot.cs
similarity index 94%
rename from tests/Avalonia.Layout.UnitTests/LayoutTestRoot.cs
rename to tests/Avalonia.Base.UnitTests/Layout/LayoutTestRoot.cs
index a94459df96..19ab54a339 100644
--- a/tests/Avalonia.Layout.UnitTests/LayoutTestRoot.cs
+++ b/tests/Avalonia.Base.UnitTests/Layout/LayoutTestRoot.cs
@@ -1,7 +1,8 @@
using System;
+using Avalonia.Layout;
using Avalonia.UnitTests;
-namespace Avalonia.Layout.UnitTests
+namespace Avalonia.Base.UnitTests.Layout
{
internal class LayoutTestRoot : TestRoot, ILayoutable
{
diff --git a/tests/Avalonia.Layout.UnitTests/LayoutableTests.cs b/tests/Avalonia.Base.UnitTests/Layout/LayoutableTests.cs
similarity index 99%
rename from tests/Avalonia.Layout.UnitTests/LayoutableTests.cs
rename to tests/Avalonia.Base.UnitTests/Layout/LayoutableTests.cs
index a8aa0bbf0e..87fa8cf1f3 100644
--- a/tests/Avalonia.Layout.UnitTests/LayoutableTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Layout/LayoutableTests.cs
@@ -1,10 +1,11 @@
using System;
using Avalonia.Controls;
+using Avalonia.Layout;
using Avalonia.UnitTests;
using Moq;
using Xunit;
-namespace Avalonia.Layout.UnitTests
+namespace Avalonia.Base.UnitTests.Layout
{
public class LayoutableTests
{
diff --git a/tests/Avalonia.Layout.UnitTests/LayoutableTests_EffectiveViewportChanged.cs b/tests/Avalonia.Base.UnitTests/Layout/LayoutableTests_EffectiveViewportChanged.cs
similarity index 99%
rename from tests/Avalonia.Layout.UnitTests/LayoutableTests_EffectiveViewportChanged.cs
rename to tests/Avalonia.Base.UnitTests/Layout/LayoutableTests_EffectiveViewportChanged.cs
index 178855d71c..7c1a525002 100644
--- a/tests/Avalonia.Layout.UnitTests/LayoutableTests_EffectiveViewportChanged.cs
+++ b/tests/Avalonia.Base.UnitTests/Layout/LayoutableTests_EffectiveViewportChanged.cs
@@ -4,11 +4,12 @@ using Avalonia.Controls;
using Avalonia.Controls.Presenters;
using Avalonia.Controls.Primitives;
using Avalonia.Controls.Templates;
+using Avalonia.Layout;
using Avalonia.Media;
using Avalonia.UnitTests;
using Xunit;
-namespace Avalonia.Layout.UnitTests
+namespace Avalonia.Base.UnitTests.Layout
{
public class LayoutableTests_EffectiveViewportChanged
{
diff --git a/tests/Avalonia.Layout.UnitTests/MeasureTests.cs b/tests/Avalonia.Base.UnitTests/Layout/MeasureTests.cs
similarity index 99%
rename from tests/Avalonia.Layout.UnitTests/MeasureTests.cs
rename to tests/Avalonia.Base.UnitTests/Layout/MeasureTests.cs
index 140ebede15..32c3e89b74 100644
--- a/tests/Avalonia.Layout.UnitTests/MeasureTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Layout/MeasureTests.cs
@@ -1,7 +1,7 @@
using Avalonia.Controls;
using Xunit;
-namespace Avalonia.Layout.UnitTests
+namespace Avalonia.Base.UnitTests.Layout
{
public class MeasureTests
{
diff --git a/tests/Avalonia.Layout.UnitTests/NonVirtualizingStackLayoutTests.cs b/tests/Avalonia.Base.UnitTests/Layout/NonVirtualizingStackLayoutTests.cs
similarity index 99%
rename from tests/Avalonia.Layout.UnitTests/NonVirtualizingStackLayoutTests.cs
rename to tests/Avalonia.Base.UnitTests/Layout/NonVirtualizingStackLayoutTests.cs
index a7b378c322..78cf63ed3f 100644
--- a/tests/Avalonia.Layout.UnitTests/NonVirtualizingStackLayoutTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Layout/NonVirtualizingStackLayoutTests.cs
@@ -1,9 +1,10 @@
using System.Collections.Generic;
using System.Linq;
using Avalonia.Controls;
+using Avalonia.Layout;
using Xunit;
-namespace Avalonia.Layout.UnitTests
+namespace Avalonia.Base.UnitTests.Layout
{
public class NonVirtualizingStackLayoutTests
{
diff --git a/tests/Avalonia.Visuals.UnitTests/Media/BoxShadowTests.cs b/tests/Avalonia.Base.UnitTests/Media/BoxShadowTests.cs
similarity index 96%
rename from tests/Avalonia.Visuals.UnitTests/Media/BoxShadowTests.cs
rename to tests/Avalonia.Base.UnitTests/Media/BoxShadowTests.cs
index e3b703baf2..5f1860d177 100644
--- a/tests/Avalonia.Visuals.UnitTests/Media/BoxShadowTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Media/BoxShadowTests.cs
@@ -1,7 +1,7 @@
using Avalonia.Media;
using Xunit;
-namespace Avalonia.Visuals.UnitTests.Media
+namespace Avalonia.Base.UnitTests.Media
{
public class BoxShadowTests
{
diff --git a/tests/Avalonia.Visuals.UnitTests/Media/BrushTests.cs b/tests/Avalonia.Base.UnitTests/Media/BrushTests.cs
similarity index 98%
rename from tests/Avalonia.Visuals.UnitTests/Media/BrushTests.cs
rename to tests/Avalonia.Base.UnitTests/Media/BrushTests.cs
index 1a2f7732dd..6edce79de1 100644
--- a/tests/Avalonia.Visuals.UnitTests/Media/BrushTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Media/BrushTests.cs
@@ -2,7 +2,7 @@ using System;
using Avalonia.Media;
using Xunit;
-namespace Avalonia.Visuals.UnitTests.Media
+namespace Avalonia.Base.UnitTests.Media
{
public class BrushTests
{
diff --git a/tests/Avalonia.Visuals.UnitTests/Media/ColorTests.cs b/tests/Avalonia.Base.UnitTests/Media/ColorTests.cs
similarity index 99%
rename from tests/Avalonia.Visuals.UnitTests/Media/ColorTests.cs
rename to tests/Avalonia.Base.UnitTests/Media/ColorTests.cs
index 352e58abd1..1392635b32 100644
--- a/tests/Avalonia.Visuals.UnitTests/Media/ColorTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Media/ColorTests.cs
@@ -2,7 +2,7 @@ using System;
using Avalonia.Media;
using Xunit;
-namespace Avalonia.Visuals.UnitTests.Media
+namespace Avalonia.Base.UnitTests.Media
{
public class ColorTests
{
diff --git a/tests/Avalonia.Visuals.UnitTests/Media/FontFamilyTests.cs b/tests/Avalonia.Base.UnitTests/Media/FontFamilyTests.cs
similarity index 99%
rename from tests/Avalonia.Visuals.UnitTests/Media/FontFamilyTests.cs
rename to tests/Avalonia.Base.UnitTests/Media/FontFamilyTests.cs
index 8ed5e408fa..1f8ae9bd8b 100644
--- a/tests/Avalonia.Visuals.UnitTests/Media/FontFamilyTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Media/FontFamilyTests.cs
@@ -4,7 +4,7 @@ using Avalonia.Media;
using Avalonia.Media.Fonts;
using Xunit;
-namespace Avalonia.Visuals.UnitTests.Media
+namespace Avalonia.Base.UnitTests.Media
{
public class FontFamilyTests
{
diff --git a/tests/Avalonia.Visuals.UnitTests/Media/FontManagerTests.cs b/tests/Avalonia.Base.UnitTests/Media/FontManagerTests.cs
similarity index 98%
rename from tests/Avalonia.Visuals.UnitTests/Media/FontManagerTests.cs
rename to tests/Avalonia.Base.UnitTests/Media/FontManagerTests.cs
index 2be0209c85..11ecac0039 100644
--- a/tests/Avalonia.Visuals.UnitTests/Media/FontManagerTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Media/FontManagerTests.cs
@@ -3,7 +3,7 @@ using Avalonia.Media;
using Avalonia.UnitTests;
using Xunit;
-namespace Avalonia.Visuals.UnitTests.Media
+namespace Avalonia.Base.UnitTests.Media
{
public class FontManagerTests
{
diff --git a/tests/Avalonia.Visuals.UnitTests/Media/Fonts/FamilyNameCollectionTests.cs b/tests/Avalonia.Base.UnitTests/Media/Fonts/FamilyNameCollectionTests.cs
similarity index 91%
rename from tests/Avalonia.Visuals.UnitTests/Media/Fonts/FamilyNameCollectionTests.cs
rename to tests/Avalonia.Base.UnitTests/Media/Fonts/FamilyNameCollectionTests.cs
index f2fcd51629..07415ac2d6 100644
--- a/tests/Avalonia.Visuals.UnitTests/Media/Fonts/FamilyNameCollectionTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Media/Fonts/FamilyNameCollectionTests.cs
@@ -2,7 +2,7 @@
using Avalonia.Media.Fonts;
using Xunit;
-namespace Avalonia.Visuals.UnitTests.Media.Fonts
+namespace Avalonia.Base.UnitTests.Media.Fonts
{
public class FamilyNameCollectionTests
{
diff --git a/tests/Avalonia.Visuals.UnitTests/Media/Fonts/FontFamilyKeyTests.cs b/tests/Avalonia.Base.UnitTests/Media/Fonts/FontFamilyKeyTests.cs
similarity index 95%
rename from tests/Avalonia.Visuals.UnitTests/Media/Fonts/FontFamilyKeyTests.cs
rename to tests/Avalonia.Base.UnitTests/Media/Fonts/FontFamilyKeyTests.cs
index d99301ea6c..0cb70ea016 100644
--- a/tests/Avalonia.Visuals.UnitTests/Media/Fonts/FontFamilyKeyTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Media/Fonts/FontFamilyKeyTests.cs
@@ -2,7 +2,7 @@
using Avalonia.Media.Fonts;
using Xunit;
-namespace Avalonia.Visuals.UnitTests.Media.Fonts
+namespace Avalonia.Base.UnitTests.Media.Fonts
{
public class FontFamilyKeyTests
{
diff --git a/tests/Avalonia.Visuals.UnitTests/Media/Fonts/FontFamilyLoaderTests.cs b/tests/Avalonia.Base.UnitTests/Media/Fonts/FontFamilyLoaderTests.cs
similarity index 94%
rename from tests/Avalonia.Visuals.UnitTests/Media/Fonts/FontFamilyLoaderTests.cs
rename to tests/Avalonia.Base.UnitTests/Media/Fonts/FontFamilyLoaderTests.cs
index 7e1cc4cd96..1bb2300724 100644
--- a/tests/Avalonia.Visuals.UnitTests/Media/Fonts/FontFamilyLoaderTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Media/Fonts/FontFamilyLoaderTests.cs
@@ -1,4 +1,5 @@
using System;
+using System.Diagnostics;
using System.Linq;
using Avalonia.Media;
using Avalonia.Media.Fonts;
@@ -6,10 +7,8 @@ using Avalonia.Platform;
using Avalonia.UnitTests;
using Xunit;
-namespace Avalonia.Visuals.UnitTests.Media.Fonts
+namespace Avalonia.Base.UnitTests.Media.Fonts
{
- using System.Diagnostics;
-
public class FontFamilyLoaderTests : IDisposable
{
private const string AssetMyFontRegular = AssetLocation + ".MyFont Regular.ttf" + Assembly + FontName;
@@ -100,7 +99,7 @@ namespace Avalonia.Visuals.UnitTests.Media.Fonts
{
var assetLoader = AvaloniaLocator.Current.GetService();
- var fontFamily = new FontFamily("resm:Avalonia.Visuals.UnitTests.Assets?assembly=Avalonia.Visuals.UnitTests#Noto Mono");
+ var fontFamily = new FontFamily("resm:Avalonia.Base.UnitTests.Assets?assembly=Avalonia.Base.UnitTests#Noto Mono");
var fontAssets = FontFamilyLoader.LoadFontAssets(fontFamily.Key).ToArray();
diff --git a/tests/Avalonia.Visuals.UnitTests/Media/GeometryGroupTests.cs b/tests/Avalonia.Base.UnitTests/Media/GeometryGroupTests.cs
similarity index 100%
rename from tests/Avalonia.Visuals.UnitTests/Media/GeometryGroupTests.cs
rename to tests/Avalonia.Base.UnitTests/Media/GeometryGroupTests.cs
diff --git a/tests/Avalonia.Visuals.UnitTests/Media/GeometryTests.cs b/tests/Avalonia.Base.UnitTests/Media/GeometryTests.cs
similarity index 98%
rename from tests/Avalonia.Visuals.UnitTests/Media/GeometryTests.cs
rename to tests/Avalonia.Base.UnitTests/Media/GeometryTests.cs
index 7b1ed7f977..ae8dc9dad2 100644
--- a/tests/Avalonia.Visuals.UnitTests/Media/GeometryTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Media/GeometryTests.cs
@@ -4,7 +4,7 @@ using Avalonia.Platform;
using Moq;
using Xunit;
-namespace Avalonia.Visuals.UnitTests.Media
+namespace Avalonia.Base.UnitTests.Media
{
public class GeometryTests
{
diff --git a/tests/Avalonia.Visuals.UnitTests/Media/GlyphRunTests.cs b/tests/Avalonia.Base.UnitTests/Media/GlyphRunTests.cs
similarity index 99%
rename from tests/Avalonia.Visuals.UnitTests/Media/GlyphRunTests.cs
rename to tests/Avalonia.Base.UnitTests/Media/GlyphRunTests.cs
index ba334fdb74..cd0586233f 100644
--- a/tests/Avalonia.Visuals.UnitTests/Media/GlyphRunTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Media/GlyphRunTests.cs
@@ -5,7 +5,7 @@ using Avalonia.UnitTests;
using Avalonia.Utilities;
using Xunit;
-namespace Avalonia.Visuals.UnitTests.Media
+namespace Avalonia.Base.UnitTests.Media
{
public class GlyphRunTests : TestWithServicesBase
{
diff --git a/tests/Avalonia.Visuals.UnitTests/Media/ImageBrushTests.cs b/tests/Avalonia.Base.UnitTests/Media/ImageBrushTests.cs
similarity index 78%
rename from tests/Avalonia.Visuals.UnitTests/Media/ImageBrushTests.cs
rename to tests/Avalonia.Base.UnitTests/Media/ImageBrushTests.cs
index ff7b94105a..2e872e7f7f 100644
--- a/tests/Avalonia.Visuals.UnitTests/Media/ImageBrushTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Media/ImageBrushTests.cs
@@ -1,12 +1,9 @@
-using System;
-using System.Collections.Generic;
-using System.Text;
-using Avalonia.Media;
+using Avalonia.Media;
using Avalonia.Media.Imaging;
using Moq;
using Xunit;
-namespace Avalonia.Visuals.UnitTests.Media
+namespace Avalonia.Base.UnitTests.Media
{
public class ImageBrushTests
{
diff --git a/tests/Avalonia.Visuals.UnitTests/Media/LinearGradientBrushTests.cs b/tests/Avalonia.Base.UnitTests/Media/LinearGradientBrushTests.cs
similarity index 97%
rename from tests/Avalonia.Visuals.UnitTests/Media/LinearGradientBrushTests.cs
rename to tests/Avalonia.Base.UnitTests/Media/LinearGradientBrushTests.cs
index b3f78dfe8f..736bafba66 100644
--- a/tests/Avalonia.Visuals.UnitTests/Media/LinearGradientBrushTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Media/LinearGradientBrushTests.cs
@@ -1,10 +1,9 @@
-using System;
-using Avalonia.Media;
+using Avalonia.Media;
using Avalonia.Media.Imaging;
using Moq;
using Xunit;
-namespace Avalonia.Visuals.UnitTests.Media
+namespace Avalonia.Base.UnitTests.Media
{
public class LinearGradientBrushTests
{
diff --git a/tests/Avalonia.Visuals.UnitTests/Media/MatrixTests.cs b/tests/Avalonia.Base.UnitTests/Media/MatrixTests.cs
similarity index 98%
rename from tests/Avalonia.Visuals.UnitTests/Media/MatrixTests.cs
rename to tests/Avalonia.Base.UnitTests/Media/MatrixTests.cs
index 6ef48b6161..98b1ff0e28 100644
--- a/tests/Avalonia.Visuals.UnitTests/Media/MatrixTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Media/MatrixTests.cs
@@ -2,7 +2,7 @@
using Avalonia.Utilities;
using Xunit;
-namespace Avalonia.Visuals.UnitTests.Media
+namespace Avalonia.Base.UnitTests.Media
{
public class MatrixTests
{
diff --git a/tests/Avalonia.Visuals.UnitTests/Media/PathMarkupParserTests.cs b/tests/Avalonia.Base.UnitTests/Media/PathMarkupParserTests.cs
similarity index 98%
rename from tests/Avalonia.Visuals.UnitTests/Media/PathMarkupParserTests.cs
rename to tests/Avalonia.Base.UnitTests/Media/PathMarkupParserTests.cs
index ba8c490829..c829690eb4 100644
--- a/tests/Avalonia.Visuals.UnitTests/Media/PathMarkupParserTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Media/PathMarkupParserTests.cs
@@ -1,14 +1,13 @@
+using System.Globalization;
+using System.IO;
using Avalonia.Media;
+using Avalonia.Platform;
using Avalonia.Visuals.Platform;
+using Moq;
using Xunit;
-namespace Avalonia.Visuals.UnitTests.Media
+namespace Avalonia.Base.UnitTests.Media
{
- using System.Globalization;
- using System.IO;
- using Avalonia.Platform;
- using Moq;
-
public class PathMarkupParserTests
{
[Fact]
diff --git a/tests/Avalonia.Visuals.UnitTests/Media/PathSegmentTests.cs b/tests/Avalonia.Base.UnitTests/Media/PathSegmentTests.cs
similarity index 94%
rename from tests/Avalonia.Visuals.UnitTests/Media/PathSegmentTests.cs
rename to tests/Avalonia.Base.UnitTests/Media/PathSegmentTests.cs
index 0737b4dc88..41d2fdb349 100644
--- a/tests/Avalonia.Visuals.UnitTests/Media/PathSegmentTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Media/PathSegmentTests.cs
@@ -1,7 +1,7 @@
using Avalonia.Media;
using Xunit;
-namespace Avalonia.Visuals.UnitTests.Media
+namespace Avalonia.Base.UnitTests.Media
{
public class PathSegmentTests
{
diff --git a/tests/Avalonia.Visuals.UnitTests/Media/PenTests.cs b/tests/Avalonia.Base.UnitTests/Media/PenTests.cs
similarity index 98%
rename from tests/Avalonia.Visuals.UnitTests/Media/PenTests.cs
rename to tests/Avalonia.Base.UnitTests/Media/PenTests.cs
index 8c25019606..fecdd30834 100644
--- a/tests/Avalonia.Visuals.UnitTests/Media/PenTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Media/PenTests.cs
@@ -3,7 +3,7 @@ using Avalonia.Media;
using Avalonia.Media.Immutable;
using Xunit;
-namespace Avalonia.Visuals.UnitTests.Media
+namespace Avalonia.Base.UnitTests.Media
{
public class PenTests
{
diff --git a/tests/Avalonia.Visuals.UnitTests/Media/PixelRectTests.cs b/tests/Avalonia.Base.UnitTests/Media/PixelRectTests.cs
similarity index 90%
rename from tests/Avalonia.Visuals.UnitTests/Media/PixelRectTests.cs
rename to tests/Avalonia.Base.UnitTests/Media/PixelRectTests.cs
index c6da9b77e9..61c410ca8e 100644
--- a/tests/Avalonia.Visuals.UnitTests/Media/PixelRectTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Media/PixelRectTests.cs
@@ -1,9 +1,6 @@
-using System;
-using System.Collections.Generic;
-using System.Text;
-using Xunit;
+using Xunit;
-namespace Avalonia.Visuals.UnitTests.Media
+namespace Avalonia.Base.UnitTests.Media
{
public class PixelRectTests
{
diff --git a/tests/Avalonia.Visuals.UnitTests/Media/RectTests.cs b/tests/Avalonia.Base.UnitTests/Media/RectTests.cs
similarity index 74%
rename from tests/Avalonia.Visuals.UnitTests/Media/RectTests.cs
rename to tests/Avalonia.Base.UnitTests/Media/RectTests.cs
index cd0c7e1ace..96473348cd 100644
--- a/tests/Avalonia.Visuals.UnitTests/Media/RectTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Media/RectTests.cs
@@ -1,7 +1,6 @@
-using System.Globalization;
-using Xunit;
+using Xunit;
-namespace Avalonia.Visuals.UnitTests.Media
+namespace Avalonia.Base.UnitTests.Media
{
public class RectTests
{
@@ -13,4 +12,4 @@ namespace Avalonia.Visuals.UnitTests.Media
Assert.Equal(expected, rect);
}
}
-}
\ No newline at end of file
+}
diff --git a/tests/Avalonia.Visuals.UnitTests/Media/RectangleGeometryTests.cs b/tests/Avalonia.Base.UnitTests/Media/RectangleGeometryTests.cs
similarity index 93%
rename from tests/Avalonia.Visuals.UnitTests/Media/RectangleGeometryTests.cs
rename to tests/Avalonia.Base.UnitTests/Media/RectangleGeometryTests.cs
index 5af1bb572e..387b2f4a19 100644
--- a/tests/Avalonia.Visuals.UnitTests/Media/RectangleGeometryTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Media/RectangleGeometryTests.cs
@@ -1,11 +1,10 @@
-using System;
-using Avalonia.Media;
+using Avalonia.Media;
using Avalonia.Platform;
using Avalonia.UnitTests;
using Moq;
using Xunit;
-namespace Avalonia.Visuals.UnitTests.Media
+namespace Avalonia.Base.UnitTests.Media
{
public class RectangleGeometryTests
{
diff --git a/tests/Avalonia.Visuals.UnitTests/Media/SolidColorBrushTests.cs b/tests/Avalonia.Base.UnitTests/Media/SolidColorBrushTests.cs
similarity index 82%
rename from tests/Avalonia.Visuals.UnitTests/Media/SolidColorBrushTests.cs
rename to tests/Avalonia.Base.UnitTests/Media/SolidColorBrushTests.cs
index bcf63f9660..c982d8c1c8 100644
--- a/tests/Avalonia.Visuals.UnitTests/Media/SolidColorBrushTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Media/SolidColorBrushTests.cs
@@ -1,8 +1,7 @@
-using System;
-using Avalonia.Media;
+using Avalonia.Media;
using Xunit;
-namespace Avalonia.Visuals.UnitTests.Media
+namespace Avalonia.Base.UnitTests.Media
{
public class SolidColorBrushTests
{
diff --git a/tests/Avalonia.Visuals.UnitTests/Media/TextDecorationTests.cs b/tests/Avalonia.Base.UnitTests/Media/TextDecorationTests.cs
similarity index 95%
rename from tests/Avalonia.Visuals.UnitTests/Media/TextDecorationTests.cs
rename to tests/Avalonia.Base.UnitTests/Media/TextDecorationTests.cs
index 60a41baaa7..c4537ea2f8 100644
--- a/tests/Avalonia.Visuals.UnitTests/Media/TextDecorationTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Media/TextDecorationTests.cs
@@ -1,7 +1,7 @@
using Avalonia.Media;
using Xunit;
-namespace Avalonia.Visuals.UnitTests.Media
+namespace Avalonia.Base.UnitTests.Media
{
public class TextDecorationTests
{
diff --git a/tests/Avalonia.Visuals.UnitTests/Media/TextFormatting/BiDiAlgorithmTests.cs b/tests/Avalonia.Base.UnitTests/Media/TextFormatting/BiDiAlgorithmTests.cs
similarity index 100%
rename from tests/Avalonia.Visuals.UnitTests/Media/TextFormatting/BiDiAlgorithmTests.cs
rename to tests/Avalonia.Base.UnitTests/Media/TextFormatting/BiDiAlgorithmTests.cs
diff --git a/tests/Avalonia.Visuals.UnitTests/Media/TextFormatting/BiDiClassTestDataGenerator.cs b/tests/Avalonia.Base.UnitTests/Media/TextFormatting/BiDiClassTestDataGenerator.cs
similarity index 98%
rename from tests/Avalonia.Visuals.UnitTests/Media/TextFormatting/BiDiClassTestDataGenerator.cs
rename to tests/Avalonia.Base.UnitTests/Media/TextFormatting/BiDiClassTestDataGenerator.cs
index 2f1064be21..f6b01d737c 100644
--- a/tests/Avalonia.Visuals.UnitTests/Media/TextFormatting/BiDiClassTestDataGenerator.cs
+++ b/tests/Avalonia.Base.UnitTests/Media/TextFormatting/BiDiClassTestDataGenerator.cs
@@ -4,6 +4,7 @@ using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net.Http;
+using Avalonia.Base.UnitTests.Media.TextFormatting;
namespace Avalonia.Visuals.UnitTests.Media.TextFormatting
{
diff --git a/tests/Avalonia.Visuals.UnitTests/Media/TextFormatting/BiDiClassTests.cs b/tests/Avalonia.Base.UnitTests/Media/TextFormatting/BiDiClassTests.cs
similarity index 100%
rename from tests/Avalonia.Visuals.UnitTests/Media/TextFormatting/BiDiClassTests.cs
rename to tests/Avalonia.Base.UnitTests/Media/TextFormatting/BiDiClassTests.cs
diff --git a/tests/Avalonia.Visuals.UnitTests/Media/TextFormatting/BiDiTestDataGenerator.cs b/tests/Avalonia.Base.UnitTests/Media/TextFormatting/BiDiTestDataGenerator.cs
similarity index 98%
rename from tests/Avalonia.Visuals.UnitTests/Media/TextFormatting/BiDiTestDataGenerator.cs
rename to tests/Avalonia.Base.UnitTests/Media/TextFormatting/BiDiTestDataGenerator.cs
index 4102de10ec..033e0e2242 100644
--- a/tests/Avalonia.Visuals.UnitTests/Media/TextFormatting/BiDiTestDataGenerator.cs
+++ b/tests/Avalonia.Base.UnitTests/Media/TextFormatting/BiDiTestDataGenerator.cs
@@ -4,6 +4,7 @@ using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net.Http;
+using Avalonia.Base.UnitTests.Media.TextFormatting;
using Avalonia.Media.TextFormatting.Unicode;
namespace Avalonia.Visuals.UnitTests.Media.TextFormatting
diff --git a/tests/Avalonia.Visuals.UnitTests/Media/TextFormatting/BreakPairTable.txt b/tests/Avalonia.Base.UnitTests/Media/TextFormatting/BreakPairTable.txt
similarity index 100%
rename from tests/Avalonia.Visuals.UnitTests/Media/TextFormatting/BreakPairTable.txt
rename to tests/Avalonia.Base.UnitTests/Media/TextFormatting/BreakPairTable.txt
diff --git a/tests/Avalonia.Visuals.UnitTests/Media/TextFormatting/GraphemeBreakClassTrieGenerator.cs b/tests/Avalonia.Base.UnitTests/Media/TextFormatting/GraphemeBreakClassTrieGenerator.cs
similarity index 98%
rename from tests/Avalonia.Visuals.UnitTests/Media/TextFormatting/GraphemeBreakClassTrieGenerator.cs
rename to tests/Avalonia.Base.UnitTests/Media/TextFormatting/GraphemeBreakClassTrieGenerator.cs
index c074e5a1f1..7ad2e71d77 100644
--- a/tests/Avalonia.Visuals.UnitTests/Media/TextFormatting/GraphemeBreakClassTrieGenerator.cs
+++ b/tests/Avalonia.Base.UnitTests/Media/TextFormatting/GraphemeBreakClassTrieGenerator.cs
@@ -5,7 +5,7 @@ using System.Net.Http;
using System.Text.RegularExpressions;
using Avalonia.Media.TextFormatting.Unicode;
-namespace Avalonia.Visuals.UnitTests.Media.TextFormatting
+namespace Avalonia.Base.UnitTests.Media.TextFormatting
{
public static class GraphemeBreakClassTrieGenerator
{
diff --git a/tests/Avalonia.Visuals.UnitTests/Media/TextFormatting/GraphemeBreakClassTrieGeneratorTests.cs b/tests/Avalonia.Base.UnitTests/Media/TextFormatting/GraphemeBreakClassTrieGeneratorTests.cs
similarity index 96%
rename from tests/Avalonia.Visuals.UnitTests/Media/TextFormatting/GraphemeBreakClassTrieGeneratorTests.cs
rename to tests/Avalonia.Base.UnitTests/Media/TextFormatting/GraphemeBreakClassTrieGeneratorTests.cs
index 848b60b341..e1e3e14ea7 100644
--- a/tests/Avalonia.Visuals.UnitTests/Media/TextFormatting/GraphemeBreakClassTrieGeneratorTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Media/TextFormatting/GraphemeBreakClassTrieGeneratorTests.cs
@@ -2,7 +2,7 @@
using Avalonia.Media.TextFormatting.Unicode;
using Xunit;
-namespace Avalonia.Visuals.UnitTests.Media.TextFormatting
+namespace Avalonia.Base.UnitTests.Media.TextFormatting
{
///
/// This class is intended for use when the Unicode spec changes. Otherwise the containing tests are redundant.
diff --git a/tests/Avalonia.Visuals.UnitTests/Media/TextFormatting/LineBreakEnumuratorTests.cs b/tests/Avalonia.Base.UnitTests/Media/TextFormatting/LineBreakEnumuratorTests.cs
similarity index 99%
rename from tests/Avalonia.Visuals.UnitTests/Media/TextFormatting/LineBreakEnumuratorTests.cs
rename to tests/Avalonia.Base.UnitTests/Media/TextFormatting/LineBreakEnumuratorTests.cs
index a90be6d519..1dbfbe4d24 100644
--- a/tests/Avalonia.Visuals.UnitTests/Media/TextFormatting/LineBreakEnumuratorTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Media/TextFormatting/LineBreakEnumuratorTests.cs
@@ -8,7 +8,7 @@ using Avalonia.Media.TextFormatting.Unicode;
using Xunit;
using Xunit.Abstractions;
-namespace Avalonia.Visuals.UnitTests.Media.TextFormatting
+namespace Avalonia.Base.UnitTests.Media.TextFormatting
{
public class LineBreakEnumeratorTests
{
diff --git a/tests/Avalonia.Visuals.UnitTests/Media/TextFormatting/TestDataGenerator.cs b/tests/Avalonia.Base.UnitTests/Media/TextFormatting/TestDataGenerator.cs
similarity index 97%
rename from tests/Avalonia.Visuals.UnitTests/Media/TextFormatting/TestDataGenerator.cs
rename to tests/Avalonia.Base.UnitTests/Media/TextFormatting/TestDataGenerator.cs
index 058de909df..33b4c8a269 100644
--- a/tests/Avalonia.Visuals.UnitTests/Media/TextFormatting/TestDataGenerator.cs
+++ b/tests/Avalonia.Base.UnitTests/Media/TextFormatting/TestDataGenerator.cs
@@ -5,7 +5,7 @@ using System.IO;
using System.Linq;
using System.Net.Http;
-namespace Avalonia.Visuals.UnitTests.Media.TextFormatting
+namespace Avalonia.Base.UnitTests.Media.TextFormatting
{
public abstract class TestDataGenerator : IEnumerable
{
diff --git a/tests/Avalonia.Visuals.UnitTests/Media/TextFormatting/UnicodeDataGenerator.cs b/tests/Avalonia.Base.UnitTests/Media/TextFormatting/UnicodeDataGenerator.cs
similarity index 99%
rename from tests/Avalonia.Visuals.UnitTests/Media/TextFormatting/UnicodeDataGenerator.cs
rename to tests/Avalonia.Base.UnitTests/Media/TextFormatting/UnicodeDataGenerator.cs
index da9e494405..e2877abd83 100644
--- a/tests/Avalonia.Visuals.UnitTests/Media/TextFormatting/UnicodeDataGenerator.cs
+++ b/tests/Avalonia.Base.UnitTests/Media/TextFormatting/UnicodeDataGenerator.cs
@@ -6,7 +6,7 @@ using System.Text.RegularExpressions;
using Avalonia.Media.TextFormatting.Unicode;
using Xunit;
-namespace Avalonia.Visuals.UnitTests.Media.TextFormatting
+namespace Avalonia.Base.UnitTests.Media.TextFormatting
{
internal static class UnicodeDataGenerator
{
diff --git a/tests/Avalonia.Visuals.UnitTests/Media/TextFormatting/UnicodeDataGeneratorTests.cs b/tests/Avalonia.Base.UnitTests/Media/TextFormatting/UnicodeDataGeneratorTests.cs
similarity index 97%
rename from tests/Avalonia.Visuals.UnitTests/Media/TextFormatting/UnicodeDataGeneratorTests.cs
rename to tests/Avalonia.Base.UnitTests/Media/TextFormatting/UnicodeDataGeneratorTests.cs
index f122876322..f3aea83316 100644
--- a/tests/Avalonia.Visuals.UnitTests/Media/TextFormatting/UnicodeDataGeneratorTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Media/TextFormatting/UnicodeDataGeneratorTests.cs
@@ -2,7 +2,7 @@
using Avalonia.Media.TextFormatting.Unicode;
using Xunit;
-namespace Avalonia.Visuals.UnitTests.Media.TextFormatting
+namespace Avalonia.Base.UnitTests.Media.TextFormatting
{
public class UnicodeDataGeneratorTests
{
diff --git a/tests/Avalonia.Visuals.UnitTests/Media/TextFormatting/UnicodeEnumsGenerator.cs b/tests/Avalonia.Base.UnitTests/Media/TextFormatting/UnicodeEnumsGenerator.cs
similarity index 99%
rename from tests/Avalonia.Visuals.UnitTests/Media/TextFormatting/UnicodeEnumsGenerator.cs
rename to tests/Avalonia.Base.UnitTests/Media/TextFormatting/UnicodeEnumsGenerator.cs
index e483728423..1323ddfbd1 100644
--- a/tests/Avalonia.Visuals.UnitTests/Media/TextFormatting/UnicodeEnumsGenerator.cs
+++ b/tests/Avalonia.Base.UnitTests/Media/TextFormatting/UnicodeEnumsGenerator.cs
@@ -4,7 +4,7 @@ using System.IO;
using System.Linq;
using System.Net.Http;
-namespace Avalonia.Visuals.UnitTests.Media.TextFormatting
+namespace Avalonia.Base.UnitTests.Media.TextFormatting
{
internal static class UnicodeEnumsGenerator
{
diff --git a/tests/Avalonia.Visuals.UnitTests/Media/TransformOperationsTests.cs b/tests/Avalonia.Base.UnitTests/Media/TransformOperationsTests.cs
similarity index 99%
rename from tests/Avalonia.Visuals.UnitTests/Media/TransformOperationsTests.cs
rename to tests/Avalonia.Base.UnitTests/Media/TransformOperationsTests.cs
index e4f88706d8..0d84ba1700 100644
--- a/tests/Avalonia.Visuals.UnitTests/Media/TransformOperationsTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Media/TransformOperationsTests.cs
@@ -2,7 +2,7 @@ using Avalonia.Media.Transformation;
using Avalonia.Utilities;
using Xunit;
-namespace Avalonia.Visuals.UnitTests.Media
+namespace Avalonia.Base.UnitTests.Media
{
public class TransformOperationsTests
{
diff --git a/tests/Avalonia.Visuals.UnitTests/Media/TypefaceTests.cs b/tests/Avalonia.Base.UnitTests/Media/TypefaceTests.cs
similarity index 93%
rename from tests/Avalonia.Visuals.UnitTests/Media/TypefaceTests.cs
rename to tests/Avalonia.Base.UnitTests/Media/TypefaceTests.cs
index e526172622..826c1f292b 100644
--- a/tests/Avalonia.Visuals.UnitTests/Media/TypefaceTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Media/TypefaceTests.cs
@@ -2,7 +2,7 @@
using Avalonia.Media;
using Xunit;
-namespace Avalonia.Visuals.UnitTests.Media
+namespace Avalonia.Base.UnitTests.Media
{
public class TypefaceTests
{
diff --git a/tests/Avalonia.Visuals.UnitTests/Media/UnicodeRangeSegmentTests.cs b/tests/Avalonia.Base.UnitTests/Media/UnicodeRangeSegmentTests.cs
similarity index 100%
rename from tests/Avalonia.Visuals.UnitTests/Media/UnicodeRangeSegmentTests.cs
rename to tests/Avalonia.Base.UnitTests/Media/UnicodeRangeSegmentTests.cs
diff --git a/tests/Avalonia.Visuals.UnitTests/Media/UnicodeRangeTests.cs b/tests/Avalonia.Base.UnitTests/Media/UnicodeRangeTests.cs
similarity index 100%
rename from tests/Avalonia.Visuals.UnitTests/Media/UnicodeRangeTests.cs
rename to tests/Avalonia.Base.UnitTests/Media/UnicodeRangeTests.cs
diff --git a/tests/Avalonia.Visuals.UnitTests/RectTests.cs b/tests/Avalonia.Base.UnitTests/RectTests.cs
similarity index 97%
rename from tests/Avalonia.Visuals.UnitTests/RectTests.cs
rename to tests/Avalonia.Base.UnitTests/RectTests.cs
index a2b0569949..95a438b287 100644
--- a/tests/Avalonia.Visuals.UnitTests/RectTests.cs
+++ b/tests/Avalonia.Base.UnitTests/RectTests.cs
@@ -1,6 +1,6 @@
using Xunit;
-namespace Avalonia.Visuals.UnitTests
+namespace Avalonia.Base.UnitTests
{
public class RectTests
{
diff --git a/tests/Avalonia.Visuals.UnitTests/RelativePointTests.cs b/tests/Avalonia.Base.UnitTests/RelativePointTests.cs
similarity index 89%
rename from tests/Avalonia.Visuals.UnitTests/RelativePointTests.cs
rename to tests/Avalonia.Base.UnitTests/RelativePointTests.cs
index c871b8ee87..c242a504b9 100644
--- a/tests/Avalonia.Visuals.UnitTests/RelativePointTests.cs
+++ b/tests/Avalonia.Base.UnitTests/RelativePointTests.cs
@@ -1,7 +1,6 @@
-using System.Globalization;
using Xunit;
-namespace Avalonia.Visuals.UnitTests
+namespace Avalonia.Base.UnitTests
{
public class RelativePointTests
{
diff --git a/tests/Avalonia.Visuals.UnitTests/RelativeRectComparer.cs b/tests/Avalonia.Base.UnitTests/RelativeRectComparer.cs
similarity index 94%
rename from tests/Avalonia.Visuals.UnitTests/RelativeRectComparer.cs
rename to tests/Avalonia.Base.UnitTests/RelativeRectComparer.cs
index bf3bf39367..3e0acddb02 100644
--- a/tests/Avalonia.Visuals.UnitTests/RelativeRectComparer.cs
+++ b/tests/Avalonia.Base.UnitTests/RelativeRectComparer.cs
@@ -1,7 +1,7 @@
using System;
using System.Collections.Generic;
-namespace Avalonia.Visuals.UnitTests
+namespace Avalonia.Base.UnitTests
{
public class RelativeRectComparer : IEqualityComparer
{
diff --git a/tests/Avalonia.Visuals.UnitTests/RelativeRectTests.cs b/tests/Avalonia.Base.UnitTests/RelativeRectTests.cs
similarity index 93%
rename from tests/Avalonia.Visuals.UnitTests/RelativeRectTests.cs
rename to tests/Avalonia.Base.UnitTests/RelativeRectTests.cs
index 9753e0779a..ff53419d5c 100644
--- a/tests/Avalonia.Visuals.UnitTests/RelativeRectTests.cs
+++ b/tests/Avalonia.Base.UnitTests/RelativeRectTests.cs
@@ -1,8 +1,7 @@
using System;
-using System.Globalization;
using Xunit;
-namespace Avalonia.Visuals.UnitTests
+namespace Avalonia.Base.UnitTests
{
public class RelativeRectTests
{
diff --git a/tests/Avalonia.Visuals.UnitTests/RenderTests_Culling.cs b/tests/Avalonia.Base.UnitTests/RenderTests_Culling.cs
similarity index 99%
rename from tests/Avalonia.Visuals.UnitTests/RenderTests_Culling.cs
rename to tests/Avalonia.Base.UnitTests/RenderTests_Culling.cs
index ba632b791a..c7421c5827 100644
--- a/tests/Avalonia.Visuals.UnitTests/RenderTests_Culling.cs
+++ b/tests/Avalonia.Base.UnitTests/RenderTests_Culling.cs
@@ -1,12 +1,12 @@
-using Moq;
using Avalonia.Controls;
using Avalonia.Media;
-using Avalonia.Rendering;
-using Xunit;
using Avalonia.Platform;
+using Avalonia.Rendering;
using Avalonia.UnitTests;
+using Moq;
+using Xunit;
-namespace Avalonia.Visuals.UnitTests
+namespace Avalonia.Base.UnitTests
{
public class RenderTests_Culling
{
diff --git a/tests/Avalonia.Visuals.UnitTests/Rendering/CustomHitTestBorder.cs b/tests/Avalonia.Base.UnitTests/Rendering/CustomHitTestBorder.cs
similarity index 84%
rename from tests/Avalonia.Visuals.UnitTests/Rendering/CustomHitTestBorder.cs
rename to tests/Avalonia.Base.UnitTests/Rendering/CustomHitTestBorder.cs
index 3221f097ad..fece152713 100644
--- a/tests/Avalonia.Visuals.UnitTests/Rendering/CustomHitTestBorder.cs
+++ b/tests/Avalonia.Base.UnitTests/Rendering/CustomHitTestBorder.cs
@@ -1,8 +1,7 @@
using Avalonia.Controls;
-using Avalonia.Media;
using Avalonia.Rendering;
-namespace Avalonia.Visuals.UnitTests.Rendering
+namespace Avalonia.Base.UnitTests.Rendering
{
internal class CustomHitTestBorder : Border, ICustomHitTest
{
diff --git a/tests/Avalonia.Visuals.UnitTests/Rendering/DeferredRendererTests.cs b/tests/Avalonia.Base.UnitTests/Rendering/DeferredRendererTests.cs
similarity index 99%
rename from tests/Avalonia.Visuals.UnitTests/Rendering/DeferredRendererTests.cs
rename to tests/Avalonia.Base.UnitTests/Rendering/DeferredRendererTests.cs
index e58eea42d8..c345b9a7ea 100644
--- a/tests/Avalonia.Visuals.UnitTests/Rendering/DeferredRendererTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Rendering/DeferredRendererTests.cs
@@ -2,7 +2,6 @@
using System.Collections.Generic;
using System.Linq;
using System.Reactive.Subjects;
-using System.Threading.Tasks;
using Avalonia.Controls;
using Avalonia.Data;
using Avalonia.Media;
@@ -11,14 +10,12 @@ using Avalonia.Rendering;
using Avalonia.Rendering.SceneGraph;
using Avalonia.Threading;
using Avalonia.UnitTests;
-using Avalonia.Visuals.Media.Imaging;
+using Avalonia.Media.Imaging;
using Avalonia.VisualTree;
-
using Moq;
-
using Xunit;
-namespace Avalonia.Visuals.UnitTests.Rendering
+namespace Avalonia.Base.UnitTests.Rendering
{
public class DeferredRendererTests
{
diff --git a/tests/Avalonia.Visuals.UnitTests/Rendering/DeferredRendererTests_HitTesting.cs b/tests/Avalonia.Base.UnitTests/Rendering/DeferredRendererTests_HitTesting.cs
similarity index 99%
rename from tests/Avalonia.Visuals.UnitTests/Rendering/DeferredRendererTests_HitTesting.cs
rename to tests/Avalonia.Base.UnitTests/Rendering/DeferredRendererTests_HitTesting.cs
index d24d183709..33c7b3e0f8 100644
--- a/tests/Avalonia.Visuals.UnitTests/Rendering/DeferredRendererTests_HitTesting.cs
+++ b/tests/Avalonia.Base.UnitTests/Rendering/DeferredRendererTests_HitTesting.cs
@@ -3,7 +3,6 @@ using System.Linq;
using Avalonia.Controls;
using Avalonia.Controls.Presenters;
using Avalonia.Controls.Shapes;
-using Avalonia.Input;
using Avalonia.Layout;
using Avalonia.Media;
using Avalonia.Platform;
@@ -13,7 +12,7 @@ using Avalonia.VisualTree;
using Moq;
using Xunit;
-namespace Avalonia.Visuals.UnitTests.Rendering
+namespace Avalonia.Base.UnitTests.Rendering
{
public class DeferredRendererTests_HitTesting
{
diff --git a/tests/Avalonia.Visuals.UnitTests/Rendering/ImmediateRendererTests.cs b/tests/Avalonia.Base.UnitTests/Rendering/ImmediateRendererTests.cs
similarity index 99%
rename from tests/Avalonia.Visuals.UnitTests/Rendering/ImmediateRendererTests.cs
rename to tests/Avalonia.Base.UnitTests/Rendering/ImmediateRendererTests.cs
index 6859b2b139..84bb9b00cd 100644
--- a/tests/Avalonia.Visuals.UnitTests/Rendering/ImmediateRendererTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Rendering/ImmediateRendererTests.cs
@@ -10,7 +10,7 @@ using Avalonia.VisualTree;
using Moq;
using Xunit;
-namespace Avalonia.Visuals.UnitTests.Rendering
+namespace Avalonia.Base.UnitTests.Rendering
{
public class ImmediateRendererTests
{
diff --git a/tests/Avalonia.Visuals.UnitTests/Rendering/ImmediateRendererTests_HitTesting.cs b/tests/Avalonia.Base.UnitTests/Rendering/ImmediateRendererTests_HitTesting.cs
similarity index 99%
rename from tests/Avalonia.Visuals.UnitTests/Rendering/ImmediateRendererTests_HitTesting.cs
rename to tests/Avalonia.Base.UnitTests/Rendering/ImmediateRendererTests_HitTesting.cs
index a3b0a0cdd5..1a9822e259 100644
--- a/tests/Avalonia.Visuals.UnitTests/Rendering/ImmediateRendererTests_HitTesting.cs
+++ b/tests/Avalonia.Base.UnitTests/Rendering/ImmediateRendererTests_HitTesting.cs
@@ -9,7 +9,7 @@ using Avalonia.UnitTests;
using Avalonia.VisualTree;
using Xunit;
-namespace Avalonia.Visuals.UnitTests.Rendering
+namespace Avalonia.Base.UnitTests.Rendering
{
public class ImmediateRendererTests_HitTesting
{
diff --git a/tests/Avalonia.Visuals.UnitTests/Rendering/RenderLoopTests.cs b/tests/Avalonia.Base.UnitTests/Rendering/RenderLoopTests.cs
similarity index 97%
rename from tests/Avalonia.Visuals.UnitTests/Rendering/RenderLoopTests.cs
rename to tests/Avalonia.Base.UnitTests/Rendering/RenderLoopTests.cs
index e9aefc46e6..6855a378b4 100644
--- a/tests/Avalonia.Visuals.UnitTests/Rendering/RenderLoopTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Rendering/RenderLoopTests.cs
@@ -1,13 +1,11 @@
using System;
-using System.Collections.Generic;
-using System.Text;
using System.Threading.Tasks;
using Avalonia.Rendering;
using Avalonia.Threading;
using Moq;
using Xunit;
-namespace Avalonia.Visuals.UnitTests.Rendering
+namespace Avalonia.Base.UnitTests.Rendering
{
public class RenderLoopTests
{
diff --git a/tests/Avalonia.Visuals.UnitTests/Rendering/SceneGraph/DeferredDrawingContextImplTests.cs b/tests/Avalonia.Base.UnitTests/Rendering/SceneGraph/DeferredDrawingContextImplTests.cs
similarity index 98%
rename from tests/Avalonia.Visuals.UnitTests/Rendering/SceneGraph/DeferredDrawingContextImplTests.cs
rename to tests/Avalonia.Base.UnitTests/Rendering/SceneGraph/DeferredDrawingContextImplTests.cs
index 27aa0c55b5..8f307978f2 100644
--- a/tests/Avalonia.Visuals.UnitTests/Rendering/SceneGraph/DeferredDrawingContextImplTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Rendering/SceneGraph/DeferredDrawingContextImplTests.cs
@@ -1,7 +1,5 @@
-using System;
-using System.Linq;
+using System.Linq;
using Avalonia.Media;
-using Avalonia.Platform;
using Avalonia.Rendering.SceneGraph;
using Avalonia.UnitTests;
using Avalonia.Utilities;
@@ -9,7 +7,7 @@ using Avalonia.VisualTree;
using Moq;
using Xunit;
-namespace Avalonia.Visuals.UnitTests.Rendering.SceneGraph
+namespace Avalonia.Base.UnitTests.Rendering.SceneGraph
{
public class DeferredDrawingContextImplTests
{
diff --git a/tests/Avalonia.Visuals.UnitTests/Rendering/SceneGraph/DrawOperationTests.cs b/tests/Avalonia.Base.UnitTests/Rendering/SceneGraph/DrawOperationTests.cs
similarity index 96%
rename from tests/Avalonia.Visuals.UnitTests/Rendering/SceneGraph/DrawOperationTests.cs
rename to tests/Avalonia.Base.UnitTests/Rendering/SceneGraph/DrawOperationTests.cs
index 0cdc8827ad..2fac968206 100644
--- a/tests/Avalonia.Visuals.UnitTests/Rendering/SceneGraph/DrawOperationTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Rendering/SceneGraph/DrawOperationTests.cs
@@ -2,11 +2,11 @@
using Avalonia.Platform;
using Avalonia.Rendering.SceneGraph;
using Avalonia.Utilities;
-using Avalonia.Visuals.Media.Imaging;
+using Avalonia.Media.Imaging;
using Moq;
using Xunit;
-namespace Avalonia.Visuals.UnitTests.Rendering.SceneGraph
+namespace Avalonia.Base.UnitTests.Rendering.SceneGraph
{
public class DrawOperationTests
{
diff --git a/tests/Avalonia.Visuals.UnitTests/Rendering/SceneGraph/EllipseNodeTests.cs b/tests/Avalonia.Base.UnitTests/Rendering/SceneGraph/EllipseNodeTests.cs
similarity index 100%
rename from tests/Avalonia.Visuals.UnitTests/Rendering/SceneGraph/EllipseNodeTests.cs
rename to tests/Avalonia.Base.UnitTests/Rendering/SceneGraph/EllipseNodeTests.cs
diff --git a/tests/Avalonia.Visuals.UnitTests/Rendering/SceneGraph/LineNodeTests.cs b/tests/Avalonia.Base.UnitTests/Rendering/SceneGraph/LineNodeTests.cs
similarity index 100%
rename from tests/Avalonia.Visuals.UnitTests/Rendering/SceneGraph/LineNodeTests.cs
rename to tests/Avalonia.Base.UnitTests/Rendering/SceneGraph/LineNodeTests.cs
diff --git a/tests/Avalonia.Visuals.UnitTests/Rendering/SceneGraph/SceneBuilderTests.cs b/tests/Avalonia.Base.UnitTests/Rendering/SceneGraph/SceneBuilderTests.cs
similarity index 99%
rename from tests/Avalonia.Visuals.UnitTests/Rendering/SceneGraph/SceneBuilderTests.cs
rename to tests/Avalonia.Base.UnitTests/Rendering/SceneGraph/SceneBuilderTests.cs
index e317b43efc..01afe85b8b 100644
--- a/tests/Avalonia.Visuals.UnitTests/Rendering/SceneGraph/SceneBuilderTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Rendering/SceneGraph/SceneBuilderTests.cs
@@ -1,20 +1,19 @@
-using System;
-using System.Linq;
+using System.Linq;
+using System.Reactive.Subjects;
using Avalonia.Controls;
+using Avalonia.Data;
+using Avalonia.Layout;
using Avalonia.Media;
+using Avalonia.Media.Imaging;
+using Avalonia.Platform;
using Avalonia.Rendering.SceneGraph;
using Avalonia.UnitTests;
+using Avalonia.Utilities;
using Avalonia.VisualTree;
-using Xunit;
-using Avalonia.Layout;
using Moq;
-using Avalonia.Platform;
-using System.Reactive.Subjects;
-using Avalonia.Data;
-using Avalonia.Utilities;
-using Avalonia.Media.Imaging;
+using Xunit;
-namespace Avalonia.Visuals.UnitTests.Rendering.SceneGraph
+namespace Avalonia.Base.UnitTests.Rendering.SceneGraph
{
public partial class SceneBuilderTests
{
diff --git a/tests/Avalonia.Visuals.UnitTests/Rendering/SceneGraph/SceneBuilderTests_Layers.cs b/tests/Avalonia.Base.UnitTests/Rendering/SceneGraph/SceneBuilderTests_Layers.cs
similarity index 98%
rename from tests/Avalonia.Visuals.UnitTests/Rendering/SceneGraph/SceneBuilderTests_Layers.cs
rename to tests/Avalonia.Base.UnitTests/Rendering/SceneGraph/SceneBuilderTests_Layers.cs
index 19b4c7e606..9f5a0363ed 100644
--- a/tests/Avalonia.Visuals.UnitTests/Rendering/SceneGraph/SceneBuilderTests_Layers.cs
+++ b/tests/Avalonia.Base.UnitTests/Rendering/SceneGraph/SceneBuilderTests_Layers.cs
@@ -1,16 +1,14 @@
-using System;
-using System.Linq;
+using System.Linq;
+using System.Reactive.Subjects;
using Avalonia.Controls;
+using Avalonia.Data;
using Avalonia.Media;
using Avalonia.Rendering.SceneGraph;
using Avalonia.UnitTests;
using Avalonia.VisualTree;
using Xunit;
-using Avalonia.Layout;
-using System.Reactive.Subjects;
-using Avalonia.Data;
-namespace Avalonia.Visuals.UnitTests.Rendering.SceneGraph
+namespace Avalonia.Base.UnitTests.Rendering.SceneGraph
{
public partial class SceneBuilderTests
{
diff --git a/tests/Avalonia.Visuals.UnitTests/Rendering/SceneGraph/SceneLayersTests.cs b/tests/Avalonia.Base.UnitTests/Rendering/SceneGraph/SceneLayersTests.cs
similarity index 89%
rename from tests/Avalonia.Visuals.UnitTests/Rendering/SceneGraph/SceneLayersTests.cs
rename to tests/Avalonia.Base.UnitTests/Rendering/SceneGraph/SceneLayersTests.cs
index fac6e1ceb6..9d25a3aa44 100644
--- a/tests/Avalonia.Visuals.UnitTests/Rendering/SceneGraph/SceneLayersTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Rendering/SceneGraph/SceneLayersTests.cs
@@ -1,12 +1,11 @@
-using System;
-using System.Linq;
+using System.Linq;
using Avalonia.Controls;
using Avalonia.Rendering.SceneGraph;
using Avalonia.UnitTests;
using Avalonia.VisualTree;
using Xunit;
-namespace Avalonia.Visuals.UnitTests.Rendering.SceneGraph
+namespace Avalonia.Base.UnitTests.Rendering.SceneGraph
{
public class SceneLayersTests
{
diff --git a/tests/Avalonia.Visuals.UnitTests/Rendering/SceneGraph/SceneTests.cs b/tests/Avalonia.Base.UnitTests/Rendering/SceneGraph/SceneTests.cs
similarity index 90%
rename from tests/Avalonia.Visuals.UnitTests/Rendering/SceneGraph/SceneTests.cs
rename to tests/Avalonia.Base.UnitTests/Rendering/SceneGraph/SceneTests.cs
index bba0c8b8f3..18ff31f676 100644
--- a/tests/Avalonia.Visuals.UnitTests/Rendering/SceneGraph/SceneTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Rendering/SceneGraph/SceneTests.cs
@@ -1,11 +1,10 @@
-using System;
-using System.Linq;
+using System.Linq;
using Avalonia.Controls;
using Avalonia.Rendering.SceneGraph;
using Avalonia.UnitTests;
using Xunit;
-namespace Avalonia.Visuals.UnitTests.Rendering.SceneGraph
+namespace Avalonia.Base.UnitTests.Rendering.SceneGraph
{
public class SceneTests
{
diff --git a/tests/Avalonia.Visuals.UnitTests/Rendering/SceneGraph/VisualNodeTests.cs b/tests/Avalonia.Base.UnitTests/Rendering/SceneGraph/VisualNodeTests.cs
similarity index 97%
rename from tests/Avalonia.Visuals.UnitTests/Rendering/SceneGraph/VisualNodeTests.cs
rename to tests/Avalonia.Base.UnitTests/Rendering/SceneGraph/VisualNodeTests.cs
index 4ec3630053..93266c428c 100644
--- a/tests/Avalonia.Visuals.UnitTests/Rendering/SceneGraph/VisualNodeTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Rendering/SceneGraph/VisualNodeTests.cs
@@ -1,11 +1,10 @@
-using System;
-using Avalonia.Rendering.SceneGraph;
+using Avalonia.Rendering.SceneGraph;
using Avalonia.Utilities;
using Avalonia.VisualTree;
using Moq;
using Xunit;
-namespace Avalonia.Visuals.UnitTests.Rendering.SceneGraph
+namespace Avalonia.Base.UnitTests.Rendering.SceneGraph
{
public class VisualNodeTests
{
diff --git a/tests/Avalonia.Visuals.UnitTests/Rendering/Utilities/TileBrushCalculatorTests.cs b/tests/Avalonia.Base.UnitTests/Rendering/Utilities/TileBrushCalculatorTests.cs
similarity index 98%
rename from tests/Avalonia.Visuals.UnitTests/Rendering/Utilities/TileBrushCalculatorTests.cs
rename to tests/Avalonia.Base.UnitTests/Rendering/Utilities/TileBrushCalculatorTests.cs
index 8d70b45842..349fd0a6d0 100644
--- a/tests/Avalonia.Visuals.UnitTests/Rendering/Utilities/TileBrushCalculatorTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Rendering/Utilities/TileBrushCalculatorTests.cs
@@ -1,10 +1,9 @@
-using System;
-using Avalonia.Controls;
+using Avalonia.Controls;
using Avalonia.Media;
using Avalonia.Rendering.Utilities;
using Xunit;
-namespace Avalonia.Visuals.UnitTests.Rendering.Utilities
+namespace Avalonia.Base.UnitTests.Rendering.Utilities
{
public class TileBrushCalculatorTests
{
diff --git a/tests/Avalonia.Visuals.UnitTests/SizeTests.cs b/tests/Avalonia.Base.UnitTests/SizeTests.cs
similarity index 92%
rename from tests/Avalonia.Visuals.UnitTests/SizeTests.cs
rename to tests/Avalonia.Base.UnitTests/SizeTests.cs
index 96197785b9..9b8125748a 100644
--- a/tests/Avalonia.Visuals.UnitTests/SizeTests.cs
+++ b/tests/Avalonia.Base.UnitTests/SizeTests.cs
@@ -1,6 +1,6 @@
using Xunit;
-namespace Avalonia.Visuals.UnitTests
+namespace Avalonia.Base.UnitTests
{
public class SizeTests
{
diff --git a/tests/Avalonia.Styling.UnitTests/ResourceDictionaryTests.cs b/tests/Avalonia.Base.UnitTests/Styling/ResourceDictionaryTests.cs
similarity index 99%
rename from tests/Avalonia.Styling.UnitTests/ResourceDictionaryTests.cs
rename to tests/Avalonia.Base.UnitTests/Styling/ResourceDictionaryTests.cs
index d91d1fab9e..86b1b897d4 100644
--- a/tests/Avalonia.Styling.UnitTests/ResourceDictionaryTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Styling/ResourceDictionaryTests.cs
@@ -3,7 +3,7 @@ using Avalonia.Controls;
using Moq;
using Xunit;
-namespace Avalonia.Styling.UnitTests
+namespace Avalonia.Base.UnitTests.Styling
{
public class ResourceDictionaryTests
{
diff --git a/tests/Avalonia.Styling.UnitTests/SelectorTests_Child.cs b/tests/Avalonia.Base.UnitTests/Styling/SelectorTests_Child.cs
similarity index 97%
rename from tests/Avalonia.Styling.UnitTests/SelectorTests_Child.cs
rename to tests/Avalonia.Base.UnitTests/Styling/SelectorTests_Child.cs
index d011c16ebb..66efe2cc7b 100644
--- a/tests/Avalonia.Styling.UnitTests/SelectorTests_Child.cs
+++ b/tests/Avalonia.Base.UnitTests/Styling/SelectorTests_Child.cs
@@ -1,11 +1,11 @@
using System.Collections.Generic;
-using System.Reactive.Linq;
using System.Threading.Tasks;
using Avalonia.Controls;
using Avalonia.LogicalTree;
+using Avalonia.Styling;
using Xunit;
-namespace Avalonia.Styling.UnitTests
+namespace Avalonia.Base.UnitTests.Styling
{
public class SelectorTests_Child
{
diff --git a/tests/Avalonia.Styling.UnitTests/SelectorTests_Class.cs b/tests/Avalonia.Base.UnitTests/Styling/SelectorTests_Class.cs
similarity index 98%
rename from tests/Avalonia.Styling.UnitTests/SelectorTests_Class.cs
rename to tests/Avalonia.Base.UnitTests/Styling/SelectorTests_Class.cs
index 72383501be..376e2b23d0 100644
--- a/tests/Avalonia.Styling.UnitTests/SelectorTests_Class.cs
+++ b/tests/Avalonia.Base.UnitTests/Styling/SelectorTests_Class.cs
@@ -1,14 +1,12 @@
-using System;
-using System.Linq;
+using System.Collections.Generic;
using System.Reactive.Linq;
using System.Threading.Tasks;
-using Moq;
using Avalonia.Controls;
using Avalonia.Styling;
+using Moq;
using Xunit;
-using System.Collections.Generic;
-namespace Avalonia.Styling.UnitTests
+namespace Avalonia.Base.UnitTests.Styling
{
public class SelectorTests_Class
{
diff --git a/tests/Avalonia.Styling.UnitTests/SelectorTests_Descendent.cs b/tests/Avalonia.Base.UnitTests/Styling/SelectorTests_Descendent.cs
similarity index 98%
rename from tests/Avalonia.Styling.UnitTests/SelectorTests_Descendent.cs
rename to tests/Avalonia.Base.UnitTests/Styling/SelectorTests_Descendent.cs
index aacf2ce223..6b52936ec5 100644
--- a/tests/Avalonia.Styling.UnitTests/SelectorTests_Descendent.cs
+++ b/tests/Avalonia.Base.UnitTests/Styling/SelectorTests_Descendent.cs
@@ -1,11 +1,11 @@
-using System.Linq;
using System.Reactive.Linq;
using System.Threading.Tasks;
using Avalonia.Controls;
using Avalonia.LogicalTree;
+using Avalonia.Styling;
using Xunit;
-namespace Avalonia.Styling.UnitTests
+namespace Avalonia.Base.UnitTests.Styling
{
public class SelectorTests_Descendant
{
diff --git a/tests/Avalonia.Styling.UnitTests/SelectorTests_Multiple.cs b/tests/Avalonia.Base.UnitTests/Styling/SelectorTests_Multiple.cs
similarity index 99%
rename from tests/Avalonia.Styling.UnitTests/SelectorTests_Multiple.cs
rename to tests/Avalonia.Base.UnitTests/Styling/SelectorTests_Multiple.cs
index 4436f02429..258a4a44a1 100644
--- a/tests/Avalonia.Styling.UnitTests/SelectorTests_Multiple.cs
+++ b/tests/Avalonia.Base.UnitTests/Styling/SelectorTests_Multiple.cs
@@ -1,13 +1,13 @@
-using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Avalonia.Controls;
using Avalonia.Controls.Templates;
+using Avalonia.Styling;
using Avalonia.VisualTree;
using Xunit;
-namespace Avalonia.Styling.UnitTests
+namespace Avalonia.Base.UnitTests.Styling
{
public class SelectorTests_Multiple
{
diff --git a/tests/Avalonia.Styling.UnitTests/SelectorTests_Name.cs b/tests/Avalonia.Base.UnitTests/Styling/SelectorTests_Name.cs
similarity index 96%
rename from tests/Avalonia.Styling.UnitTests/SelectorTests_Name.cs
rename to tests/Avalonia.Base.UnitTests/Styling/SelectorTests_Name.cs
index 308070c52f..46b97cf384 100644
--- a/tests/Avalonia.Styling.UnitTests/SelectorTests_Name.cs
+++ b/tests/Avalonia.Base.UnitTests/Styling/SelectorTests_Name.cs
@@ -1,8 +1,9 @@
using Avalonia.Controls;
+using Avalonia.Styling;
using Moq;
using Xunit;
-namespace Avalonia.Styling.UnitTests
+namespace Avalonia.Base.UnitTests.Styling
{
public class SelectorTests_Name
{
diff --git a/tests/Avalonia.Styling.UnitTests/SelectorTests_Not.cs b/tests/Avalonia.Base.UnitTests/Styling/SelectorTests_Not.cs
similarity index 97%
rename from tests/Avalonia.Styling.UnitTests/SelectorTests_Not.cs
rename to tests/Avalonia.Base.UnitTests/Styling/SelectorTests_Not.cs
index 23b711725a..fd1385ac47 100644
--- a/tests/Avalonia.Styling.UnitTests/SelectorTests_Not.cs
+++ b/tests/Avalonia.Base.UnitTests/Styling/SelectorTests_Not.cs
@@ -1,9 +1,9 @@
-using System.Reactive.Linq;
using System.Threading.Tasks;
using Avalonia.Controls;
+using Avalonia.Styling;
using Xunit;
-namespace Avalonia.Styling.UnitTests
+namespace Avalonia.Base.UnitTests.Styling
{
public class SelectorTests_Not
{
diff --git a/tests/Avalonia.Styling.UnitTests/SelectorTests_NthChild.cs b/tests/Avalonia.Base.UnitTests/Styling/SelectorTests_NthChild.cs
similarity index 99%
rename from tests/Avalonia.Styling.UnitTests/SelectorTests_NthChild.cs
rename to tests/Avalonia.Base.UnitTests/Styling/SelectorTests_NthChild.cs
index e1507be110..7f645be4a9 100644
--- a/tests/Avalonia.Styling.UnitTests/SelectorTests_NthChild.cs
+++ b/tests/Avalonia.Base.UnitTests/Styling/SelectorTests_NthChild.cs
@@ -1,9 +1,10 @@
using System.Linq;
using System.Threading.Tasks;
using Avalonia.Controls;
+using Avalonia.Styling;
using Xunit;
-namespace Avalonia.Styling.UnitTests
+namespace Avalonia.Base.UnitTests.Styling
{
public class SelectorTests_NthChild
{
diff --git a/tests/Avalonia.Styling.UnitTests/SelectorTests_NthLastChild.cs b/tests/Avalonia.Base.UnitTests/Styling/SelectorTests_NthLastChild.cs
similarity index 99%
rename from tests/Avalonia.Styling.UnitTests/SelectorTests_NthLastChild.cs
rename to tests/Avalonia.Base.UnitTests/Styling/SelectorTests_NthLastChild.cs
index 00a99523c7..821ed3d0ab 100644
--- a/tests/Avalonia.Styling.UnitTests/SelectorTests_NthLastChild.cs
+++ b/tests/Avalonia.Base.UnitTests/Styling/SelectorTests_NthLastChild.cs
@@ -1,8 +1,9 @@
using System.Threading.Tasks;
using Avalonia.Controls;
+using Avalonia.Styling;
using Xunit;
-namespace Avalonia.Styling.UnitTests
+namespace Avalonia.Base.UnitTests.Styling
{
public class SelectorTests_NthLastChild
{
diff --git a/tests/Avalonia.Styling.UnitTests/SelectorTests_OfType.cs b/tests/Avalonia.Base.UnitTests/Styling/SelectorTests_OfType.cs
similarity index 95%
rename from tests/Avalonia.Styling.UnitTests/SelectorTests_OfType.cs
rename to tests/Avalonia.Base.UnitTests/Styling/SelectorTests_OfType.cs
index 2aef46575d..e86a323c71 100644
--- a/tests/Avalonia.Styling.UnitTests/SelectorTests_OfType.cs
+++ b/tests/Avalonia.Base.UnitTests/Styling/SelectorTests_OfType.cs
@@ -1,8 +1,9 @@
using Avalonia.Controls;
+using Avalonia.Styling;
using Moq;
using Xunit;
-namespace Avalonia.Styling.UnitTests
+namespace Avalonia.Base.UnitTests.Styling
{
public class SelectorTests_OfType
{
diff --git a/tests/Avalonia.Styling.UnitTests/SelectorTests_Or.cs b/tests/Avalonia.Base.UnitTests/Styling/SelectorTests_Or.cs
similarity index 98%
rename from tests/Avalonia.Styling.UnitTests/SelectorTests_Or.cs
rename to tests/Avalonia.Base.UnitTests/Styling/SelectorTests_Or.cs
index 2b55482593..fb5d54bd1f 100644
--- a/tests/Avalonia.Styling.UnitTests/SelectorTests_Or.cs
+++ b/tests/Avalonia.Base.UnitTests/Styling/SelectorTests_Or.cs
@@ -1,7 +1,8 @@
using Avalonia.Controls;
+using Avalonia.Styling;
using Xunit;
-namespace Avalonia.Styling.UnitTests
+namespace Avalonia.Base.UnitTests.Styling
{
public class SelectorTests_Or
{
diff --git a/tests/Avalonia.Styling.UnitTests/SelectorTests_PropertyEquals.cs b/tests/Avalonia.Base.UnitTests/Styling/SelectorTests_PropertyEquals.cs
similarity index 98%
rename from tests/Avalonia.Styling.UnitTests/SelectorTests_PropertyEquals.cs
rename to tests/Avalonia.Base.UnitTests/Styling/SelectorTests_PropertyEquals.cs
index 729b42196b..ee1b654ba8 100644
--- a/tests/Avalonia.Styling.UnitTests/SelectorTests_PropertyEquals.cs
+++ b/tests/Avalonia.Base.UnitTests/Styling/SelectorTests_PropertyEquals.cs
@@ -1,10 +1,10 @@
-using System.Linq;
using System.Reactive.Linq;
using System.Threading.Tasks;
using Avalonia.Controls;
+using Avalonia.Styling;
using Xunit;
-namespace Avalonia.Styling.UnitTests
+namespace Avalonia.Base.UnitTests.Styling
{
public class SelectorTests_PropertyEquals
{
diff --git a/tests/Avalonia.Styling.UnitTests/SelectorTests_Template.cs b/tests/Avalonia.Base.UnitTests/Styling/SelectorTests_Template.cs
similarity index 98%
rename from tests/Avalonia.Styling.UnitTests/SelectorTests_Template.cs
rename to tests/Avalonia.Base.UnitTests/Styling/SelectorTests_Template.cs
index 13cb2578cf..8b4c988037 100644
--- a/tests/Avalonia.Styling.UnitTests/SelectorTests_Template.cs
+++ b/tests/Avalonia.Base.UnitTests/Styling/SelectorTests_Template.cs
@@ -1,14 +1,13 @@
-using System;
using System.Linq;
-using System.Reactive.Linq;
-using Moq;
+using System.Threading.Tasks;
using Avalonia.Controls;
-using Avalonia.VisualTree;
using Avalonia.Diagnostics;
+using Avalonia.Styling;
+using Avalonia.VisualTree;
+using Moq;
using Xunit;
-using System.Threading.Tasks;
-namespace Avalonia.Styling.UnitTests
+namespace Avalonia.Base.UnitTests.Styling
{
public class SelectorTests_Template
{
diff --git a/tests/Avalonia.Styling.UnitTests/SetterTests.cs b/tests/Avalonia.Base.UnitTests/Styling/SetterTests.cs
similarity index 98%
rename from tests/Avalonia.Styling.UnitTests/SetterTests.cs
rename to tests/Avalonia.Base.UnitTests/Styling/SetterTests.cs
index 93a6c941a6..ef2586fcb7 100644
--- a/tests/Avalonia.Styling.UnitTests/SetterTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Styling/SetterTests.cs
@@ -6,10 +6,11 @@ using Avalonia.Controls.Templates;
using Avalonia.Data;
using Avalonia.Data.Converters;
using Avalonia.Diagnostics;
+using Avalonia.Styling;
using Moq;
using Xunit;
-namespace Avalonia.Styling.UnitTests
+namespace Avalonia.Base.UnitTests.Styling
{
public class SetterTests
{
diff --git a/tests/Avalonia.Styling.UnitTests/StyleActivatorExtensions.cs b/tests/Avalonia.Base.UnitTests/Styling/StyleActivatorExtensions.cs
similarity index 97%
rename from tests/Avalonia.Styling.UnitTests/StyleActivatorExtensions.cs
rename to tests/Avalonia.Base.UnitTests/Styling/StyleActivatorExtensions.cs
index 22f4db79d1..f5b3bb40a3 100644
--- a/tests/Avalonia.Styling.UnitTests/StyleActivatorExtensions.cs
+++ b/tests/Avalonia.Base.UnitTests/Styling/StyleActivatorExtensions.cs
@@ -4,7 +4,7 @@ using System.Threading.Tasks;
using Avalonia.Reactive;
using Avalonia.Styling.Activators;
-namespace Avalonia.Styling.UnitTests
+namespace Avalonia.Base.UnitTests.Styling
{
internal static class StyleActivatorExtensions
{
diff --git a/tests/Avalonia.Styling.UnitTests/StyleTests.cs b/tests/Avalonia.Base.UnitTests/Styling/StyleTests.cs
similarity index 99%
rename from tests/Avalonia.Styling.UnitTests/StyleTests.cs
rename to tests/Avalonia.Base.UnitTests/Styling/StyleTests.cs
index 14710f44ba..8dedf3471f 100644
--- a/tests/Avalonia.Styling.UnitTests/StyleTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Styling/StyleTests.cs
@@ -3,11 +3,12 @@ using System.Collections.Generic;
using Avalonia.Controls;
using Avalonia.Controls.Templates;
using Avalonia.Data;
+using Avalonia.Styling;
using Avalonia.UnitTests;
using Moq;
using Xunit;
-namespace Avalonia.Styling.UnitTests
+namespace Avalonia.Base.UnitTests.Styling
{
public class StyleTests
{
diff --git a/tests/Avalonia.Styling.UnitTests/StyledElementTests.cs b/tests/Avalonia.Base.UnitTests/Styling/StyledElementTests.cs
similarity index 99%
rename from tests/Avalonia.Styling.UnitTests/StyledElementTests.cs
rename to tests/Avalonia.Base.UnitTests/Styling/StyledElementTests.cs
index fcbccba695..bb4d590060 100644
--- a/tests/Avalonia.Styling.UnitTests/StyledElementTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Styling/StyledElementTests.cs
@@ -1,19 +1,17 @@
using System;
using System.Collections.Generic;
+using System.ComponentModel;
using System.Reactive.Linq;
-using Moq;
-using Avalonia.Styling;
-using Avalonia.UnitTests;
-using Xunit;
-using Avalonia.LogicalTree;
using Avalonia.Controls;
-using System.ComponentModel;
-using Avalonia.Controls.Primitives;
-using Avalonia.Markup.Xaml.Templates;
using Avalonia.Controls.Templates;
using Avalonia.Data;
+using Avalonia.LogicalTree;
+using Avalonia.Styling;
+using Avalonia.UnitTests;
+using Moq;
+using Xunit;
-namespace Avalonia.Styling.UnitTests
+namespace Avalonia.Base.UnitTests.Styling
{
public class StyledElementTests
{
diff --git a/tests/Avalonia.Styling.UnitTests/StyledElementTests_Resources.cs b/tests/Avalonia.Base.UnitTests/Styling/StyledElementTests_Resources.cs
similarity index 98%
rename from tests/Avalonia.Styling.UnitTests/StyledElementTests_Resources.cs
rename to tests/Avalonia.Base.UnitTests/Styling/StyledElementTests_Resources.cs
index 05315380fd..69d37d1c54 100644
--- a/tests/Avalonia.Styling.UnitTests/StyledElementTests_Resources.cs
+++ b/tests/Avalonia.Base.UnitTests/Styling/StyledElementTests_Resources.cs
@@ -1,11 +1,11 @@
-using System;
+using Avalonia.Controls;
using Avalonia.Controls.Presenters;
using Avalonia.Controls.Templates;
using Avalonia.Styling;
using Avalonia.UnitTests;
using Xunit;
-namespace Avalonia.Controls.UnitTests
+namespace Avalonia.Base.UnitTests.Styling
{
public class StyledElementTests_Resources
{
diff --git a/tests/Avalonia.Styling.UnitTests/StylesTests.cs b/tests/Avalonia.Base.UnitTests/Styling/StylesTests.cs
similarity index 98%
rename from tests/Avalonia.Styling.UnitTests/StylesTests.cs
rename to tests/Avalonia.Base.UnitTests/Styling/StylesTests.cs
index 88ab124e01..a6777c9466 100644
--- a/tests/Avalonia.Styling.UnitTests/StylesTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Styling/StylesTests.cs
@@ -1,9 +1,9 @@
-using System;
using Avalonia.Controls;
+using Avalonia.Styling;
using Moq;
using Xunit;
-namespace Avalonia.Styling.UnitTests
+namespace Avalonia.Base.UnitTests.Styling
{
public class StylesTests
{
diff --git a/tests/Avalonia.Styling.UnitTests/TestObservable.cs b/tests/Avalonia.Base.UnitTests/Styling/TestObservable.cs
similarity index 90%
rename from tests/Avalonia.Styling.UnitTests/TestObservable.cs
rename to tests/Avalonia.Base.UnitTests/Styling/TestObservable.cs
index 7a07f12883..05cf7ef3e1 100644
--- a/tests/Avalonia.Styling.UnitTests/TestObservable.cs
+++ b/tests/Avalonia.Base.UnitTests/Styling/TestObservable.cs
@@ -1,7 +1,7 @@
using System;
using System.Reactive.Disposables;
-namespace Avalonia.Styling.UnitTests
+namespace Avalonia.Base.UnitTests.Styling
{
public class TestObservable : IObservable
{
diff --git a/tests/Avalonia.Styling.UnitTests/TestObserver.cs b/tests/Avalonia.Base.UnitTests/Styling/TestObserver.cs
similarity index 96%
rename from tests/Avalonia.Styling.UnitTests/TestObserver.cs
rename to tests/Avalonia.Base.UnitTests/Styling/TestObserver.cs
index c18fa8618f..46f26804f1 100644
--- a/tests/Avalonia.Styling.UnitTests/TestObserver.cs
+++ b/tests/Avalonia.Base.UnitTests/Styling/TestObserver.cs
@@ -1,6 +1,6 @@
using System;
-namespace Avalonia.Styling.UnitTests
+namespace Avalonia.Base.UnitTests.Styling
{
internal class TestObserver : IObserver
{
diff --git a/tests/Avalonia.Styling.UnitTests/TestSelectors.cs b/tests/Avalonia.Base.UnitTests/Styling/TestSelectors.cs
similarity index 90%
rename from tests/Avalonia.Styling.UnitTests/TestSelectors.cs
rename to tests/Avalonia.Base.UnitTests/Styling/TestSelectors.cs
index 44a087af19..bd60275d50 100644
--- a/tests/Avalonia.Styling.UnitTests/TestSelectors.cs
+++ b/tests/Avalonia.Base.UnitTests/Styling/TestSelectors.cs
@@ -1,7 +1,7 @@
using System;
using Avalonia.Styling;
-namespace Avalonia.Styling.UnitTests
+namespace Avalonia.Base.UnitTests.Styling
{
public static class TestSelectors
{
diff --git a/tests/Avalonia.Styling.UnitTests/TestSubject.cs b/tests/Avalonia.Base.UnitTests/Styling/TestSubject.cs
similarity index 96%
rename from tests/Avalonia.Styling.UnitTests/TestSubject.cs
rename to tests/Avalonia.Base.UnitTests/Styling/TestSubject.cs
index 7550b545b6..c162f24d59 100644
--- a/tests/Avalonia.Styling.UnitTests/TestSubject.cs
+++ b/tests/Avalonia.Base.UnitTests/Styling/TestSubject.cs
@@ -2,7 +2,7 @@ using System;
using System.Collections.Generic;
using System.Reactive.Disposables;
-namespace Avalonia.Styling.UnitTests
+namespace Avalonia.Base.UnitTests.Styling
{
internal class TestSubject : IObserver, IObservable
{
diff --git a/tests/Avalonia.Visuals.UnitTests/TestVisual.cs b/tests/Avalonia.Base.UnitTests/TestVisual.cs
similarity index 94%
rename from tests/Avalonia.Visuals.UnitTests/TestVisual.cs
rename to tests/Avalonia.Base.UnitTests/TestVisual.cs
index 29d61ddefc..fc9b9e22fb 100644
--- a/tests/Avalonia.Visuals.UnitTests/TestVisual.cs
+++ b/tests/Avalonia.Base.UnitTests/TestVisual.cs
@@ -1,10 +1,9 @@
using System;
using System.Collections.Generic;
using System.Linq;
-using Avalonia.Rendering;
using Avalonia.VisualTree;
-namespace Avalonia.Visuals.UnitTests
+namespace Avalonia.Base.UnitTests
{
public class ParamEventArgs : EventArgs
{
diff --git a/tests/Avalonia.Visuals.UnitTests/ThicknessTests.cs b/tests/Avalonia.Base.UnitTests/ThicknessTests.cs
similarity index 93%
rename from tests/Avalonia.Visuals.UnitTests/ThicknessTests.cs
rename to tests/Avalonia.Base.UnitTests/ThicknessTests.cs
index e85a9d5b85..094acada26 100644
--- a/tests/Avalonia.Visuals.UnitTests/ThicknessTests.cs
+++ b/tests/Avalonia.Base.UnitTests/ThicknessTests.cs
@@ -1,7 +1,6 @@
-using System.Globalization;
using Xunit;
-namespace Avalonia.Visuals.UnitTests
+namespace Avalonia.Base.UnitTests
{
public class ThicknessTests
{
@@ -37,4 +36,4 @@ namespace Avalonia.Visuals.UnitTests
Assert.Equal(new Thickness(1.2, 3.4, 5, 6), result);
}
}
-}
\ No newline at end of file
+}
diff --git a/tests/Avalonia.Visuals.UnitTests/Utilities/ReadOnlySpanTests.cs b/tests/Avalonia.Base.UnitTests/Utilities/ReadOnlySpanTests.cs
similarity index 94%
rename from tests/Avalonia.Visuals.UnitTests/Utilities/ReadOnlySpanTests.cs
rename to tests/Avalonia.Base.UnitTests/Utilities/ReadOnlySpanTests.cs
index 1afd84e546..da30ee9d02 100644
--- a/tests/Avalonia.Visuals.UnitTests/Utilities/ReadOnlySpanTests.cs
+++ b/tests/Avalonia.Base.UnitTests/Utilities/ReadOnlySpanTests.cs
@@ -2,7 +2,7 @@
using Avalonia.Utilities;
using Xunit;
-namespace Avalonia.Visuals.UnitTests.Utilities
+namespace Avalonia.Base.UnitTests.Utilities
{
public class ReadOnlySpanTests
{
diff --git a/tests/Avalonia.Visuals.UnitTests/VectorTests.cs b/tests/Avalonia.Base.UnitTests/VectorTests.cs
similarity index 98%
rename from tests/Avalonia.Visuals.UnitTests/VectorTests.cs
rename to tests/Avalonia.Base.UnitTests/VectorTests.cs
index f9a9e59436..154b4a8e6c 100644
--- a/tests/Avalonia.Visuals.UnitTests/VectorTests.cs
+++ b/tests/Avalonia.Base.UnitTests/VectorTests.cs
@@ -1,8 +1,7 @@
-using Xunit;
-using Avalonia;
using System;
+using Xunit;
-namespace Avalonia.Visuals.UnitTests
+namespace Avalonia.Base.UnitTests
{
public class VectorTests
{
diff --git a/tests/Avalonia.Visuals.UnitTests/VisualExtensionsTests.cs b/tests/Avalonia.Base.UnitTests/VisualExtensionsTests.cs
similarity index 99%
rename from tests/Avalonia.Visuals.UnitTests/VisualExtensionsTests.cs
rename to tests/Avalonia.Base.UnitTests/VisualExtensionsTests.cs
index 781169cfa6..4863c0fa61 100644
--- a/tests/Avalonia.Visuals.UnitTests/VisualExtensionsTests.cs
+++ b/tests/Avalonia.Base.UnitTests/VisualExtensionsTests.cs
@@ -5,7 +5,7 @@ using Avalonia.UnitTests;
using Avalonia.VisualTree;
using Xunit;
-namespace Avalonia.Visuals.UnitTests
+namespace Avalonia.Base.UnitTests
{
public class VisualExtensionsTests
{
diff --git a/tests/Avalonia.Visuals.UnitTests/VisualTests.cs b/tests/Avalonia.Base.UnitTests/VisualTests.cs
similarity index 98%
rename from tests/Avalonia.Visuals.UnitTests/VisualTests.cs
rename to tests/Avalonia.Base.UnitTests/VisualTests.cs
index 38131fbfca..382001229b 100644
--- a/tests/Avalonia.Visuals.UnitTests/VisualTests.cs
+++ b/tests/Avalonia.Base.UnitTests/VisualTests.cs
@@ -10,7 +10,7 @@ using Avalonia.VisualTree;
using Moq;
using Xunit;
-namespace Avalonia.Visuals.UnitTests
+namespace Avalonia.Base.UnitTests
{
public class VisualTests
{
@@ -262,7 +262,7 @@ namespace Avalonia.Visuals.UnitTests
LogCallback checkLogMessage = (level, area, src, mt, pv) =>
{
- if (level >= Logging.LogEventLevel.Warning)
+ if (level >= Avalonia.Logging.LogEventLevel.Warning)
{
called = true;
}
@@ -285,7 +285,7 @@ namespace Avalonia.Visuals.UnitTests
LogCallback checkLogMessage = (level, area, src, mt, pv) =>
{
- if (level >= Logging.LogEventLevel.Warning)
+ if (level >= Avalonia.Logging.LogEventLevel.Warning)
{
called = true;
}
diff --git a/tests/Avalonia.Visuals.UnitTests/VisualTree/MockRenderInterface.cs b/tests/Avalonia.Base.UnitTests/VisualTree/MockRenderInterface.cs
similarity index 98%
rename from tests/Avalonia.Visuals.UnitTests/VisualTree/MockRenderInterface.cs
rename to tests/Avalonia.Base.UnitTests/VisualTree/MockRenderInterface.cs
index 6100f2cb74..add8f7fd73 100644
--- a/tests/Avalonia.Visuals.UnitTests/VisualTree/MockRenderInterface.cs
+++ b/tests/Avalonia.Base.UnitTests/VisualTree/MockRenderInterface.cs
@@ -4,9 +4,9 @@ using System.IO;
using Avalonia.Media;
using Avalonia.Platform;
using Avalonia.UnitTests;
-using Avalonia.Visuals.Media.Imaging;
+using Avalonia.Media.Imaging;
-namespace Avalonia.Visuals.UnitTests.VisualTree
+namespace Avalonia.Base.UnitTests.VisualTree
{
class MockRenderInterface : IPlatformRenderInterface
{
diff --git a/tests/Avalonia.Visuals.UnitTests/VisualTree/TransformedBoundsTests.cs b/tests/Avalonia.Base.UnitTests/VisualTree/TransformedBoundsTests.cs
similarity index 94%
rename from tests/Avalonia.Visuals.UnitTests/VisualTree/TransformedBoundsTests.cs
rename to tests/Avalonia.Base.UnitTests/VisualTree/TransformedBoundsTests.cs
index 54d9ce40f0..d8158fd673 100644
--- a/tests/Avalonia.Visuals.UnitTests/VisualTree/TransformedBoundsTests.cs
+++ b/tests/Avalonia.Base.UnitTests/VisualTree/TransformedBoundsTests.cs
@@ -1,18 +1,16 @@
using System;
using System.Collections.Generic;
-using System.Linq;
-using System.Reactive.Linq;
using Avalonia.Controls;
using Avalonia.Controls.Shapes;
-using Avalonia.VisualTree;
-using Avalonia.Rendering;
-using Xunit;
using Avalonia.Media;
-using Moq;
-using Avalonia.UnitTests;
using Avalonia.Platform;
+using Avalonia.Rendering;
+using Avalonia.UnitTests;
+using Avalonia.VisualTree;
+using Moq;
+using Xunit;
-namespace Avalonia.Visuals.UnitTests.VisualTree
+namespace Avalonia.Base.UnitTests.VisualTree
{
public class TransformedBoundsTests
{
diff --git a/tests/Avalonia.Visuals.UnitTests/VisualTree/VisualExtensions_GetVisualsAt.cs b/tests/Avalonia.Base.UnitTests/VisualTree/VisualExtensions_GetVisualsAt.cs
similarity index 98%
rename from tests/Avalonia.Visuals.UnitTests/VisualTree/VisualExtensions_GetVisualsAt.cs
rename to tests/Avalonia.Base.UnitTests/VisualTree/VisualExtensions_GetVisualsAt.cs
index 139a7925b1..1020a3a4d6 100644
--- a/tests/Avalonia.Visuals.UnitTests/VisualTree/VisualExtensions_GetVisualsAt.cs
+++ b/tests/Avalonia.Base.UnitTests/VisualTree/VisualExtensions_GetVisualsAt.cs
@@ -8,7 +8,7 @@ using Avalonia.UnitTests;
using Avalonia.VisualTree;
using Xunit;
-namespace Avalonia.Visuals.UnitTests.VisualTree
+namespace Avalonia.Base.UnitTests.VisualTree
{
public class VisualExtensions_GetVisualsAt
{
diff --git a/tests/Avalonia.Benchmarks/Avalonia.Benchmarks.csproj b/tests/Avalonia.Benchmarks/Avalonia.Benchmarks.csproj
index 2dbb054221..5d17808e0c 100644
--- a/tests/Avalonia.Benchmarks/Avalonia.Benchmarks.csproj
+++ b/tests/Avalonia.Benchmarks/Avalonia.Benchmarks.csproj
@@ -6,15 +6,9 @@
false
-
-
-
-
-
-
diff --git a/tests/Avalonia.Benchmarks/NullDrawingContextImpl.cs b/tests/Avalonia.Benchmarks/NullDrawingContextImpl.cs
index 59067e642f..6fb2a5ac24 100644
--- a/tests/Avalonia.Benchmarks/NullDrawingContextImpl.cs
+++ b/tests/Avalonia.Benchmarks/NullDrawingContextImpl.cs
@@ -2,7 +2,7 @@
using Avalonia.Platform;
using Avalonia.Rendering.SceneGraph;
using Avalonia.Utilities;
-using Avalonia.Visuals.Media.Imaging;
+using Avalonia.Media.Imaging;
namespace Avalonia.Benchmarks
{
diff --git a/tests/Avalonia.Benchmarks/NullRenderingPlatform.cs b/tests/Avalonia.Benchmarks/NullRenderingPlatform.cs
index ccdb0eed2f..5cbb3b2c49 100644
--- a/tests/Avalonia.Benchmarks/NullRenderingPlatform.cs
+++ b/tests/Avalonia.Benchmarks/NullRenderingPlatform.cs
@@ -4,7 +4,7 @@ using System.IO;
using Avalonia.Media;
using Avalonia.Platform;
using Avalonia.UnitTests;
-using Avalonia.Visuals.Media.Imaging;
+using Avalonia.Media.Imaging;
namespace Avalonia.Benchmarks
{
diff --git a/tests/Avalonia.Controls.UnitTests/Avalonia.Controls.UnitTests.csproj b/tests/Avalonia.Controls.UnitTests/Avalonia.Controls.UnitTests.csproj
index 4aed8c60c3..12eb290fde 100644
--- a/tests/Avalonia.Controls.UnitTests/Avalonia.Controls.UnitTests.csproj
+++ b/tests/Avalonia.Controls.UnitTests/Avalonia.Controls.UnitTests.csproj
@@ -18,14 +18,8 @@
-
-
-
-
-
-
diff --git a/tests/Avalonia.Controls.UnitTests/Platform/DefaultMenuInteractionHandlerTests.cs b/tests/Avalonia.Controls.UnitTests/Platform/DefaultMenuInteractionHandlerTests.cs
index 9eedd17716..d22a67f389 100644
--- a/tests/Avalonia.Controls.UnitTests/Platform/DefaultMenuInteractionHandlerTests.cs
+++ b/tests/Avalonia.Controls.UnitTests/Platform/DefaultMenuInteractionHandlerTests.cs
@@ -53,6 +53,19 @@ namespace Avalonia.Controls.UnitTests.Platform
Assert.True(e.Handled);
}
+ [Fact]
+ public void Down_Selects_First_Item_Of_Already_Opened_Submenu()
+ {
+ var target = new DefaultMenuInteractionHandler(false);
+ var item = Mock.Of(x => x.IsTopLevel == true && x.HasSubMenu == true && x.IsSubMenuOpen);
+ var e = new KeyEventArgs { Key = Key.Down, Source = item };
+
+ target.KeyDown(item, e);
+
+ Mock.Get(item).Verify(x => x.MoveSelection(NavigationDirection.First, true));
+ Assert.True(e.Handled);
+ }
+
[Fact]
public void Right_Selects_Next_MenuItem()
{
diff --git a/tests/Avalonia.DesignerSupport.TestApp/Avalonia.DesignerSupport.TestApp.csproj b/tests/Avalonia.DesignerSupport.TestApp/Avalonia.DesignerSupport.TestApp.csproj
index f4c6434a68..f66b2b0457 100644
--- a/tests/Avalonia.DesignerSupport.TestApp/Avalonia.DesignerSupport.TestApp.csproj
+++ b/tests/Avalonia.DesignerSupport.TestApp/Avalonia.DesignerSupport.TestApp.csproj
@@ -18,15 +18,9 @@
-
-
-
-
-
-
diff --git a/tests/Avalonia.Direct2D1.RenderTests/Avalonia.Direct2D1.RenderTests.csproj b/tests/Avalonia.Direct2D1.RenderTests/Avalonia.Direct2D1.RenderTests.csproj
index cdadc3dcba..e7f1552370 100644
--- a/tests/Avalonia.Direct2D1.RenderTests/Avalonia.Direct2D1.RenderTests.csproj
+++ b/tests/Avalonia.Direct2D1.RenderTests/Avalonia.Direct2D1.RenderTests.csproj
@@ -11,14 +11,8 @@
-
-
-
-
-
-
diff --git a/tests/Avalonia.Direct2D1.UnitTests/Avalonia.Direct2D1.UnitTests.csproj b/tests/Avalonia.Direct2D1.UnitTests/Avalonia.Direct2D1.UnitTests.csproj
index 636643d9e4..ad7e3ad504 100644
--- a/tests/Avalonia.Direct2D1.UnitTests/Avalonia.Direct2D1.UnitTests.csproj
+++ b/tests/Avalonia.Direct2D1.UnitTests/Avalonia.Direct2D1.UnitTests.csproj
@@ -12,14 +12,8 @@
-
-
-
-
-
-
diff --git a/tests/Avalonia.Input.UnitTests/Avalonia.Input.UnitTests.csproj b/tests/Avalonia.Input.UnitTests/Avalonia.Input.UnitTests.csproj
deleted file mode 100644
index 3b0b082093..0000000000
--- a/tests/Avalonia.Input.UnitTests/Avalonia.Input.UnitTests.csproj
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
- net6.0
- Library
- true
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/tests/Avalonia.Input.UnitTests/Properties/AssemblyInfo.cs b/tests/Avalonia.Input.UnitTests/Properties/AssemblyInfo.cs
deleted file mode 100644
index 3974559efc..0000000000
--- a/tests/Avalonia.Input.UnitTests/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,7 +0,0 @@
-using System.Reflection;
-using Xunit;
-
-[assembly: AssemblyTitle("Avalonia.Input.UnitTests")]
-
-// Don't run tests in parallel.
-[assembly: CollectionBehavior(DisableTestParallelization = true)]
\ No newline at end of file
diff --git a/tests/Avalonia.IntegrationTests.Appium/ElementExtensions.cs b/tests/Avalonia.IntegrationTests.Appium/ElementExtensions.cs
index 15e22f4424..3eb8646835 100644
--- a/tests/Avalonia.IntegrationTests.Appium/ElementExtensions.cs
+++ b/tests/Avalonia.IntegrationTests.Appium/ElementExtensions.cs
@@ -29,6 +29,20 @@ namespace Avalonia.IntegrationTests.Appium
_ => throw new ArgumentOutOfRangeException($"Unexpected IsChecked value.")
};
+ public static bool GetIsFocused(this AppiumWebElement element)
+ {
+ if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
+ {
+ var active = element.WrappedDriver.SwitchTo().ActiveElement() as AppiumWebElement;
+ return element.Id == active?.Id;
+ }
+ else
+ {
+ // https://stackoverflow.com/questions/71807788/check-if-element-is-focused-in-appium
+ throw new NotSupportedException("Couldn't work out how to check if an element is focused on mac.");
+ }
+ }
+
public static void SendClick(this AppiumWebElement element)
{
if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
@@ -44,6 +58,11 @@ namespace Avalonia.IntegrationTests.Appium
}
}
+ public static void MovePointerOver(this AppiumWebElement element)
+ {
+ new Actions(element.WrappedDriver).MoveToElement(element).Perform();
+ }
+
public static string GetAttribute(AppiumWebElement element, string windows, string macOS)
{
return element.GetAttribute(RuntimeInformation.IsOSPlatform(OSPlatform.Windows) ? windows : macOS);
diff --git a/tests/Avalonia.IntegrationTests.Appium/MenuTests.cs b/tests/Avalonia.IntegrationTests.Appium/MenuTests.cs
index e9a433b975..98fb335061 100644
--- a/tests/Avalonia.IntegrationTests.Appium/MenuTests.cs
+++ b/tests/Avalonia.IntegrationTests.Appium/MenuTests.cs
@@ -1,4 +1,7 @@
-using OpenQA.Selenium.Appium;
+using System.Threading;
+using OpenQA.Selenium;
+using OpenQA.Selenium.Appium;
+using OpenQA.Selenium.Interactions;
using Xunit;
namespace Avalonia.IntegrationTests.Appium
@@ -15,6 +18,12 @@ namespace Avalonia.IntegrationTests.Appium
var tabs = _session.FindElementByAccessibilityId("MainTabs");
var tab = tabs.FindElementByName("Menu");
tab.Click();
+
+ var reset = _session.FindElementByAccessibilityId("MenuClickedMenuItemReset");
+ reset.Click();
+
+ var clickedMenuItem = _session.FindElementByAccessibilityId("ClickedMenuItem");
+ Assert.Equal("None", clickedMenuItem.Text);
}
[Fact]
@@ -48,16 +57,107 @@ namespace Avalonia.IntegrationTests.Appium
Assert.Equal("_Grandchild", clickedMenuItem.Text);
}
+ [PlatformFact(SkipOnOSX = true)]
+ public void Select_Child_With_Alt_Arrow_Keys()
+ {
+ new Actions(_session)
+ .KeyDown(Keys.Alt).KeyUp(Keys.Alt)
+ .SendKeys(Keys.Down + Keys.Enter)
+ .Perform();
+
+ var clickedMenuItem = _session.FindElementByAccessibilityId("ClickedMenuItem");
+ Assert.Equal("_Child 1", clickedMenuItem.Text);
+ }
+
+ [PlatformFact(SkipOnOSX = true)]
+ public void Select_Grandchild_With_Alt_Arrow_Keys()
+ {
+ new Actions(_session)
+ .KeyDown(Keys.Alt).KeyUp(Keys.Alt)
+ .SendKeys(Keys.Down + Keys.Down + Keys.Right + Keys.Enter)
+ .Perform();
+
+ var clickedMenuItem = _session.FindElementByAccessibilityId("ClickedMenuItem");
+ Assert.Equal("_Grandchild", clickedMenuItem.Text);
+ }
+
+ [PlatformFact(SkipOnOSX = true)]
+ public void Select_Child_With_Alt_Access_Keys()
+ {
+ new Actions(_session)
+ .KeyDown(Keys.Alt).KeyUp(Keys.Alt)
+ .SendKeys("rc")
+ .Perform();
+
+ var clickedMenuItem = _session.FindElementByAccessibilityId("ClickedMenuItem");
+ Assert.Equal("_Child 1", clickedMenuItem.Text);
+ }
+
+ [PlatformFact(SkipOnOSX = true)]
+ public void Select_Grandchild_With_Alt_Access_Keys()
+ {
+ new Actions(_session)
+ .KeyDown(Keys.Alt).KeyUp(Keys.Alt)
+ .SendKeys("rhg")
+ .Perform();
+
+ var clickedMenuItem = _session.FindElementByAccessibilityId("ClickedMenuItem");
+ Assert.Equal("_Grandchild", clickedMenuItem.Text);
+ }
+
+ [PlatformFact(SkipOnOSX = true)]
+ public void Select_Child_With_Click_Arrow_Keys()
+ {
+ var rootMenuItem = _session.FindElementByAccessibilityId("RootMenuItem");
+ rootMenuItem.SendClick();
+
+ new Actions(_session)
+ .SendKeys(Keys.Down + Keys.Enter)
+ .Perform();
+
+ var clickedMenuItem = _session.FindElementByAccessibilityId("ClickedMenuItem");
+ Assert.Equal("_Child 1", clickedMenuItem.Text);
+ }
+
+ [PlatformFact(SkipOnOSX = true)]
+ public void Select_Grandchild_With_Click_Arrow_Keys()
+ {
+ var rootMenuItem = _session.FindElementByAccessibilityId("RootMenuItem");
+ rootMenuItem.SendClick();
+
+ new Actions(_session)
+ .SendKeys(Keys.Down + Keys.Down + Keys.Right + Keys.Enter)
+ .Perform();
+
+ var clickedMenuItem = _session.FindElementByAccessibilityId("ClickedMenuItem");
+ Assert.Equal("_Grandchild", clickedMenuItem.Text);
+ }
+
[PlatformFact(SkipOnOSX = true)]
public void Child_AcceleratorKey()
{
var rootMenuItem = _session.FindElementByAccessibilityId("RootMenuItem");
-
+
rootMenuItem.SendClick();
var childMenuItem = _session.FindElementByAccessibilityId("Child1MenuItem");
Assert.Equal("Ctrl+O", childMenuItem.GetAttribute("AcceleratorKey"));
}
+
+ [PlatformFact(SkipOnOSX = true)]
+ public void PointerOver_Does_Not_Steal_Focus()
+ {
+ // Issue #7906
+ var textBox = _session.FindElementByAccessibilityId("MenuFocusTest");
+ textBox.Click();
+
+ Assert.True(textBox.GetIsFocused());
+
+ var rootMenuItem = _session.FindElementByAccessibilityId("RootMenuItem");
+ rootMenuItem.MovePointerOver();
+
+ Assert.True(textBox.GetIsFocused());
+ }
}
}
diff --git a/tests/Avalonia.Interactivity.UnitTests/Avalonia.Interactivity.UnitTests.csproj b/tests/Avalonia.Interactivity.UnitTests/Avalonia.Interactivity.UnitTests.csproj
deleted file mode 100644
index f6cfe51db4..0000000000
--- a/tests/Avalonia.Interactivity.UnitTests/Avalonia.Interactivity.UnitTests.csproj
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
- net6.0
- Library
- true
- latest
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/tests/Avalonia.Interactivity.UnitTests/Properties/AssemblyInfo.cs b/tests/Avalonia.Interactivity.UnitTests/Properties/AssemblyInfo.cs
deleted file mode 100644
index c5bf2d8657..0000000000
--- a/tests/Avalonia.Interactivity.UnitTests/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,7 +0,0 @@
-using System.Reflection;
-using Xunit;
-
-[assembly: AssemblyTitle("Avalonia.Interactivity.UnitTests")]
-
-// Don't run tests in parallel.
-[assembly: CollectionBehavior(DisableTestParallelization = true)]
\ No newline at end of file
diff --git a/tests/Avalonia.Layout.UnitTests/Avalonia.Layout.UnitTests.csproj b/tests/Avalonia.Layout.UnitTests/Avalonia.Layout.UnitTests.csproj
deleted file mode 100644
index a3c85c72b5..0000000000
--- a/tests/Avalonia.Layout.UnitTests/Avalonia.Layout.UnitTests.csproj
+++ /dev/null
@@ -1,29 +0,0 @@
-
-
- net6.0
- Library
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/tests/Avalonia.Layout.UnitTests/Properties/AssemblyInfo.cs b/tests/Avalonia.Layout.UnitTests/Properties/AssemblyInfo.cs
deleted file mode 100644
index 6f62e38bda..0000000000
--- a/tests/Avalonia.Layout.UnitTests/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,7 +0,0 @@
-using System.Reflection;
-using Xunit;
-
-[assembly: AssemblyTitle("Avalonia.Layout.UnitTests")]
-
-// Don't run tests in parallel.
-[assembly: CollectionBehavior(DisableTestParallelization = true)]
\ No newline at end of file
diff --git a/tests/Avalonia.LeakTests/Avalonia.LeakTests.csproj b/tests/Avalonia.LeakTests/Avalonia.LeakTests.csproj
index 7e569f2eac..0c663e1a8f 100644
--- a/tests/Avalonia.LeakTests/Avalonia.LeakTests.csproj
+++ b/tests/Avalonia.LeakTests/Avalonia.LeakTests.csproj
@@ -12,14 +12,8 @@
-
-
-
-
-
-
diff --git a/tests/Avalonia.Markup.UnitTests/Avalonia.Markup.UnitTests.csproj b/tests/Avalonia.Markup.UnitTests/Avalonia.Markup.UnitTests.csproj
index fceea56273..fc15ad8230 100644
--- a/tests/Avalonia.Markup.UnitTests/Avalonia.Markup.UnitTests.csproj
+++ b/tests/Avalonia.Markup.UnitTests/Avalonia.Markup.UnitTests.csproj
@@ -13,14 +13,8 @@
-
-
-
-
-
-
diff --git a/tests/Avalonia.Markup.Xaml.UnitTests/Avalonia.Markup.Xaml.UnitTests.csproj b/tests/Avalonia.Markup.Xaml.UnitTests/Avalonia.Markup.Xaml.UnitTests.csproj
index 14f6525dbe..a0efa7bdeb 100644
--- a/tests/Avalonia.Markup.Xaml.UnitTests/Avalonia.Markup.Xaml.UnitTests.csproj
+++ b/tests/Avalonia.Markup.Xaml.UnitTests/Avalonia.Markup.Xaml.UnitTests.csproj
@@ -16,14 +16,8 @@
-
-
-
-
-
-
diff --git a/tests/Avalonia.Skia.RenderTests/Avalonia.Skia.RenderTests.csproj b/tests/Avalonia.Skia.RenderTests/Avalonia.Skia.RenderTests.csproj
index 5189e9335a..ffbcdd9e7c 100644
--- a/tests/Avalonia.Skia.RenderTests/Avalonia.Skia.RenderTests.csproj
+++ b/tests/Avalonia.Skia.RenderTests/Avalonia.Skia.RenderTests.csproj
@@ -12,14 +12,8 @@
-
-
-
-
-
-
diff --git a/tests/Avalonia.Skia.UnitTests/Avalonia.Skia.UnitTests.csproj b/tests/Avalonia.Skia.UnitTests/Avalonia.Skia.UnitTests.csproj
index e37cd25009..ccde66a50e 100644
--- a/tests/Avalonia.Skia.UnitTests/Avalonia.Skia.UnitTests.csproj
+++ b/tests/Avalonia.Skia.UnitTests/Avalonia.Skia.UnitTests.csproj
@@ -13,14 +13,8 @@
-
-
-
-
-
-
diff --git a/tests/Avalonia.Skia.UnitTests/Media/SKTypefaceCollectionCacheTests.cs b/tests/Avalonia.Skia.UnitTests/Media/SKTypefaceCollectionCacheTests.cs
index ddf4a36dcd..64050bd85e 100644
--- a/tests/Avalonia.Skia.UnitTests/Media/SKTypefaceCollectionCacheTests.cs
+++ b/tests/Avalonia.Skia.UnitTests/Media/SKTypefaceCollectionCacheTests.cs
@@ -28,7 +28,7 @@ namespace Avalonia.Skia.UnitTests.Media
}
[Fact]
- public void Should_Get_Null_For_Invalid_FamilyName()
+ public void Should_Get_Typeface_For_Invalid_FamilyName()
{
using (UnitTestApplication.Start(TestServices.MockPlatformRenderInterface))
{
@@ -39,7 +39,24 @@ namespace Avalonia.Skia.UnitTests.Media
var typeface = notoMonoCollection.Get(new Typeface("ABC"));
- Assert.Null(typeface);
+ Assert.NotNull(typeface);
+ }
+ }
+
+ [Fact]
+ public void Should_Get_Typeface_For_Partial_FamilyName()
+ {
+ using (UnitTestApplication.Start(TestServices.MockPlatformRenderInterface))
+ {
+ var fontFamily = new FontFamily("resm:Avalonia.Skia.UnitTests.Assets?assembly=Avalonia.Skia.UnitTests#T");
+
+ var fontCollection = SKTypefaceCollectionCache.GetOrAddTypefaceCollection(fontFamily);
+
+ var typeface = fontCollection.Get(new Typeface(fontFamily));
+
+ Assert.NotNull(typeface);
+
+ Assert.Equal("Twitter Color Emoji", typeface.FamilyName);
}
}
}
diff --git a/tests/Avalonia.Styling.UnitTests/Avalonia.Styling.UnitTests.csproj b/tests/Avalonia.Styling.UnitTests/Avalonia.Styling.UnitTests.csproj
deleted file mode 100644
index c5eb636a9a..0000000000
--- a/tests/Avalonia.Styling.UnitTests/Avalonia.Styling.UnitTests.csproj
+++ /dev/null
@@ -1,30 +0,0 @@
-
-
- net6.0
- Library
- CS0067
- true
- latest
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/tests/Avalonia.Styling.UnitTests/Properties/AssemblyInfo.cs b/tests/Avalonia.Styling.UnitTests/Properties/AssemblyInfo.cs
deleted file mode 100644
index 3bdb8a2f2e..0000000000
--- a/tests/Avalonia.Styling.UnitTests/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,7 +0,0 @@
-using System.Reflection;
-using Xunit;
-
-[assembly: AssemblyTitle("Avalonia.Styling.UnitTests")]
-
-// Don't run tests in parallel.
-[assembly: CollectionBehavior(DisableTestParallelization = true)]
\ No newline at end of file
diff --git a/tests/Avalonia.UnitTests/Avalonia.UnitTests.csproj b/tests/Avalonia.UnitTests/Avalonia.UnitTests.csproj
index c3cf6cd8d3..f54ccaa857 100644
--- a/tests/Avalonia.UnitTests/Avalonia.UnitTests.csproj
+++ b/tests/Avalonia.UnitTests/Avalonia.UnitTests.csproj
@@ -17,14 +17,8 @@
-
-
-
-
-
-
diff --git a/tests/Avalonia.UnitTests/MockPlatformRenderInterface.cs b/tests/Avalonia.UnitTests/MockPlatformRenderInterface.cs
index 2858a9f228..376121c269 100644
--- a/tests/Avalonia.UnitTests/MockPlatformRenderInterface.cs
+++ b/tests/Avalonia.UnitTests/MockPlatformRenderInterface.cs
@@ -3,7 +3,7 @@ using System.Collections.Generic;
using System.IO;
using Avalonia.Media;
using Avalonia.Platform;
-using Avalonia.Visuals.Media.Imaging;
+using Avalonia.Media.Imaging;
using Moq;
namespace Avalonia.UnitTests
diff --git a/tests/Avalonia.Visuals.UnitTests/Avalonia.Visuals.UnitTests.csproj b/tests/Avalonia.Visuals.UnitTests/Avalonia.Visuals.UnitTests.csproj
deleted file mode 100644
index 57de90114e..0000000000
--- a/tests/Avalonia.Visuals.UnitTests/Avalonia.Visuals.UnitTests.csproj
+++ /dev/null
@@ -1,40 +0,0 @@
-
-
- net6.0
- Library
- true
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/tests/Avalonia.Visuals.UnitTests/Properties/AssemblyInfo.cs b/tests/Avalonia.Visuals.UnitTests/Properties/AssemblyInfo.cs
deleted file mode 100644
index 2251cc6e92..0000000000
--- a/tests/Avalonia.Visuals.UnitTests/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,7 +0,0 @@
-using System.Reflection;
-using Xunit;
-
-[assembly: AssemblyTitle("Avalonia.Visuals.UnitTests")]
-
-// Don't run tests in parallel.
-[assembly: CollectionBehavior(DisableTestParallelization = true)]
\ No newline at end of file