Quellcode durchsuchen

fix: Address reviw

Giuseppe Lippolis vor 2 Jahren
Ursprung
Commit
2aa79269e8

+ 2 - 2
samples/ControlCatalog/Pages/AutoCompleteBoxPage.xaml.cs

@@ -109,8 +109,8 @@ namespace ControlCatalog.Pages
         {
         {
             this.InitializeComponent();
             this.InitializeComponent();
 
 
-            States = AutoCompleteBoxPage.BuildAllStates();
-            Sentences = AutoCompleteBoxPage.BuildAllSentences();
+            States = BuildAllStates();
+            Sentences = BuildAllSentences();
 
 
             foreach (AutoCompleteBox box in GetAllAutoCompleteBox().Where(x => x.Name != "CustomAutocompleteBox"))
             foreach (AutoCompleteBox box in GetAllAutoCompleteBox().Where(x => x.Name != "CustomAutocompleteBox"))
             {
             {

+ 1 - 1
samples/ControlCatalog/Pages/CompositionPage.axaml.cs

@@ -22,7 +22,7 @@ public partial class CompositionPage : UserControl
     protected override void OnAttachedToVisualTree(VisualTreeAttachmentEventArgs e)
     protected override void OnAttachedToVisualTree(VisualTreeAttachmentEventArgs e)
     {
     {
         base.OnAttachedToVisualTree(e);
         base.OnAttachedToVisualTree(e);
-        this.Get<ItemsControl>("Items").Items = CompositionPage.CreateColorItems();
+        this.Get<ItemsControl>("Items").Items = CreateColorItems();
     }
     }
 
 
     private static List<CompositionPageColorItem> CreateColorItems()
     private static List<CompositionPageColorItem> CreateColorItems()

+ 1 - 1
samples/ControlCatalog/Pages/ImagePage.xaml.cs

@@ -52,7 +52,7 @@ namespace ControlCatalog.Pages
                 var comboxBox = (ComboBox)sender;
                 var comboxBox = (ComboBox)sender;
                 if (_croppedImage.Source is CroppedBitmap croppedBitmap)
                 if (_croppedImage.Source is CroppedBitmap croppedBitmap)
                 {
                 {
-                    croppedBitmap.SourceRect = ImagePage.GetCropRect(comboxBox.SelectedIndex);
+                    croppedBitmap.SourceRect = GetCropRect(comboxBox.SelectedIndex);
                 }
                 }
                 
                 
             }
             }

+ 10 - 10
samples/ControlCatalog/Pages/OpenGlPage.xaml.cs

@@ -256,7 +256,7 @@ namespace ControlCatalog.Pages
 
 
         protected unsafe override void OnOpenGlInit(GlInterface GL, int fb)
         protected unsafe override void OnOpenGlInit(GlInterface GL, int fb)
         {
         {
-            OpenGlPageControl.CheckError(GL);
+            CheckError(GL);
 
 
             Info = $"Renderer: {GL.GetString(GL_RENDERER)} Version: {GL.GetString(GL_VERSION)}";
             Info = $"Renderer: {GL.GetString(GL_RENDERER)} Version: {GL.GetString(GL_VERSION)}";
             
             
@@ -277,13 +277,13 @@ namespace ControlCatalog.Pages
             GL.BindAttribLocationString(_shaderProgram, positionLocation, "aPos");
             GL.BindAttribLocationString(_shaderProgram, positionLocation, "aPos");
             GL.BindAttribLocationString(_shaderProgram, normalLocation, "aNormal");
             GL.BindAttribLocationString(_shaderProgram, normalLocation, "aNormal");
             Console.WriteLine(GL.LinkProgramAndGetError(_shaderProgram));
             Console.WriteLine(GL.LinkProgramAndGetError(_shaderProgram));
-            OpenGlPageControl.CheckError(GL);
+            CheckError(GL);
 
 
             // Create the vertex buffer object (VBO) for the vertex data.
             // Create the vertex buffer object (VBO) for the vertex data.
             _vertexBufferObject = GL.GenBuffer();
             _vertexBufferObject = GL.GenBuffer();
             // Bind the VBO and copy the vertex data into it.
             // Bind the VBO and copy the vertex data into it.
             GL.BindBuffer(GL_ARRAY_BUFFER, _vertexBufferObject);
             GL.BindBuffer(GL_ARRAY_BUFFER, _vertexBufferObject);
-            OpenGlPageControl.CheckError(GL);
+            CheckError(GL);
             var vertexSize = Marshal.SizeOf<Vertex>();
             var vertexSize = Marshal.SizeOf<Vertex>();
             fixed (void* pdata = _points)
             fixed (void* pdata = _points)
                 GL.BufferData(GL_ARRAY_BUFFER, new IntPtr(_points.Length * vertexSize),
                 GL.BufferData(GL_ARRAY_BUFFER, new IntPtr(_points.Length * vertexSize),
@@ -291,21 +291,21 @@ namespace ControlCatalog.Pages
 
 
             _indexBufferObject = GL.GenBuffer();
             _indexBufferObject = GL.GenBuffer();
             GL.BindBuffer(GL_ELEMENT_ARRAY_BUFFER, _indexBufferObject);
             GL.BindBuffer(GL_ELEMENT_ARRAY_BUFFER, _indexBufferObject);
-            OpenGlPageControl.CheckError(GL);
+            CheckError(GL);
             fixed (void* pdata = _indices)
             fixed (void* pdata = _indices)
                 GL.BufferData(GL_ELEMENT_ARRAY_BUFFER, new IntPtr(_indices.Length * sizeof(ushort)), new IntPtr(pdata),
                 GL.BufferData(GL_ELEMENT_ARRAY_BUFFER, new IntPtr(_indices.Length * sizeof(ushort)), new IntPtr(pdata),
                     GL_STATIC_DRAW);
                     GL_STATIC_DRAW);
-            OpenGlPageControl.CheckError(GL);
+            CheckError(GL);
             _vertexArrayObject = GL.GenVertexArray();
             _vertexArrayObject = GL.GenVertexArray();
             GL.BindVertexArray(_vertexArrayObject);
             GL.BindVertexArray(_vertexArrayObject);
-            OpenGlPageControl.CheckError(GL);
+            CheckError(GL);
             GL.VertexAttribPointer(positionLocation, 3, GL_FLOAT,
             GL.VertexAttribPointer(positionLocation, 3, GL_FLOAT,
                 0, vertexSize, IntPtr.Zero);
                 0, vertexSize, IntPtr.Zero);
             GL.VertexAttribPointer(normalLocation, 3, GL_FLOAT,
             GL.VertexAttribPointer(normalLocation, 3, GL_FLOAT,
                 0, vertexSize, new IntPtr(12));
                 0, vertexSize, new IntPtr(12));
             GL.EnableVertexAttribArray(positionLocation);
             GL.EnableVertexAttribArray(positionLocation);
             GL.EnableVertexAttribArray(normalLocation);
             GL.EnableVertexAttribArray(normalLocation);
-            OpenGlPageControl.CheckError(GL);
+            CheckError(GL);
 
 
         }
         }
 
 
@@ -339,7 +339,7 @@ namespace ControlCatalog.Pages
             GL.BindBuffer(GL_ELEMENT_ARRAY_BUFFER, _indexBufferObject);
             GL.BindBuffer(GL_ELEMENT_ARRAY_BUFFER, _indexBufferObject);
             GL.BindVertexArray(_vertexArrayObject);
             GL.BindVertexArray(_vertexArrayObject);
             GL.UseProgram(_shaderProgram);
             GL.UseProgram(_shaderProgram);
-            OpenGlPageControl.CheckError(GL);
+            CheckError(GL);
             var projection =
             var projection =
                 Matrix4x4.CreatePerspectiveFieldOfView((float)(Math.PI / 4), (float)(Bounds.Width / Bounds.Height),
                 Matrix4x4.CreatePerspectiveFieldOfView((float)(Math.PI / 4), (float)(Bounds.Width / Bounds.Height),
                     0.01f, 1000);
                     0.01f, 1000);
@@ -361,10 +361,10 @@ namespace ControlCatalog.Pages
             GL.Uniform1f(minYLoc, _minY);
             GL.Uniform1f(minYLoc, _minY);
             GL.Uniform1f(timeLoc, (float)St.Elapsed.TotalSeconds);
             GL.Uniform1f(timeLoc, (float)St.Elapsed.TotalSeconds);
             GL.Uniform1f(discoLoc, _disco);
             GL.Uniform1f(discoLoc, _disco);
-            OpenGlPageControl.CheckError(GL);
+            CheckError(GL);
             GL.DrawElements(GL_TRIANGLES, _indices.Length, GL_UNSIGNED_SHORT, IntPtr.Zero);
             GL.DrawElements(GL_TRIANGLES, _indices.Length, GL_UNSIGNED_SHORT, IntPtr.Zero);
 
 
-            OpenGlPageControl.CheckError(GL);
+            CheckError(GL);
             if (_disco > 0.01)
             if (_disco > 0.01)
                 Dispatcher.UIThread.Post(InvalidateVisual, DispatcherPriority.Background);
                 Dispatcher.UIThread.Post(InvalidateVisual, DispatcherPriority.Background);
         }
         }

+ 3 - 3
samples/ControlCatalog/Pages/ScreenPage.cs

@@ -55,11 +55,11 @@ namespace ControlCatalog.Pages
                     context.DrawRectangle(p, workingAreaRect);
                     context.DrawRectangle(p, workingAreaRect);
 
 
 
 
-                    var formattedText = ScreenPage.CreateFormattedText($"Bounds: {screen.Bounds.Width}:{screen.Bounds.Height}");
+                    var formattedText = CreateFormattedText($"Bounds: {screen.Bounds.Width}:{screen.Bounds.Height}");
                     context.DrawText(formattedText, boundsRect.Position.WithY(boundsRect.Size.Height));
                     context.DrawText(formattedText, boundsRect.Position.WithY(boundsRect.Size.Height));
 
 
                     formattedText =
                     formattedText =
-                        ScreenPage.CreateFormattedText($"WorkArea: {screen.WorkingArea.Width}:{screen.WorkingArea.Height}");
+                        CreateFormattedText($"WorkArea: {screen.WorkingArea.Width}:{screen.WorkingArea.Height}");
                     context.DrawText(formattedText, boundsRect.Position.WithY(boundsRect.Size.Height + 20));
                     context.DrawText(formattedText, boundsRect.Position.WithY(boundsRect.Size.Height + 20));
 
 
                     formattedText = CreateFormattedText($"Scaling: {screen.Scaling * 100}%");
                     formattedText = CreateFormattedText($"Scaling: {screen.Scaling * 100}%");
@@ -70,7 +70,7 @@ namespace ControlCatalog.Pages
                     context.DrawText(formattedText, boundsRect.Position.WithY(boundsRect.Size.Height + 60));
                     context.DrawText(formattedText, boundsRect.Position.WithY(boundsRect.Size.Height + 60));
 
 
                     formattedText =
                     formattedText =
-                        ScreenPage.CreateFormattedText(
+                        CreateFormattedText(
                             $"Current: {screen.Equals(w.Screens.ScreenFromBounds(new PixelRect(w.Position, PixelSize.FromSize(w.Bounds.Size, scaling))))}");
                             $"Current: {screen.Equals(w.Screens.ScreenFromBounds(new PixelRect(w.Position, PixelSize.FromSize(w.Bounds.Size, scaling))))}");
                     context.DrawText(formattedText, boundsRect.Position.WithY(boundsRect.Size.Height + 80));
                     context.DrawText(formattedText, boundsRect.Position.WithY(boundsRect.Size.Height + 80));
                 }
                 }

