daniel mayost 3 gadi atpakaļ
vecāks
revīzija
b6e66047f2

+ 6 - 5
src/Avalonia.Controls/ComboBox.cs

@@ -434,11 +434,12 @@ namespace Avalonia.Controls
         {
             if (SelectionBoxItem is Rectangle rectangle)
             {
-                var content = (rectangle.Fill as VisualBrush)!.Visual as Control;
-                var flowDirection = (((IVisual)content!).VisualParent as Control)?.FlowDirection ?? 
-                    FlowDirection.LeftToRight;
-
-                rectangle.FlowDirection = flowDirection;
+                if ((rectangle.Fill as VisualBrush)?.Visual is Control content)
+                {
+                    var flowDirection = (((IVisual)content!).VisualParent as Control)?.FlowDirection ?? 
+                        FlowDirection.LeftToRight;
+                    rectangle.FlowDirection = flowDirection;
+                }
             }
         }
 

+ 17 - 1
tests/Avalonia.Controls.UnitTests/FlowDirectionTests.cs

@@ -17,7 +17,23 @@ namespace Avalonia.Controls.UnitTests
         }
 
         [Fact]
-        public void HasMirrorTransform_Of_Children_Is_Updated_After_Change()
+        public void HasMirrorTransform_Of_LTR_Children_Should_Be_True_For_RTL_Parent()
+        {
+            Control child;
+            var target = new Decorator
+            {
+                FlowDirection = FlowDirection.RightToLeft,
+                Child = child = new Control()
+            };
+
+            child.FlowDirection = FlowDirection.LeftToRight;
+
+            Assert.True(target.HasMirrorTransform);
+            Assert.True(child.HasMirrorTransform);  
+        }
+
+        [Fact]
+        public void HasMirrorTransform_Of_Children_Is_Updated_After_Parent_Changeed()
         {
             Control child;
             var target = new Decorator