diff --git a/.gitmodules b/.gitmodules
index 98b6d076c1..2d2a9ac497 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -1,7 +1,3 @@
-[submodule "src/Avalonia.HtmlRenderer/external"]
- path = src/Avalonia.HtmlRenderer/external
- url = https://github.com/AvaloniaUI/HTML-Renderer.git
- branch = perspex-pcl
[submodule "src/Markup/Avalonia.Markup.Xaml/PortableXaml/portable.xaml.github"]
path = src/Markup/Avalonia.Markup.Xaml/PortableXaml/portable.xaml.github
url = https://github.com/AvaloniaUI/Portable.Xaml.git
diff --git a/Avalonia.sln b/Avalonia.sln
index 91413fc5ee..7b4a359f06 100644
--- a/Avalonia.sln
+++ b/Avalonia.sln
@@ -1,4 +1,4 @@
-
+
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 15
VisualStudioVersion = 15.0.27130.2027
@@ -68,8 +68,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Gtk", "Gtk", "{B9894058-278
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.ReactiveUI", "src\Avalonia.ReactiveUI\Avalonia.ReactiveUI.csproj", "{6417B24E-49C2-4985-8DB2-3AB9D898EC91}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.HtmlRenderer", "src\Avalonia.HtmlRenderer\Avalonia.HtmlRenderer.csproj", "{5FB2B005-0A7F-4DAD-ADD4-3ED01444E63D}"
-EndProject
Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "PlatformSupport", "src\Shared\PlatformSupport\PlatformSupport.shproj", "{E4D9629C-F168-4224-3F51-A5E482FFBC42}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Markup", "src\Markup\Avalonia.Markup\Avalonia.Markup.csproj", "{6417E941-21BC-467B-A771-0DE389353CE6}"
@@ -134,8 +132,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Gtk3", "src\Gtk\Av
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ControlCatalog.NetCore", "samples\ControlCatalog.NetCore\ControlCatalog.NetCore.csproj", "{39D7B147-1A5B-47C2-9D01-21FB7C47C4B3}"
EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Build", "Build", "{74487168-7D91-487E-BF93-055F2251461E}"
-EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Props", "Props", "{F3AC8BC1-27F5-4255-9AFC-04ABFD11683A}"
ProjectSection(SolutionItems) = preProject
build\Base.props = build\Base.props
@@ -1164,44 +1160,6 @@ Global
{6417B24E-49C2-4985-8DB2-3AB9D898EC91}.Release|NetCoreOnly.Build.0 = Release|Any CPU
{6417B24E-49C2-4985-8DB2-3AB9D898EC91}.Release|x86.ActiveCfg = Release|Any CPU
{6417B24E-49C2-4985-8DB2-3AB9D898EC91}.Release|x86.Build.0 = Release|Any CPU
- {5FB2B005-0A7F-4DAD-ADD4-3ED01444E63D}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
- {5FB2B005-0A7F-4DAD-ADD4-3ED01444E63D}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
- {5FB2B005-0A7F-4DAD-ADD4-3ED01444E63D}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
- {5FB2B005-0A7F-4DAD-ADD4-3ED01444E63D}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU
- {5FB2B005-0A7F-4DAD-ADD4-3ED01444E63D}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {5FB2B005-0A7F-4DAD-ADD4-3ED01444E63D}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU
- {5FB2B005-0A7F-4DAD-ADD4-3ED01444E63D}.Ad-Hoc|NetCoreOnly.ActiveCfg = Debug|Any CPU
- {5FB2B005-0A7F-4DAD-ADD4-3ED01444E63D}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU
- {5FB2B005-0A7F-4DAD-ADD4-3ED01444E63D}.Ad-Hoc|x86.Build.0 = Debug|Any CPU
- {5FB2B005-0A7F-4DAD-ADD4-3ED01444E63D}.AppStore|Any CPU.ActiveCfg = Release|Any CPU
- {5FB2B005-0A7F-4DAD-ADD4-3ED01444E63D}.AppStore|Any CPU.Build.0 = Release|Any CPU
- {5FB2B005-0A7F-4DAD-ADD4-3ED01444E63D}.AppStore|iPhone.ActiveCfg = Release|Any CPU
- {5FB2B005-0A7F-4DAD-ADD4-3ED01444E63D}.AppStore|iPhone.Build.0 = Release|Any CPU
- {5FB2B005-0A7F-4DAD-ADD4-3ED01444E63D}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {5FB2B005-0A7F-4DAD-ADD4-3ED01444E63D}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU
- {5FB2B005-0A7F-4DAD-ADD4-3ED01444E63D}.AppStore|NetCoreOnly.ActiveCfg = Debug|Any CPU
- {5FB2B005-0A7F-4DAD-ADD4-3ED01444E63D}.AppStore|x86.ActiveCfg = Debug|Any CPU
- {5FB2B005-0A7F-4DAD-ADD4-3ED01444E63D}.AppStore|x86.Build.0 = Debug|Any CPU
- {5FB2B005-0A7F-4DAD-ADD4-3ED01444E63D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {5FB2B005-0A7F-4DAD-ADD4-3ED01444E63D}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {5FB2B005-0A7F-4DAD-ADD4-3ED01444E63D}.Debug|iPhone.ActiveCfg = Debug|Any CPU
- {5FB2B005-0A7F-4DAD-ADD4-3ED01444E63D}.Debug|iPhone.Build.0 = Debug|Any CPU
- {5FB2B005-0A7F-4DAD-ADD4-3ED01444E63D}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
- {5FB2B005-0A7F-4DAD-ADD4-3ED01444E63D}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
- {5FB2B005-0A7F-4DAD-ADD4-3ED01444E63D}.Debug|NetCoreOnly.ActiveCfg = Debug|Any CPU
- {5FB2B005-0A7F-4DAD-ADD4-3ED01444E63D}.Debug|NetCoreOnly.Build.0 = Debug|Any CPU
- {5FB2B005-0A7F-4DAD-ADD4-3ED01444E63D}.Debug|x86.ActiveCfg = Debug|Any CPU
- {5FB2B005-0A7F-4DAD-ADD4-3ED01444E63D}.Debug|x86.Build.0 = Debug|Any CPU
- {5FB2B005-0A7F-4DAD-ADD4-3ED01444E63D}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {5FB2B005-0A7F-4DAD-ADD4-3ED01444E63D}.Release|Any CPU.Build.0 = Release|Any CPU
- {5FB2B005-0A7F-4DAD-ADD4-3ED01444E63D}.Release|iPhone.ActiveCfg = Release|Any CPU
- {5FB2B005-0A7F-4DAD-ADD4-3ED01444E63D}.Release|iPhone.Build.0 = Release|Any CPU
- {5FB2B005-0A7F-4DAD-ADD4-3ED01444E63D}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
- {5FB2B005-0A7F-4DAD-ADD4-3ED01444E63D}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
- {5FB2B005-0A7F-4DAD-ADD4-3ED01444E63D}.Release|NetCoreOnly.ActiveCfg = Release|Any CPU
- {5FB2B005-0A7F-4DAD-ADD4-3ED01444E63D}.Release|NetCoreOnly.Build.0 = Release|Any CPU
- {5FB2B005-0A7F-4DAD-ADD4-3ED01444E63D}.Release|x86.ActiveCfg = Release|Any CPU
- {5FB2B005-0A7F-4DAD-ADD4-3ED01444E63D}.Release|x86.Build.0 = Release|Any CPU
{6417E941-21BC-467B-A771-0DE389353CE6}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU
{6417E941-21BC-467B-A771-0DE389353CE6}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU
{6417E941-21BC-467B-A771-0DE389353CE6}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU
@@ -2584,8 +2542,6 @@ Global
{7D2D3083-71DD-4CC9-8907-39A0D86FB322} = {3743B0F2-CC41-4F14-A8C8-267F579BF91E}
{BB1F7BB5-6AD4-4776-94D9-C09D0A972658} = {B9894058-278A-46B5-B6ED-AD613FCC03B3}
{39D7B147-1A5B-47C2-9D01-21FB7C47C4B3} = {9B9E3891-2366-4253-A952-D08BCEB71098}
- {F3AC8BC1-27F5-4255-9AFC-04ABFD11683A} = {74487168-7D91-487E-BF93-055F2251461E}
- {4D6FAF79-58B4-482F-9122-0668C346364C} = {74487168-7D91-487E-BF93-055F2251461E}
{854568D5-13D1-4B4F-B50D-534DC7EFD3C9} = {86C53C40-57AA-45B8-AD42-FAE0EFDF0F2B}
{638580B0-7910-40EF-B674-DCB34DA308CD} = {A0CC0258-D18C-4AB3-854F-7101680FC3F9}
{CBC4FF2F-92D4-420B-BE21-9FE0B930B04E} = {B39A8919-9F95-48FE-AD7B-76E08B509888}
diff --git a/build.cake b/build.cake
index 20d77e25d3..aa35d88aac 100644
--- a/build.cake
+++ b/build.cake
@@ -376,7 +376,7 @@ Task("Inspect")
{
var badIssues = new []{"PossibleNullReferenceException"};
var whitelist = new []{"tests", "src\\android", "src\\ios",
- "src\\windows\\avalonia.designer", "src\\avalonia.htmlrenderer\\external",
+ "src\\windows\\avalonia.designer",
"src\\markup\\avalonia.markup.xaml\\portablexaml\\portable.xaml.github"};
Information("Running code inspections");
diff --git a/build/ReactiveUI.props b/build/ReactiveUI.props
index 1e2ad69046..11afefa8ad 100644
--- a/build/ReactiveUI.props
+++ b/build/ReactiveUI.props
@@ -1,5 +1,5 @@
-
+
diff --git a/packages.cake b/packages.cake
index 17411aef4c..90cbb8d7ef 100644
--- a/packages.cake
+++ b/packages.cake
@@ -274,23 +274,6 @@ public class Packages
OutputDirectory = parameters.NugetRoot
},
///////////////////////////////////////////////////////////////////////////////
- // Avalonia.HtmlRenderer
- ///////////////////////////////////////////////////////////////////////////////
- new NuGetPackSettings()
- {
- Id = "Avalonia.HtmlRenderer",
- Dependencies = new []
- {
- new NuSpecDependency() { Id = "Avalonia", Version = parameters.Version }
- },
- Files = new []
- {
- new NuSpecContent { Source = "Avalonia.HtmlRenderer.dll", Target = "lib/netstandard2.0" }
- },
- BasePath = context.Directory("./src/Avalonia.HtmlRenderer/bin/" + parameters.DirSuffix + "/netstandard2.0"),
- OutputDirectory = parameters.NugetRoot
- },
- ///////////////////////////////////////////////////////////////////////////////
// Avalonia.ReactiveUI
///////////////////////////////////////////////////////////////////////////////
new NuGetPackSettings()
diff --git a/samples/ControlCatalog.Android/ControlCatalog.Android.csproj b/samples/ControlCatalog.Android/ControlCatalog.Android.csproj
index 2a91d6a3da..fab8ecd768 100644
--- a/samples/ControlCatalog.Android/ControlCatalog.Android.csproj
+++ b/samples/ControlCatalog.Android/ControlCatalog.Android.csproj
@@ -111,10 +111,6 @@
{7062ae20-5dcc-4442-9645-8195bdece63e}
Avalonia.Diagnostics
-
- {5fb2b005-0a7f-4dad-add4-3ed01444e63d}
- Avalonia.HtmlRenderer
-
{62024b2d-53eb-4638-b26b-85eeaa54866e}
Avalonia.Input
diff --git a/samples/ControlCatalog.iOS/ControlCatalog.iOS.csproj b/samples/ControlCatalog.iOS/ControlCatalog.iOS.csproj
index c1c5cdcaf7..a60fd242e4 100644
--- a/samples/ControlCatalog.iOS/ControlCatalog.iOS.csproj
+++ b/samples/ControlCatalog.iOS/ControlCatalog.iOS.csproj
@@ -141,10 +141,6 @@
{7062AE20-5DCC-4442-9645-8195BDECE63E}
Avalonia.Diagnostics
-
- {5FB2B005-0A7F-4DAD-ADD4-3ED01444E63D}
- Avalonia.HtmlRenderer
-
{62024B2D-53EB-4638-B26B-85EEAA54866E}
Avalonia.Input
diff --git a/samples/ControlCatalog/ControlCatalog.csproj b/samples/ControlCatalog/ControlCatalog.csproj
index c37002ef6a..dea9b35e24 100644
--- a/samples/ControlCatalog/ControlCatalog.csproj
+++ b/samples/ControlCatalog/ControlCatalog.csproj
@@ -25,7 +25,6 @@
-
diff --git a/samples/Previewer/Previewer.csproj b/samples/Previewer/Previewer.csproj
index 13e2418d67..b4dda473f2 100644
--- a/samples/Previewer/Previewer.csproj
+++ b/samples/Previewer/Previewer.csproj
@@ -15,7 +15,6 @@
-
diff --git a/src/Android/Avalonia.AndroidTestApplication/Avalonia.AndroidTestApplication.csproj b/src/Android/Avalonia.AndroidTestApplication/Avalonia.AndroidTestApplication.csproj
index 9977d77978..359adaa1f0 100644
--- a/src/Android/Avalonia.AndroidTestApplication/Avalonia.AndroidTestApplication.csproj
+++ b/src/Android/Avalonia.AndroidTestApplication/Avalonia.AndroidTestApplication.csproj
@@ -143,10 +143,6 @@
{3e10a5fa-e8da-48b1-ad44-6a5b6cb7750f}
Avalonia.Themes.Default
-
- {5fb2b005-0a7f-4dad-add4-3ed01444e63d}
- Avalonia.HtmlRenderer
-
{7d2d3083-71dd-4cc9-8907-39a0d86fb322}
Avalonia.Skia
diff --git a/src/Avalonia.HtmlRenderer/Adapters/AvaloniaAdapter.cs b/src/Avalonia.HtmlRenderer/Adapters/AvaloniaAdapter.cs
deleted file mode 100644
index aab65fcbc7..0000000000
--- a/src/Avalonia.HtmlRenderer/Adapters/AvaloniaAdapter.cs
+++ /dev/null
@@ -1,129 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.IO;
-using System.Linq;
-using System.Reflection;
-using System.Text;
-using System.Threading.Tasks;
-using Avalonia;
-using Avalonia.Input.Platform;
-using Avalonia.Media;
-using Avalonia.Media.Imaging;
-using TheArtOfDev.HtmlRenderer.Adapters;
-using TheArtOfDev.HtmlRenderer.Adapters.Entities;
-using TheArtOfDev.HtmlRenderer.Avalonia.Utilities;
-
-namespace TheArtOfDev.HtmlRenderer.Avalonia.Adapters
-{
- class AvaloniaAdapter : RAdapter
- {
- public static AvaloniaAdapter Instance { get; } = new AvaloniaAdapter();
-
- ///
- /// List of valid predefined color names in lower-case
- ///
- private static readonly Dictionary ColorNameDic = new Dictionary();
-
-
- static AvaloniaAdapter()
- {
- foreach (var colorProp in typeof(Colors).GetRuntimeProperties()
- .Where(p=>p.PropertyType == typeof(Color)))
- {
- ColorNameDic[colorProp.Name.ToLower()] = (Color)colorProp.GetValue(null);
- }
- }
-
- protected override RColor GetColorInt(string colorName)
- {
- Color c;
- if(!ColorNameDic.TryGetValue(colorName.ToLower(), out c))
- return RColor.Empty;
- return Util.Convert(c);
- }
-
- protected override RPen CreatePen(RColor color)
- {
- return new PenAdapter(GetSolidColorBrush(color));
- }
-
- ///
- /// Get solid color brush for the given color.
- ///
- private static IBrush GetSolidColorBrush(RColor color)
- {
- IBrush solidBrush;
- if (color == RColor.White)
- solidBrush = Brushes.White;
- else if (color == RColor.Black)
- solidBrush = Brushes.Black;
- else if (color.A < 1)
- solidBrush = Brushes.Transparent;
- else
- solidBrush = new SolidColorBrush(Util.Convert(color));
- return solidBrush;
- }
-
- protected override RBrush CreateSolidBrush(RColor color)
- {
- return new BrushAdapter(GetSolidColorBrush(color));
- }
-
- protected override RBrush CreateLinearGradientBrush(RRect rect, RColor color1, RColor color2, double angle)
- {
- var startColor = angle <= 180 ? Util.Convert(color1) : Util.Convert(color2);
- var endColor = angle <= 180 ? Util.Convert(color2) : Util.Convert(color1);
- angle = angle <= 180 ? angle : angle - 180;
- double x = angle < 135 ? Math.Max((angle - 45) / 90, 0) : 1;
- double y = angle <= 45 ? Math.Max(0.5 - angle / 90, 0) : angle > 135 ? Math.Abs(1.5 - angle / 90) : 0;
- return new BrushAdapter(new LinearGradientBrush
- {
- StartPoint = new RelativePoint(x, y, RelativeUnit.Relative),
- EndPoint = new RelativePoint(1 - x, 1 - y, RelativeUnit.Relative),
- GradientStops = new[]
- {
- new GradientStop(startColor, 0),
- new GradientStop(endColor, 1)
- }
- });
-
- }
-
- protected override RImage ConvertImageInt(object image)
- {
- return image != null ? new ImageAdapter((Bitmap)image) : null;
- }
-
- protected override RImage ImageFromStreamInt(Stream memoryStream)
- {
- //TODO: Implement bitmap loader
- return null;
- }
-
- protected override RFont CreateFontInt(string family, double size, RFontStyle style)
- {
- return new FontAdapter(family, size, style);
- }
-
- protected override RFont CreateFontInt(RFontFamily family, double size, RFontStyle style)
- {
- return new FontAdapter(family.Name, size, style);
- }
-
- protected override void SetToClipboardInt(string html, string plainText)
- {
- SetToClipboardInt(plainText);
- }
-
- protected override void SetToClipboardInt(string text)
- {
- AvaloniaLocator.Current.GetService().SetTextAsync(text);
- }
-
- protected override void SetToClipboardInt(RImage image)
- {
- //Do not crash, just ignore
- //TODO: implement image clipboard support
- }
- }
-}
diff --git a/src/Avalonia.HtmlRenderer/Adapters/BrushAdapter.cs b/src/Avalonia.HtmlRenderer/Adapters/BrushAdapter.cs
deleted file mode 100644
index 8ea67274b1..0000000000
--- a/src/Avalonia.HtmlRenderer/Adapters/BrushAdapter.cs
+++ /dev/null
@@ -1,47 +0,0 @@
-// "Therefore those skilled at the unorthodox
-// are infinite as heaven and earth,
-// inexhaustible as the great rivers.
-// When they come to an end,
-// they begin again,
-// like the days and months;
-// they die and are reborn,
-// like the four seasons."
-//
-// - Sun Tsu,
-// "The Art of War"
-
-using Avalonia.Media;
-using TheArtOfDev.HtmlRenderer.Adapters;
-
-namespace TheArtOfDev.HtmlRenderer.Avalonia.Adapters
-{
- ///
- /// Adapter for Avalonia brushes.
- ///
- internal sealed class BrushAdapter : RBrush
- {
- ///
- /// The actual Avalonia brush instance.
- ///
- private readonly IBrush _brush;
-
- ///
- /// Init.
- ///
- public BrushAdapter(IBrush brush)
- {
- _brush = brush;
- }
-
- ///
- /// The actual Avalonia brush instance.
- ///
- public IBrush Brush
- {
- get { return _brush; }
- }
-
- public override void Dispose()
- { }
- }
-}
\ No newline at end of file
diff --git a/src/Avalonia.HtmlRenderer/Adapters/ContextMenuAdapter.cs b/src/Avalonia.HtmlRenderer/Adapters/ContextMenuAdapter.cs
deleted file mode 100644
index 380108c01a..0000000000
--- a/src/Avalonia.HtmlRenderer/Adapters/ContextMenuAdapter.cs
+++ /dev/null
@@ -1,51 +0,0 @@
-// "Therefore those skilled at the unorthodox
-// are infinite as heaven and earth,
-// inexhaustible as the great rivers.
-// When they come to an end,
-// they begin again,
-// like the days and months;
-// they die and are reborn,
-// like the four seasons."
-//
-// - Sun Tsu,
-// "The Art of War"
-
-using System;
-using TheArtOfDev.HtmlRenderer.Adapters;
-using TheArtOfDev.HtmlRenderer.Adapters.Entities;
-
-namespace TheArtOfDev.HtmlRenderer.Avalonia.Adapters
-{
- ///
- /// Adapter for Avalonia context menu for core.
- ///
- internal sealed class NullContextMenuAdapter : RContextMenu
- {
- //TODO: actually implement context menu
-
- private int _itemCount;
- public override int ItemsCount => _itemCount;
- public override void AddDivider()
- {
-
- }
-
- public override void AddItem(string text, bool enabled, EventHandler onClick)
- {
- _itemCount++;
- }
-
- public override void RemoveLastDivider()
- {
- _itemCount++;
- }
-
- public override void Show(RControl parent, RPoint location)
- {
- }
-
- public override void Dispose()
- {
- }
- }
-}
\ No newline at end of file
diff --git a/src/Avalonia.HtmlRenderer/Adapters/ControlAdapter.cs b/src/Avalonia.HtmlRenderer/Adapters/ControlAdapter.cs
deleted file mode 100644
index 9a55768f6a..0000000000
--- a/src/Avalonia.HtmlRenderer/Adapters/ControlAdapter.cs
+++ /dev/null
@@ -1,111 +0,0 @@
-// "Therefore those skilled at the unorthodox
-// are infinite as heaven and earth,
-// inexhaustible as the great rivers.
-// When they come to an end,
-// they begin again,
-// like the days and months;
-// they die and are reborn,
-// like the four seasons."
-//
-// - Sun Tsu,
-// "The Art of War"
-
-using Avalonia;
-using Avalonia.Controls;
-using Avalonia.Controls.Html;
-using Avalonia.Input;
-using Avalonia.VisualTree;
-using TheArtOfDev.HtmlRenderer.Adapters;
-using TheArtOfDev.HtmlRenderer.Adapters.Entities;
-using TheArtOfDev.HtmlRenderer.Core.Utils;
-using TheArtOfDev.HtmlRenderer.Avalonia.Utilities;
-// ReSharper disable ConvertPropertyToExpressionBody
-
-namespace TheArtOfDev.HtmlRenderer.Avalonia.Adapters
-{
- ///
- /// Adapter for Avalonia Control for core.
- ///
- internal sealed class ControlAdapter : RControl
- {
- ///
- /// the underline Avalonia control.
- ///
- private readonly Control _control;
-
- ///
- /// Init.
- ///
- public ControlAdapter(Control control)
- : base(AvaloniaAdapter.Instance)
- {
- ArgChecker.AssertArgNotNull(control, "control");
-
- _control = control;
- }
-
- ///
- /// Get the underline Avalonia control
- ///
- public Control Control
- {
- get { return _control; }
- }
-
- public override RPoint MouseLocation
- {
- get
- {
- var pos = (_control.GetVisualRoot() as IInputRoot)?.MouseDevice?.Position ?? default(Point);
- return Util.Convert(pos);
- }
- }
-
- private bool _leftMouseButton;
- public override bool LeftMouseButton => (_control as HtmlControl)?.LeftMouseButton ?? false;
-
- public override bool RightMouseButton
- {
- get
- {
- return false;
- //TODO: Implement right mouse click
- //return Mouse.RightButton == MouseButtonState.Pressed;
- }
- }
-
- public override void SetCursorDefault()
- {
- _control.Cursor = new Cursor(StandardCursorType.Arrow);
- }
-
- public override void SetCursorHand()
- {
- _control.Cursor = new Cursor(StandardCursorType.Hand);
- }
-
- public override void SetCursorIBeam()
- {
- _control.Cursor = new Cursor(StandardCursorType.Ibeam);
- }
-
- public override void DoDragDropCopy(object dragDropData)
- {
- //TODO: Implement DragDropCopy
- //DragDrop.DoDragDrop(_control, dragDropData, DragDropEffects.Copy);
- }
-
- public override void MeasureString(string str, RFont font, double maxWidth, out int charFit, out double charFitWidth)
- {
- using (var g = new GraphicsAdapter())
- {
- g.MeasureString(str, font, maxWidth, out charFit, out charFitWidth);
- }
- }
-
- public override void Invalidate()
- {
- _control.InvalidateVisual();
- }
- }
-}
\ No newline at end of file
diff --git a/src/Avalonia.HtmlRenderer/Adapters/FontAdapter.cs b/src/Avalonia.HtmlRenderer/Adapters/FontAdapter.cs
deleted file mode 100644
index 7e70967ac1..0000000000
--- a/src/Avalonia.HtmlRenderer/Adapters/FontAdapter.cs
+++ /dev/null
@@ -1,106 +0,0 @@
-// "Therefore those skilled at the unorthodox
-// are infinite as heaven and earth,
-// inexhaustible as the great rivers.
-// When they come to an end,
-// they begin again,
-// like the days and months;
-// they die and are reborn,
-// like the four seasons."
-//
-// - Sun Tsu,
-// "The Art of War"
-
-using Avalonia.Media;
-using TheArtOfDev.HtmlRenderer.Adapters;
-using TheArtOfDev.HtmlRenderer.Adapters.Entities;
-
-namespace TheArtOfDev.HtmlRenderer.Avalonia.Adapters
-{
- ///
- /// Adapter for Avalonia Font.
- ///
- internal sealed class FontAdapter : RFont
- {
- public RFontStyle Style { get; }
-
- #region Fields and Consts
-
-
- ///
- /// the size of the font
- ///
- private readonly double _size;
-
- ///
- /// the vertical offset of the font underline location from the top of the font.
- ///
- private readonly double _underlineOffset = -1;
-
- ///
- /// Cached font height.
- ///
- private readonly double _height = -1;
-
- ///
- /// Cached font whitespace width.
- ///
- private double _whitespaceWidth = -1;
-
-
- #endregion
-
-
- ///
- /// Init.
- ///
- public FontAdapter(string fontFamily, double size, RFontStyle style)
- {
- Style = style;
- Name = fontFamily;
- _size = size;
- //TODO: Somehow get proper line spacing and underlinePosition
- var lineSpacing = 1;
- var underlinePosition = 0;
-
- _height = 96d / 72d * _size * lineSpacing;
- _underlineOffset = 96d / 72d * _size * (lineSpacing + underlinePosition);
-
- }
-
- public string Name { get; set; }
-
-
- public override double Size
- {
- get { return _size; }
- }
-
- public override double UnderlineOffset
- {
- get { return _underlineOffset; }
- }
-
- public override double Height
- {
- get { return _height; }
- }
-
- public override double LeftPadding
- {
- get { return _height / 6f; }
- }
-
- public override double GetWhitespaceWidth(RGraphics graphics)
- {
- if (_whitespaceWidth < 0)
- {
- _whitespaceWidth = graphics.MeasureString(" ", this).Width;
- }
- return _whitespaceWidth;
- }
-
- public FontStyle FontStyle => Style.HasFlag(RFontStyle.Italic) ? FontStyle.Italic : FontStyle.Normal;
-
- public FontWeight Weight => Style.HasFlag(RFontStyle.Bold) ? FontWeight.Bold : FontWeight.Normal;
- }
-}
\ No newline at end of file
diff --git a/src/Avalonia.HtmlRenderer/Adapters/FontFamilyAdapter.cs b/src/Avalonia.HtmlRenderer/Adapters/FontFamilyAdapter.cs
deleted file mode 100644
index 063d8386ba..0000000000
--- a/src/Avalonia.HtmlRenderer/Adapters/FontFamilyAdapter.cs
+++ /dev/null
@@ -1,29 +0,0 @@
-// "Therefore those skilled at the unorthodox
-// are infinite as heaven and earth,
-// inexhaustible as the great rivers.
-// When they come to an end,
-// they begin again,
-// like the days and months;
-// they die and are reborn,
-// like the four seasons."
-//
-// - Sun Tsu,
-// "The Art of War"
-
-using TheArtOfDev.HtmlRenderer.Adapters;
-
-namespace TheArtOfDev.HtmlRenderer.Avalonia.Adapters
-{
- ///
- /// Adapter for Avalonia Font family object for core.
- ///
- internal sealed class FontFamilyAdapter : RFontFamily
- {
- public FontFamilyAdapter(string fontFamily)
- {
- Name = fontFamily;
- }
-
- public override string Name { get; }
- }
-}
\ No newline at end of file
diff --git a/src/Avalonia.HtmlRenderer/Adapters/GraphicsAdapter.cs b/src/Avalonia.HtmlRenderer/Adapters/GraphicsAdapter.cs
deleted file mode 100644
index 93f8790741..0000000000
--- a/src/Avalonia.HtmlRenderer/Adapters/GraphicsAdapter.cs
+++ /dev/null
@@ -1,299 +0,0 @@
-// "Therefore those skilled at the unorthodox
-// are infinite as heaven and earth,
-// inexhaustible as the great rivers.
-// When they come to an end,
-// they begin again,
-// like the days and months;
-// they die and are reborn,
-// like the four seasons."
-//
-// - Sun Tsu,
-// "The Art of War"
-
-using System;
-using System.Collections.Generic;
-using System.Globalization;
-using Avalonia;
-using Avalonia.Media;
-using TheArtOfDev.HtmlRenderer.Adapters;
-using TheArtOfDev.HtmlRenderer.Adapters.Entities;
-using TheArtOfDev.HtmlRenderer.Core.Utils;
-using TheArtOfDev.HtmlRenderer.Avalonia.Utilities;
-
-namespace TheArtOfDev.HtmlRenderer.Avalonia.Adapters
-{
- ///
- /// Adapter for Avalonia Graphics.
- ///
- internal sealed class GraphicsAdapter : RGraphics
- {
- #region Fields and Consts
-
- ///
- /// The wrapped Avalonia graphics object
- ///
- private readonly DrawingContext _g;
-
- ///
- /// if to release the graphics object on dispose
- ///
- private readonly bool _releaseGraphics;
-
- #endregion
-
-
- private readonly Stack _clipStack = new Stack();
-
-
- ///
- /// Init.
- ///
- /// the Avalonia graphics object to use
- /// the initial clip of the graphics
- /// optional: if to release the graphics object on dispose (default - false)
- public GraphicsAdapter(DrawingContext g, RRect initialClip, bool releaseGraphics = false)
- : base(AvaloniaAdapter.Instance, initialClip)
- {
- ArgChecker.AssertArgNotNull(g, "g");
-
- _g = g;
- _releaseGraphics = releaseGraphics;
- }
-
- ///
- /// Init.
- ///
- public GraphicsAdapter()
- : base(AvaloniaAdapter.Instance, RRect.Empty)
- {
- _g = null;
- _releaseGraphics = false;
- }
-
-
-
- public override void PopClip()
- {
- _clipStack.Pop()?.Dispose();
- }
-
- public override void PushClip(RRect rect)
- {
- _clipStack.Push(_g.PushClip(Util.Convert(rect)));
- //_clipStack.Push(rect);
- //_g.PushClip(new RectangleGeometry(Utils.Convert(rect)));
- }
-
- public override void PushClipExclude(RRect rect)
- {
- _clipStack.Push(null);
-
- //TODO: Implement exclude rect, see #128
- //var geometry = new CombinedGeometry();
- //geometry.Geometry1 = new RectangleGeometry(Utils.Convert(_clipStack.Peek()));
- //geometry.Geometry2 = new RectangleGeometry(Utils.Convert(rect));
- //geometry.GeometryCombineMode = GeometryCombineMode.Exclude;
-
- //_clipStack.Push(_clipStack.Peek());
- //_g.PushClip(geometry);
- }
-
- public override Object SetAntiAliasSmoothingMode()
- {
- return null;
- }
-
- public override void ReturnPreviousSmoothingMode(Object prevMode)
- { }
-
- public override RSize MeasureString(string str, RFont font)
- {
- var text = GetText(str, font);
- var measure = text.Measure();
- return new RSize(measure.Width, measure.Height);
-
- }
-
- FormattedText GetText(string str, RFont font)
- {
- var f = ((FontAdapter)font);
- return new FormattedText
- {
- Text = str,
- Typeface = new Typeface(f.Name, font.Size, f.FontStyle, f.Weight),
- };
- }
-
- public override void MeasureString(string str, RFont font, double maxWidth, out int charFit, out double charFitWidth)
- {
- var text = GetText(str, font);
- var fullLength = text.Measure().Width;
- if (fullLength < maxWidth)
- {
- charFitWidth = fullLength;
- charFit = str.Length;
- return;
- }
-
- int lastLen = 0;
- double lastMeasure = 0;
- BinarySearch(len =>
- {
- text = GetText(str.Substring(0, len), font);
- var size = text.Measure().Width;
- lastMeasure = size;
- lastLen = len;
- if (size <= maxWidth)
- return -1;
- return 1;
-
- }, 0, str.Length);
- if (lastMeasure > maxWidth)
- {
- lastLen--;
- lastMeasure = GetText(str.Substring(0, lastLen), font).Measure().Width;
- }
- charFit = lastLen;
- charFitWidth = lastMeasure;
-
- }
-
- private static int BinarySearch(Func condition, int start, int end)
- {
- do
- {
- int ind = start + (end - start)/2;
- int res = condition(ind);
- if (res == 0)
- return ind;
- else if (res > 0)
- {
- if (start != ind)
- start = ind;
- else
- start = ind + 1;
- }
- else
- end = ind;
-
- } while (end > start);
- return -1;
- }
-
- public override void DrawString(string str, RFont font, RColor color, RPoint point, RSize size, bool rtl)
- {
- var text = GetText(str, font);
- text.Constraint = Util.Convert(size);
- _g.DrawText(new SolidColorBrush(Util.Convert(color)), Util.Convert(point), text);
- }
-
- public override RBrush GetTextureBrush(RImage image, RRect dstRect, RPoint translateTransformLocation)
- {
- //TODO: Implement texture brush
- return AvaloniaAdapter.Instance.GetSolidBrush(Util.Convert(Colors.Magenta));
-
- //var brush = new ImageBrush(((ImageAdapter)image).Image);
- //brush.Stretch = Stretch.None;
- //brush.TileMode = TileMode.Tile;
- //brush.Viewport = Utils.Convert(dstRect);
- //brush.ViewportUnits = BrushMappingMode.Absolute;
- //brush.Transform = new TranslateTransform(translateTransformLocation.X, translateTransformLocation.Y);
- //brush.Freeze();
- //return new BrushAdapter(brush);
- }
-
- public override RGraphicsPath GetGraphicsPath()
- {
- return new GraphicsPathAdapter();
- }
-
- public override void Dispose()
- {
- while (_clipStack.Count != 0)
- PopClip();
- if (_releaseGraphics)
- _g.Dispose();
- }
-
-
- #region Delegate graphics methods
-
- public override void DrawLine(RPen pen, double x1, double y1, double x2, double y2)
- {
- x1 = (int)x1;
- x2 = (int)x2;
- y1 = (int)y1;
- y2 = (int)y2;
-
- var adj = pen.Width;
- if (Math.Abs(x1 - x2) < .1 && Math.Abs(adj % 2 - 1) < .1)
- {
- x1 += .5;
- x2 += .5;
- }
- if (Math.Abs(y1 - y2) < .1 && Math.Abs(adj % 2 - 1) < .1)
- {
- y1 += .5;
- y2 += .5;
- }
-
- _g.DrawLine(((PenAdapter)pen).CreatePen(), new Point(x1, y1), new Point(x2, y2));
- }
-
- public override void DrawRectangle(RPen pen, double x, double y, double width, double height)
- {
- var adj = pen.Width;
- if (Math.Abs(adj % 2 - 1) < .1)
- {
- x += .5;
- y += .5;
- }
- _g.DrawRectangle(((PenAdapter) pen).CreatePen(), new Rect(x, y, width, height));
- }
-
- public override void DrawRectangle(RBrush brush, double x, double y, double width, double height)
- {
- _g.FillRectangle(((BrushAdapter) brush).Brush, new Rect(x, y, width, height));
- }
-
- public override void DrawImage(RImage image, RRect destRect, RRect srcRect)
- {
- _g.DrawImage(((ImageAdapter) image).Image, 1, Util.Convert(srcRect), Util.Convert(destRect));
- }
-
- public override void DrawImage(RImage image, RRect destRect)
- {
- _g.DrawImage(((ImageAdapter) image).Image, 1, new Rect(0, 0, image.Width, image.Height),
- Util.Convert(destRect));
- }
-
- public override void DrawPath(RPen pen, RGraphicsPath path)
- {
- _g.DrawGeometry(null, ((PenAdapter)pen).CreatePen(), ((GraphicsPathAdapter)path).GetClosedGeometry());
- }
-
- public override void DrawPath(RBrush brush, RGraphicsPath path)
- {
- _g.DrawGeometry(((BrushAdapter)brush).Brush, null, ((GraphicsPathAdapter)path).GetClosedGeometry());
- }
-
- public override void DrawPolygon(RBrush brush, RPoint[] points)
- {
- if (points != null && points.Length > 0)
- {
- var g = new StreamGeometry();
- using (var context = g.Open())
- {
- context.BeginFigure(Util.Convert(points[0]), true);
- for (int i = 1; i < points.Length; i++)
- context.LineTo(Util.Convert(points[i]));
- context.EndFigure(false);
- }
-
- _g.DrawGeometry(((BrushAdapter)brush).Brush, null, g);
- }
- }
-
- #endregion
- }
-}
\ No newline at end of file
diff --git a/src/Avalonia.HtmlRenderer/Adapters/GraphicsPathAdapter.cs b/src/Avalonia.HtmlRenderer/Adapters/GraphicsPathAdapter.cs
deleted file mode 100644
index f448c0ce09..0000000000
--- a/src/Avalonia.HtmlRenderer/Adapters/GraphicsPathAdapter.cs
+++ /dev/null
@@ -1,67 +0,0 @@
-// "Therefore those skilled at the unorthodox
-// are infinite as heaven and earth,
-// inexhaustible as the great rivers.
-// When they come to an end,
-// they begin again,
-// like the days and months;
-// they die and are reborn,
-// like the four seasons."
-//
-// - Sun Tsu,
-// "The Art of War"
-
-using Avalonia;
-using Avalonia.Media;
-using TheArtOfDev.HtmlRenderer.Adapters;
-
-namespace TheArtOfDev.HtmlRenderer.Avalonia.Adapters
-{
- ///
- /// Adapter for Avalonia graphics path object for core.
- ///
- internal sealed class GraphicsPathAdapter : RGraphicsPath
- {
- ///
- /// The actual Avalonia graphics geometry instance.
- ///
- private readonly StreamGeometry _geometry = new StreamGeometry();
-
- ///
- /// The context used in Avalonia geometry to render path
- ///
- private readonly StreamGeometryContext _geometryContext;
-
- public GraphicsPathAdapter()
- {
- _geometryContext = _geometry.Open();
- }
-
- public override void Start(double x, double y)
- {
- _geometryContext.BeginFigure(new Point(x, y), true);
- }
-
- public override void LineTo(double x, double y)
- {
- _geometryContext.LineTo(new Point(x, y));
- }
-
- public override void ArcTo(double x, double y, double size, Corner corner)
- {
- _geometryContext.ArcTo(new Point(x, y), new Size(size, size), 0, false, SweepDirection.Clockwise);
- }
-
- ///
- /// Close the geometry to so no more path adding is allowed and return the instance so it can be rendered.
- ///
- public StreamGeometry GetClosedGeometry()
- {
- _geometryContext.EndFigure(true);
- _geometryContext.Dispose();
- return _geometry;
- }
-
- public override void Dispose()
- { }
- }
-}
\ No newline at end of file
diff --git a/src/Avalonia.HtmlRenderer/Adapters/ImageAdapter.cs b/src/Avalonia.HtmlRenderer/Adapters/ImageAdapter.cs
deleted file mode 100644
index 3ee0b40771..0000000000
--- a/src/Avalonia.HtmlRenderer/Adapters/ImageAdapter.cs
+++ /dev/null
@@ -1,52 +0,0 @@
-// "Therefore those skilled at the unorthodox
-// are infinite as heaven and earth,
-// inexhaustible as the great rivers.
-// When they come to an end,
-// they begin again,
-// like the days and months;
-// they die and are reborn,
-// like the four seasons."
-//
-// - Sun Tsu,
-// "The Art of War"
-
-using Avalonia.Media.Imaging;
-using TheArtOfDev.HtmlRenderer.Adapters;
-
-namespace TheArtOfDev.HtmlRenderer.Avalonia.Adapters
-{
- ///
- /// Adapter for Avalonia Image object for core.
- ///
- internal sealed class ImageAdapter : RImage
- {
- ///
- /// the underline Avalonia image.
- ///
- private readonly Bitmap _image;
-
- ///
- /// Init.
- ///
- public ImageAdapter(Bitmap image)
- {
- _image = image;
- }
-
- ///
- /// the underline Avalonia image.
- ///
- public Bitmap Image => _image;
-
- public override double Width => _image.PixelWidth;
-
- public override double Height => _image.PixelHeight;
-
- public override void Dispose()
- {
- //TODO: Implement image disposal
- /*if (_image.StreamSource != null)
- _image.StreamSource.Dispose();*/
- }
- }
-}
\ No newline at end of file
diff --git a/src/Avalonia.HtmlRenderer/Adapters/PenAdapter.cs b/src/Avalonia.HtmlRenderer/Adapters/PenAdapter.cs
deleted file mode 100644
index 42025afc63..0000000000
--- a/src/Avalonia.HtmlRenderer/Adapters/PenAdapter.cs
+++ /dev/null
@@ -1,79 +0,0 @@
-// "Therefore those skilled at the unorthodox
-// are infinite as heaven and earth,
-// inexhaustible as the great rivers.
-// When they come to an end,
-// they begin again,
-// like the days and months;
-// they die and are reborn,
-// like the four seasons."
-//
-// - Sun Tsu,
-// "The Art of War"
-
-using System.Collections.Generic;
-using Avalonia.Media;
-using TheArtOfDev.HtmlRenderer.Adapters;
-using TheArtOfDev.HtmlRenderer.Adapters.Entities;
-
-namespace TheArtOfDev.HtmlRenderer.Avalonia.Adapters
-{
- ///
- /// Adapter for Avalonia pens objects for core.
- ///
- internal sealed class PenAdapter : RPen
- {
- ///
- /// The actual Avalonia brush instance.
- ///
- private readonly IBrush _brush;
-
- ///
- /// the width of the pen
- ///
- private double _width;
-
- private DashStyle _dashStyle;
-
- ///
- /// the dash style of the pen
- ///
- //private DashStyle _dashStyle = DashStyles.Solid;
-
- ///
- /// Init.
- ///
- public PenAdapter(IBrush brush)
- {
- _brush = brush;
- }
-
- public override double Width
- {
- get { return _width; }
- set { _width = value; }
- }
-
- public override RDashStyle DashStyle
- {
- set { DashStyles.TryGetValue(value, out _dashStyle); }
- }
-
- private static readonly Dictionary DashStyles = new Dictionary
- {
- {RDashStyle.Solid,null },
- {RDashStyle.Dash, global::Avalonia.Media.DashStyle.Dash },
- {RDashStyle.DashDot, global::Avalonia.Media.DashStyle.DashDot },
- {RDashStyle.DashDotDot, global::Avalonia.Media.DashStyle.DashDotDot },
- {RDashStyle.Dot, global::Avalonia.Media.DashStyle.Dot }
- };
-
- ///
- /// Create the actual Avalonia pen instance.
- ///
- public Pen CreatePen()
- {
- var pen = new Pen(_brush, _width, _dashStyle);
- return pen;
- }
- }
-}
\ No newline at end of file
diff --git a/src/Avalonia.HtmlRenderer/Avalonia.HtmlRenderer.csproj b/src/Avalonia.HtmlRenderer/Avalonia.HtmlRenderer.csproj
deleted file mode 100644
index 6e65264db0..0000000000
--- a/src/Avalonia.HtmlRenderer/Avalonia.HtmlRenderer.csproj
+++ /dev/null
@@ -1,24 +0,0 @@
-
-
- netstandard2.0
- False
- False
- CS0436
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/Avalonia.HtmlRenderer/Avalonia.HtmlRenderer.csproj.DotSettings b/src/Avalonia.HtmlRenderer/Avalonia.HtmlRenderer.csproj.DotSettings
deleted file mode 100644
index 73e96563f9..0000000000
--- a/src/Avalonia.HtmlRenderer/Avalonia.HtmlRenderer.csproj.DotSettings
+++ /dev/null
@@ -1,2 +0,0 @@
-
- CSharp60
\ No newline at end of file
diff --git a/src/Avalonia.HtmlRenderer/Compat/Api.cs b/src/Avalonia.HtmlRenderer/Compat/Api.cs
deleted file mode 100644
index d4f4c6abbe..0000000000
--- a/src/Avalonia.HtmlRenderer/Compat/Api.cs
+++ /dev/null
@@ -1,16 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Text;
-
-namespace System.Net
-{
- class WebException : Exception
- {
- public object Response { get; set; }
- }
-
- class HttpWebResponse
- {
- public HttpStatusCode StatusCode { get; set; }
- }
-}
diff --git a/src/Avalonia.HtmlRenderer/Compat/Attributes.cs b/src/Avalonia.HtmlRenderer/Compat/Attributes.cs
deleted file mode 100644
index 311b2ae4e8..0000000000
--- a/src/Avalonia.HtmlRenderer/Compat/Attributes.cs
+++ /dev/null
@@ -1,28 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-internal class CategoryAttribute : Attribute
-{
- public CategoryAttribute(string s)
- {
-
- }
-}
-internal class DescriptionAttribute : Attribute
-{
- public DescriptionAttribute(string s)
- {
-
- }
-}
-
-internal class BrowsableAttribute : Attribute
-{
- public BrowsableAttribute(bool b)
- {
-
- }
-}
\ No newline at end of file
diff --git a/src/Avalonia.HtmlRenderer/Compat/ThreadPool.cs b/src/Avalonia.HtmlRenderer/Compat/ThreadPool.cs
deleted file mode 100644
index 9a664745a2..0000000000
--- a/src/Avalonia.HtmlRenderer/Compat/ThreadPool.cs
+++ /dev/null
@@ -1,22 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using TheArtOfDev.HtmlRenderer.Core.Handlers;
-
-namespace System.Threading
-{
- class ThreadPool
- {
- public static void QueueUserWorkItem(Action
-
- {5fb2b005-0a7f-4dad-add4-3ed01444e63d}
- Avalonia.HtmlRenderer
-
{62024b2d-53eb-4638-b26b-85eeaa54866e}
Avalonia.Input
diff --git a/src/tools/Avalonia.Designer.HostApp/Avalonia.Designer.HostApp.csproj b/src/tools/Avalonia.Designer.HostApp/Avalonia.Designer.HostApp.csproj
index 5bb4b9dd4a..6ef1e1315e 100644
--- a/src/tools/Avalonia.Designer.HostApp/Avalonia.Designer.HostApp.csproj
+++ b/src/tools/Avalonia.Designer.HostApp/Avalonia.Designer.HostApp.csproj
@@ -12,7 +12,6 @@
-