+ 2 - 2
samples/ControlCatalog/Pages/TabControlPage.xaml.cs

@@ -25,13 +25,13 @@ namespace ControlCatalog.Pages
                     {
                     {
                         Header = "Arch",
                         Header = "Arch",
                         Text = "This is the first templated tab page.",
                         Text = "This is the first templated tab page.",
-                        Image = TabControlPage.LoadBitmap("avares://ControlCatalog/Assets/delicate-arch-896885_640.jpg"),
+                        Image = LoadBitmap("avares://ControlCatalog/Assets/delicate-arch-896885_640.jpg"),
                     },
                     },
                     new TabControlPageViewModelItem
                     new TabControlPageViewModelItem
                     {
                     {
                         Header = "Leaf",
                         Header = "Leaf",
                         Text = "This is the second templated tab page.",
                         Text = "This is the second templated tab page.",
-                        Image = TabControlPage.LoadBitmap("avares://ControlCatalog/Assets/maple-leaf-888807_640.jpg"),
+                        Image = LoadBitmap("avares://ControlCatalog/Assets/maple-leaf-888807_640.jpg"),
                     },
                     },
                     new TabControlPageViewModelItem
                     new TabControlPageViewModelItem
                     {
                     {

+ 1 - 1
src/Avalonia.Base/Input/KeyboardDevice.cs

@@ -67,7 +67,7 @@ namespace Avalonia.Input
         {
         {
             if (newElement == null && oldElement != null)
             if (newElement == null && oldElement != null)
             {
             {
-                KeyboardDevice.ClearFocusWithinAncestors(oldElement);
+                ClearFocusWithinAncestors(oldElement);
                 return;
                 return;
             }
             }
             
             

+ 6 - 6
src/Avalonia.Base/Rendering/Composition/Drawing/CompositionDrawingContext.cs

@@ -55,7 +55,7 @@ internal class CompositionDrawingContext : IDrawingContextImpl, IDrawingContextW
 
 
         if (next == null || !next.Item.Equals(Transform, brush, pen, geometry))
         if (next == null || !next.Item.Equals(Transform, brush, pen, geometry))
         {
         {
-            Add(new GeometryNode(Transform, brush, pen, geometry, CompositionDrawingContext.CreateChildScene(brush)));
+            Add(new GeometryNode(Transform, brush, pen, geometry, CreateChildScene(brush)));
         }
         }
         else
         else
         {
         {
@@ -94,7 +94,7 @@ internal class CompositionDrawingContext : IDrawingContextImpl, IDrawingContextW
 
 
         if (next == null || !next.Item.Equals(Transform, pen, p1, p2))
         if (next == null || !next.Item.Equals(Transform, pen, p1, p2))
         {
         {
-            Add(new LineNode(Transform, pen, p1, p2, CompositionDrawingContext.CreateChildScene(pen.Brush)));
+            Add(new LineNode(Transform, pen, p1, p2, CreateChildScene(pen.Brush)));
         }
         }
         else
         else
         {
         {
@@ -110,7 +110,7 @@ internal class CompositionDrawingContext : IDrawingContextImpl, IDrawingContextW
 
 
         if (next == null || !next.Item.Equals(Transform, brush, pen, rect, boxShadows))
         if (next == null || !next.Item.Equals(Transform, brush, pen, rect, boxShadows))
         {
         {
-            Add(new RectangleNode(Transform, brush, pen, rect, boxShadows, CompositionDrawingContext.CreateChildScene(brush)));
+            Add(new RectangleNode(Transform, brush, pen, rect, boxShadows, CreateChildScene(brush)));
         }
         }
         else
         else
         {
         {
@@ -139,7 +139,7 @@ internal class CompositionDrawingContext : IDrawingContextImpl, IDrawingContextW
 
 
         if (next == null || !next.Item.Equals(Transform, brush, pen, rect))
         if (next == null || !next.Item.Equals(Transform, brush, pen, rect))
         {
         {
-            Add(new EllipseNode(Transform, brush, pen, rect, CompositionDrawingContext.CreateChildScene(brush)));
+            Add(new EllipseNode(Transform, brush, pen, rect, CreateChildScene(brush)));
         }
         }
         else
         else
         {
         {
@@ -165,7 +165,7 @@ internal class CompositionDrawingContext : IDrawingContextImpl, IDrawingContextW
 
 
         if (next == null || !next.Item.Equals(Transform, foreground, glyphRun))
         if (next == null || !next.Item.Equals(Transform, foreground, glyphRun))
         {
         {
-            Add(new GlyphRunNode(Transform, foreground, glyphRun, CompositionDrawingContext.CreateChildScene(foreground)));
+            Add(new GlyphRunNode(Transform, foreground, glyphRun, CreateChildScene(foreground)));
         }
         }
 
 
         else
         else
@@ -324,7 +324,7 @@ internal class CompositionDrawingContext : IDrawingContextImpl, IDrawingContextW
 
 
         if (next == null || !next.Item.Equals(mask, bounds))
         if (next == null || !next.Item.Equals(mask, bounds))
         {
         {
-            Add(new OpacityMaskNode(mask, bounds, CompositionDrawingContext.CreateChildScene(mask)));
+            Add(new OpacityMaskNode(mask, bounds, CreateChildScene(mask)));
         }
         }
         else
         else
         {
         {

+ 2 - 2
src/Avalonia.Base/Rendering/DeferredRenderer.cs

@@ -277,13 +277,13 @@ namespace Avalonia.Rendering
         /// <inheritdoc/>
         /// <inheritdoc/>
         Size IVisualBrushRenderer.GetRenderTargetSize(IVisualBrush brush)
         Size IVisualBrushRenderer.GetRenderTargetSize(IVisualBrush brush)
         {
         {
-            return DeferredRenderer.TryGetChildScene(_currentDraw)?.Size ?? Size.Empty;
+            return TryGetChildScene(_currentDraw)?.Size ?? Size.Empty;
         }
         }
 
 
         /// <inheritdoc/>
         /// <inheritdoc/>
         void IVisualBrushRenderer.RenderVisualBrush(IDrawingContextImpl context, IVisualBrush brush)
         void IVisualBrushRenderer.RenderVisualBrush(IDrawingContextImpl context, IVisualBrush brush)
         {
         {
-            var childScene = DeferredRenderer.TryGetChildScene(_currentDraw);
+            var childScene = TryGetChildScene(_currentDraw);
 
 
             if (childScene != null)
             if (childScene != null)
             {
             {

+ 2 - 2
src/Avalonia.Base/Rendering/SceneGraph/SceneBuilder.cs

@@ -18,7 +18,7 @@ namespace Avalonia.Rendering.SceneGraph
             _ = scene ?? throw new ArgumentNullException(nameof(scene));
             _ = scene ?? throw new ArgumentNullException(nameof(scene));
             Dispatcher.UIThread.VerifyAccess();
             Dispatcher.UIThread.VerifyAccess();
 
 
-            SceneBuilder.UpdateSize(scene);
+            UpdateSize(scene);
             scene.Layers.GetOrAdd(scene.Root.Visual);
             scene.Layers.GetOrAdd(scene.Root.Visual);
 
 
             using (var impl = new DeferredDrawingContextImpl(this, scene.Layers))
             using (var impl = new DeferredDrawingContextImpl(this, scene.Layers))
@@ -46,7 +46,7 @@ namespace Avalonia.Rendering.SceneGraph
 
 
             if (visual == scene.Root.Visual)
             if (visual == scene.Root.Visual)
             {
             {
-                SceneBuilder.UpdateSize(scene);
+                UpdateSize(scene);
             }
             }
 
 
             if (visual.VisualRoot == scene.Root.Visual)
             if (visual.VisualRoot == scene.Root.Visual)

+ 2 - 2
src/Avalonia.Controls.ColorPicker/ColorSlider/ColorSlider.cs

@@ -180,7 +180,7 @@ namespace Avalonia.Controls.Primitives
 
 
                 if (IsRoundingEnabled)
                 if (IsRoundingEnabled)
                 {
                 {
-                    hsvColor = ColorSlider.RoundComponentValues(hsvColor);
+                    hsvColor = RoundComponentValues(hsvColor);
                 }
                 }
 
 
                 // Note: Components converted into a usable range for the user
                 // Note: Components converted into a usable range for the user
@@ -305,7 +305,7 @@ namespace Avalonia.Controls.Primitives
 
 
             if (IsRoundingEnabled)
             if (IsRoundingEnabled)
             {
             {
-                hsvColor = ColorSlider.RoundComponentValues(hsvColor);
+                hsvColor = RoundComponentValues(hsvColor);
             }
             }
 
 
             return (rgbColor, hsvColor);
             return (rgbColor, hsvColor);

+ 1 - 1
src/Avalonia.Controls.ColorPicker/ColorSpectrum/ColorSpectrum.cs

@@ -1074,7 +1074,7 @@ namespace Avalonia.Controls.Primitives
                     {
                     {
                         for (int y = pixelDimension - 1; y >= 0; --y)
                         for (int y = pixelDimension - 1; y >= 0; --y)
                         {
                         {
-                            ColorSpectrum.FillPixelForBox(
+                            FillPixelForBox(
                                 x, y, hsv, pixelDimension, components, minHue, maxHue, minSaturation, maxSaturation, minValue, maxValue,
                                 x, y, hsv, pixelDimension, components, minHue, maxHue, minSaturation, maxSaturation, minValue, maxValue,
                                 bgraMinPixelData, bgraMiddle1PixelData, bgraMiddle2PixelData, bgraMiddle3PixelData, bgraMiddle4PixelData, bgraMaxPixelData,
                                 bgraMinPixelData, bgraMiddle1PixelData, bgraMiddle2PixelData, bgraMiddle3PixelData, bgraMiddle4PixelData, bgraMaxPixelData,
                                 newHsvValues);
                                 newHsvValues);

+ 4 - 4
src/Avalonia.Diagnostics/Diagnostics/ViewModels/ControlDetailsViewModel.cs

@@ -82,7 +82,7 @@ namespace Avalonia.Diagnostics.ViewModels
                             {
                             {
                                 var setterValue = regularSetter.Value;
                                 var setterValue = regularSetter.Value;
 
 
-                                var resourceInfo = ControlDetailsViewModel.GetResourceInfo(setterValue);
+                                var resourceInfo =  GetResourceInfo(setterValue);
 
 
                                 SetterViewModel setterVm;
                                 SetterViewModel setterVm;
 
 
@@ -95,7 +95,7 @@ namespace Avalonia.Diagnostics.ViewModels
                                 }
                                 }
                                 else
                                 else
                                 {
                                 {
-                                    var isBinding = ControlDetailsViewModel.IsBinding(setterValue);
+                                    var isBinding = IsBinding(setterValue);
 
 
                                     if (isBinding)
                                     if (isBinding)
                                     {
                                     {
@@ -509,8 +509,8 @@ namespace Avalonia.Diagnostics.ViewModels
             SelectedEntityName = entityName;
             SelectedEntityName = entityName;
             SelectedEntityType = o.ToString();
             SelectedEntityType = o.ToString();
 
 
-            var properties = ControlDetailsViewModel.GetAvaloniaProperties(o)
-                .Concat(ControlDetailsViewModel.GetClrProperties(o, _showImplementedInterfaces))
+            var properties = GetAvaloniaProperties(o)
+                .Concat(GetClrProperties(o, _showImplementedInterfaces))
                 .OrderBy(x => x, PropertyComparer.Instance)
                 .OrderBy(x => x, PropertyComparer.Instance)
                 .ThenBy(x => x.Name)
                 .ThenBy(x => x.Name)
                 .ToArray();
                 .ToArray();

+ 1 - 1
src/Avalonia.X11/XI2Manager.cs

@@ -197,7 +197,7 @@ namespace Avalonia.X11
             }
             }
         }
         }
 
 
-        static void OnEnterLeaveEvent(IXI2Client client, ref XIEnterLeaveEvent ev)
+        void OnEnterLeaveEvent(IXI2Client client, ref XIEnterLeaveEvent ev)
         {
         {
             if (ev.evtype == XiEventType.XI_Leave)
             if (ev.evtype == XiEventType.XI_Leave)
             {
             {

+ 1 - 3
src/Markup/Avalonia.Markup.Xaml/Converters/AvaloniaPropertyTypeConverter.cs

@@ -3,7 +3,6 @@ using System.ComponentModel;
 using System.Globalization;
 using System.Globalization;
 using Avalonia.Controls;
 using Avalonia.Controls;
 using Avalonia.Logging;
 using Avalonia.Logging;
-using Avalonia.Markup.Parsers;
 using Avalonia.Markup.Xaml.Parsers;
 using Avalonia.Markup.Xaml.Parsers;
 using Avalonia.Markup.Xaml.Templates;
 using Avalonia.Markup.Xaml.Templates;
 using Avalonia.Styling;
 using Avalonia.Styling;
@@ -21,9 +20,8 @@ namespace Avalonia.Markup.Xaml.Converters
         public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value)
         public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value)
         {
         {
             var registry = AvaloniaPropertyRegistry.Instance;
             var registry = AvaloniaPropertyRegistry.Instance;
-            var parser = new PropertyParser();
             var (ns, owner, propertyName) = PropertyParser.Parse(new CharacterReader(((string)value).AsSpan()));
             var (ns, owner, propertyName) = PropertyParser.Parse(new CharacterReader(((string)value).AsSpan()));
-            var ownerType = AvaloniaPropertyTypeConverter.TryResolveOwnerByName(context, ns, owner);
+            var ownerType = TryResolveOwnerByName(context, ns, owner);
             var targetType = context.GetFirstParent<ControlTemplate>()?.TargetType ??
             var targetType = context.GetFirstParent<ControlTemplate>()?.TargetType ??
                 context.GetFirstParent<Style>()?.Selector?.TargetType ??
                 context.GetFirstParent<Style>()?.Selector?.TargetType ??
                 typeof(Control);
                 typeof(Control);

+ 4 - 6
tests/Avalonia.Markup.Xaml.UnitTests/MarkupExtensions/BindingExtensionTests.cs

@@ -1,6 +1,4 @@
 using System;
 using System;
-using System.Collections.Generic;
-using System.Text;
 using Avalonia.Controls;
 using Avalonia.Controls;
 using Avalonia.Controls.Presenters;
 using Avalonia.Controls.Presenters;
 using Avalonia.Controls.Primitives;
 using Avalonia.Controls.Primitives;
@@ -17,7 +15,7 @@ namespace Avalonia.Markup.Xaml.UnitTests.MarkupExtensions
         [Fact]
         [Fact]
         public void BindingExtension_Binds_To_Source()
         public void BindingExtension_Binds_To_Source()
         {
         {
-            using (BindingExtensionTests.StyledWindow())
+            using (StyledWindow())
             {
             {
                 var xaml = @"
                 var xaml = @"
 <Window xmlns='https://github.com/avaloniaui'
 <Window xmlns='https://github.com/avaloniaui'
@@ -41,7 +39,7 @@ namespace Avalonia.Markup.Xaml.UnitTests.MarkupExtensions
         [Fact]
         [Fact]
         public void BindingExtension_Binds_To_TargetNullValue()
         public void BindingExtension_Binds_To_TargetNullValue()
         {
         {
-            using (BindingExtensionTests.StyledWindow())
+            using (StyledWindow())
             {
             {
                 var xaml = @"
                 var xaml = @"
 <Window xmlns='https://github.com/avaloniaui'
 <Window xmlns='https://github.com/avaloniaui'
@@ -66,7 +64,7 @@ namespace Avalonia.Markup.Xaml.UnitTests.MarkupExtensions
         [Fact]
         [Fact]
         public void BindingExtension_TargetNullValue_UnsetByDefault()
         public void BindingExtension_TargetNullValue_UnsetByDefault()
         {
         {
-            using (BindingExtensionTests.StyledWindow())
+            using (StyledWindow())
             {
             {
                 var xaml = @"
                 var xaml = @"
 <Window xmlns='https://github.com/avaloniaui'
 <Window xmlns='https://github.com/avaloniaui'
@@ -143,7 +141,7 @@ namespace Avalonia.Markup.Xaml.UnitTests.MarkupExtensions
                 assetLoader: new MockAssetLoader(assets),
                 assetLoader: new MockAssetLoader(assets),
                 theme: () => new Styles
                 theme: () => new Styles
                 {
                 {
-                    BindingExtensionTests.WindowStyle(),
+                    WindowStyle(),
                 });
                 });
 
 
             return UnitTestApplication.Start(services);
             return UnitTestApplication.Start(services);

+ 4 - 4
tests/Avalonia.Markup.Xaml.UnitTests/MarkupExtensions/StaticResourceExtensionTests.cs

@@ -380,7 +380,7 @@ namespace Avalonia.Markup.Xaml.UnitTests.MarkupExtensions
         [Fact]
         [Fact]
         public void StaticResource_Can_Be_Assigned_To_Converter()
         public void StaticResource_Can_Be_Assigned_To_Converter()
         {
         {
-            using (StaticResourceExtensionTests.StyledWindow())
+            using (StyledWindow())
             {
             {
                 var xaml = @"
                 var xaml = @"
 <Window xmlns='https://github.com/avaloniaui'
 <Window xmlns='https://github.com/avaloniaui'
@@ -406,7 +406,7 @@ namespace Avalonia.Markup.Xaml.UnitTests.MarkupExtensions
         [Fact]
         [Fact]
         public void StaticResource_Can_Be_Assigned_To_Binding_Converter_In_DataTemplate()
         public void StaticResource_Can_Be_Assigned_To_Binding_Converter_In_DataTemplate()
         {
         {
-            using (StaticResourceExtensionTests.StyledWindow())
+            using (StyledWindow())
             {
             {
                 var xaml = @"
                 var xaml = @"
 <Window xmlns='https://github.com/avaloniaui'
 <Window xmlns='https://github.com/avaloniaui'
@@ -441,7 +441,7 @@ namespace Avalonia.Markup.Xaml.UnitTests.MarkupExtensions
         {
         {
             // this tests if IAmbientProviders in DataTemplate contexts are in correct order
             // this tests if IAmbientProviders in DataTemplate contexts are in correct order
             // if they wouldn't be, Purple brush would be bound to
             // if they wouldn't be, Purple brush would be bound to
-            using (StaticResourceExtensionTests.StyledWindow())
+            using (StyledWindow())
             {
             {
                 var xaml = @"
                 var xaml = @"
 <Window xmlns='https://github.com/avaloniaui'
 <Window xmlns='https://github.com/avaloniaui'
@@ -522,7 +522,7 @@ namespace Avalonia.Markup.Xaml.UnitTests.MarkupExtensions
         [Fact]
         [Fact]
         public void Automatically_Converts_Color_To_SolidColorBrush_From_Setter()
         public void Automatically_Converts_Color_To_SolidColorBrush_From_Setter()
         {
         {
-            using (StaticResourceExtensionTests.StyledWindow())
+            using (StyledWindow())
             {
             {
                 var xaml = @"
                 var xaml = @"
 <Window xmlns='https://github.com/avaloniaui'
 <Window xmlns='https://github.com/avaloniaui'

+ 0 - 33
tests/Avalonia.Markup.Xaml.UnitTests/Parsers/PropertyParserTests.cs

@@ -12,7 +12,6 @@ namespace Avalonia.Markup.Xaml.UnitTests.Parsers
         [Fact]
         [Fact]
         public void Parses_Name()
         public void Parses_Name()
         {
         {
-            var target = new PropertyParser();
             var reader = new CharacterReader("Foo".AsSpan());
             var reader = new CharacterReader("Foo".AsSpan());
             var (ns, owner, name) = PropertyParser.Parse(reader);
             var (ns, owner, name) = PropertyParser.Parse(reader);
 
 
@@ -24,7 +23,6 @@ namespace Avalonia.Markup.Xaml.UnitTests.Parsers
         [Fact]
         [Fact]
         public void Parses_Owner_And_Name()
         public void Parses_Owner_And_Name()
         {
         {
-            var target = new PropertyParser();
             var reader = new CharacterReader("Foo.Bar".AsSpan());
             var reader = new CharacterReader("Foo.Bar".AsSpan());
             var (ns, owner, name) = PropertyParser.Parse(reader);
             var (ns, owner, name) = PropertyParser.Parse(reader);
 
 
@@ -36,7 +34,6 @@ namespace Avalonia.Markup.Xaml.UnitTests.Parsers
         [Fact]
         [Fact]
         public void Parses_Namespace_Owner_And_Name()
         public void Parses_Namespace_Owner_And_Name()
         {
         {
-            var target = new PropertyParser();
             var reader = new CharacterReader("foo:Bar.Baz".AsSpan());
             var reader = new CharacterReader("foo:Bar.Baz".AsSpan());
             var (ns, owner, name) = PropertyParser.Parse(reader);
             var (ns, owner, name) = PropertyParser.Parse(reader);
 
 
@@ -48,7 +45,6 @@ namespace Avalonia.Markup.Xaml.UnitTests.Parsers
         [Fact]
         [Fact]
         public void Parses_Owner_And_Name_With_Parentheses()
         public void Parses_Owner_And_Name_With_Parentheses()
         {
         {
-            var target = new PropertyParser();
             var reader = new CharacterReader("(Foo.Bar)".AsSpan());
             var reader = new CharacterReader("(Foo.Bar)".AsSpan());
             var (ns, owner, name) = PropertyParser.Parse(reader);
             var (ns, owner, name) = PropertyParser.Parse(reader);
 
 
@@ -60,7 +56,6 @@ namespace Avalonia.Markup.Xaml.UnitTests.Parsers
         [Fact]
         [Fact]
         public void Parses_Namespace_Owner_And_Name_With_Parentheses()
         public void Parses_Namespace_Owner_And_Name_With_Parentheses()
         {
         {
-            var target = new PropertyParser();
             var reader = new CharacterReader("(foo:Bar.Baz)".AsSpan());
             var reader = new CharacterReader("(foo:Bar.Baz)".AsSpan());
             var (ns, owner, name) = PropertyParser.Parse(reader);
             var (ns, owner, name) = PropertyParser.Parse(reader);
 
 
@@ -72,8 +67,6 @@ namespace Avalonia.Markup.Xaml.UnitTests.Parsers
         [Fact]
         [Fact]
         public void Fails_With_Empty_String()
         public void Fails_With_Empty_String()
         {
         {
-            var target = new PropertyParser();
-
             var ex = Assert.Throws<ExpressionParseException>(() => PropertyParser.Parse(new CharacterReader(ReadOnlySpan<char>.Empty)));
             var ex = Assert.Throws<ExpressionParseException>(() => PropertyParser.Parse(new CharacterReader(ReadOnlySpan<char>.Empty)));
             Assert.Equal(0, ex.Column);
             Assert.Equal(0, ex.Column);
             Assert.Equal("Expected property name.", ex.Message);
             Assert.Equal("Expected property name.", ex.Message);
@@ -82,8 +75,6 @@ namespace Avalonia.Markup.Xaml.UnitTests.Parsers
         [Fact]
         [Fact]
         public void Fails_With_Only_Whitespace()
         public void Fails_With_Only_Whitespace()
         {
         {
-            var target = new PropertyParser();
-
             var ex = Assert.Throws<ExpressionParseException>(() => PropertyParser.Parse(new CharacterReader("  ".AsSpan())));
             var ex = Assert.Throws<ExpressionParseException>(() => PropertyParser.Parse(new CharacterReader("  ".AsSpan())));
             Assert.Equal(0, ex.Column);
             Assert.Equal(0, ex.Column);
             Assert.Equal("Unexpected ' '.", ex.Message);
             Assert.Equal("Unexpected ' '.", ex.Message);
@@ -92,8 +83,6 @@ namespace Avalonia.Markup.Xaml.UnitTests.Parsers
         [Fact]
         [Fact]
         public void Fails_With_Leading_Whitespace()
         public void Fails_With_Leading_Whitespace()
         {
         {
-            var target = new PropertyParser();
-            
             var ex = Assert.Throws<ExpressionParseException>(() => PropertyParser.Parse(new CharacterReader(" Foo".AsSpan())));
             var ex = Assert.Throws<ExpressionParseException>(() => PropertyParser.Parse(new CharacterReader(" Foo".AsSpan())));
             Assert.Equal(0, ex.Column);
             Assert.Equal(0, ex.Column);
             Assert.Equal("Unexpected ' '.", ex.Message);
             Assert.Equal("Unexpected ' '.", ex.Message);
@@ -102,8 +91,6 @@ namespace Avalonia.Markup.Xaml.UnitTests.Parsers
         [Fact]
         [Fact]
         public void Fails_With_Trailing_Whitespace()
         public void Fails_With_Trailing_Whitespace()
         {
         {
-            var target = new PropertyParser();
-            
             var ex = Assert.Throws<ExpressionParseException>(() => PropertyParser.Parse(new CharacterReader("Foo ".AsSpan())));
             var ex = Assert.Throws<ExpressionParseException>(() => PropertyParser.Parse(new CharacterReader("Foo ".AsSpan())));
             Assert.Equal(3, ex.Column);
             Assert.Equal(3, ex.Column);
             Assert.Equal("Unexpected ' '.", ex.Message);
             Assert.Equal("Unexpected ' '.", ex.Message);
@@ -112,8 +99,6 @@ namespace Avalonia.Markup.Xaml.UnitTests.Parsers
         [Fact]
         [Fact]
         public void Fails_With_Invalid_Property_Name()
         public void Fails_With_Invalid_Property_Name()
         {
         {
-            var target = new PropertyParser();
-            
             var ex = Assert.Throws<ExpressionParseException>(() => PropertyParser.Parse(new CharacterReader("123".AsSpan())));
             var ex = Assert.Throws<ExpressionParseException>(() => PropertyParser.Parse(new CharacterReader("123".AsSpan())));
             Assert.Equal(0, ex.Column);
             Assert.Equal(0, ex.Column);
             Assert.Equal("Unexpected '1'.", ex.Message);
             Assert.Equal("Unexpected '1'.", ex.Message);
@@ -122,8 +107,6 @@ namespace Avalonia.Markup.Xaml.UnitTests.Parsers
         [Fact]
         [Fact]
         public void Fails_With_Trailing_Junk()
         public void Fails_With_Trailing_Junk()
         {
         {
-            var target = new PropertyParser();
-            
             var ex = Assert.Throws<ExpressionParseException>(() => PropertyParser.Parse(new CharacterReader("Foo%".AsSpan())));
             var ex = Assert.Throws<ExpressionParseException>(() => PropertyParser.Parse(new CharacterReader("Foo%".AsSpan())));
             Assert.Equal(3, ex.Column);
             Assert.Equal(3, ex.Column);
             Assert.Equal("Unexpected '%'.", ex.Message);
             Assert.Equal("Unexpected '%'.", ex.Message);
@@ -132,8 +115,6 @@ namespace Avalonia.Markup.Xaml.UnitTests.Parsers
         [Fact]
         [Fact]
         public void Fails_With_Invalid_Property_Name_After_Owner()
         public void Fails_With_Invalid_Property_Name_After_Owner()
         {
         {
-            var target = new PropertyParser();
-            
             var ex = Assert.Throws<ExpressionParseException>(() => PropertyParser.Parse(new CharacterReader("Foo.123".AsSpan())));
             var ex = Assert.Throws<ExpressionParseException>(() => PropertyParser.Parse(new CharacterReader("Foo.123".AsSpan())));
             Assert.Equal(4, ex.Column);
             Assert.Equal(4, ex.Column);
             Assert.Equal("Unexpected '1'.", ex.Message);
             Assert.Equal("Unexpected '1'.", ex.Message);
@@ -142,8 +123,6 @@ namespace Avalonia.Markup.Xaml.UnitTests.Parsers
         [Fact]
         [Fact]
         public void Fails_With_Whitespace_Between_Owner_And_Name()
         public void Fails_With_Whitespace_Between_Owner_And_Name()
         {
         {
-            var target = new PropertyParser();
-            
             var ex = Assert.Throws<ExpressionParseException>(() => PropertyParser.Parse(new CharacterReader("Foo. Bar".AsSpan())));
             var ex = Assert.Throws<ExpressionParseException>(() => PropertyParser.Parse(new CharacterReader("Foo. Bar".AsSpan())));
             Assert.Equal(4, ex.Column);
             Assert.Equal(4, ex.Column);
             Assert.Equal("Unexpected ' '.", ex.Message);
             Assert.Equal("Unexpected ' '.", ex.Message);
@@ -152,8 +131,6 @@ namespace Avalonia.Markup.Xaml.UnitTests.Parsers
         [Fact]
         [Fact]
         public void Fails_With_Too_Many_Segments()
         public void Fails_With_Too_Many_Segments()
         {
         {
-            var target = new PropertyParser();
-            
             var ex = Assert.Throws<ExpressionParseException>(() => PropertyParser.Parse(new CharacterReader("Foo.Bar.Baz".AsSpan())));
             var ex = Assert.Throws<ExpressionParseException>(() => PropertyParser.Parse(new CharacterReader("Foo.Bar.Baz".AsSpan())));
             Assert.Equal(8, ex.Column);
             Assert.Equal(8, ex.Column);
             Assert.Equal("Unexpected '.'.", ex.Message);
             Assert.Equal("Unexpected '.'.", ex.Message);
@@ -162,8 +139,6 @@ namespace Avalonia.Markup.Xaml.UnitTests.Parsers
         [Fact]
         [Fact]
         public void Fails_With_Too_Many_Namespaces()
         public void Fails_With_Too_Many_Namespaces()
         {
         {
-            var target = new PropertyParser();
-            
             var ex = Assert.Throws<ExpressionParseException>(() => PropertyParser.Parse(new CharacterReader("foo:bar:Baz".AsSpan())));
             var ex = Assert.Throws<ExpressionParseException>(() => PropertyParser.Parse(new CharacterReader("foo:bar:Baz".AsSpan())));
             Assert.Equal(8, ex.Column);
             Assert.Equal(8, ex.Column);
             Assert.Equal("Unexpected ':'.", ex.Message);
             Assert.Equal("Unexpected ':'.", ex.Message);
@@ -172,8 +147,6 @@ namespace Avalonia.Markup.Xaml.UnitTests.Parsers
         [Fact]
         [Fact]
         public void Fails_With_Parens_But_No_Owner()
         public void Fails_With_Parens_But_No_Owner()
         {
         {
-            var target = new PropertyParser();
-            
             var ex = Assert.Throws<ExpressionParseException>(() => PropertyParser.Parse(new CharacterReader("(Foo)".AsSpan())));
             var ex = Assert.Throws<ExpressionParseException>(() => PropertyParser.Parse(new CharacterReader("(Foo)".AsSpan())));
             Assert.Equal(1, ex.Column);
             Assert.Equal(1, ex.Column);
             Assert.Equal("Expected property owner.", ex.Message);
             Assert.Equal("Expected property owner.", ex.Message);
@@ -182,8 +155,6 @@ namespace Avalonia.Markup.Xaml.UnitTests.Parsers
         [Fact]
         [Fact]
         public void Fails_With_Parens_And_Namespace_But_No_Owner()
         public void Fails_With_Parens_And_Namespace_But_No_Owner()
         {
         {
-            var target = new PropertyParser();
-            
             var ex = Assert.Throws<ExpressionParseException>(() => PropertyParser.Parse(new CharacterReader("(foo:Bar)".AsSpan())));
             var ex = Assert.Throws<ExpressionParseException>(() => PropertyParser.Parse(new CharacterReader("(foo:Bar)".AsSpan())));
             Assert.Equal(1, ex.Column);
             Assert.Equal(1, ex.Column);
             Assert.Equal("Expected property owner.", ex.Message);
             Assert.Equal("Expected property owner.", ex.Message);
@@ -192,8 +163,6 @@ namespace Avalonia.Markup.Xaml.UnitTests.Parsers
         [Fact]
         [Fact]
         public void Fails_With_Missing_Close_Parens()
         public void Fails_With_Missing_Close_Parens()
         {
         {
-            var target = new PropertyParser();
-            
             var ex = Assert.Throws<ExpressionParseException>(() => PropertyParser.Parse(new CharacterReader("(Foo.Bar".AsSpan())));
             var ex = Assert.Throws<ExpressionParseException>(() => PropertyParser.Parse(new CharacterReader("(Foo.Bar".AsSpan())));
             Assert.Equal(8, ex.Column);
             Assert.Equal(8, ex.Column);
             Assert.Equal("Expected ')'.", ex.Message);
             Assert.Equal("Expected ')'.", ex.Message);
@@ -202,8 +171,6 @@ namespace Avalonia.Markup.Xaml.UnitTests.Parsers
         [Fact]
         [Fact]
         public void Fails_With_Unexpected_Close_Parens()
         public void Fails_With_Unexpected_Close_Parens()
         {
         {
-            var target = new PropertyParser();
-
             var ex = Assert.Throws<ExpressionParseException>(() => PropertyParser.Parse(new CharacterReader("Foo.Bar)".AsSpan())));
             var ex = Assert.Throws<ExpressionParseException>(() => PropertyParser.Parse(new CharacterReader("Foo.Bar)".AsSpan())));
             Assert.Equal(7, ex.Column);
             Assert.Equal(7, ex.Column);
             Assert.Equal("Unexpected ')'.", ex.Message);
             Assert.Equal("Unexpected ')'.", ex.Message);