diff --git a/samples/ControlCatalog/Pages/ScreenPage.cs b/samples/ControlCatalog/Pages/ScreenPage.cs
index b5b80fb147..2cdd031693 100644
--- a/samples/ControlCatalog/Pages/ScreenPage.cs
+++ b/samples/ControlCatalog/Pages/ScreenPage.cs
@@ -1,5 +1,7 @@
using System;
using System.Globalization;
+using System.Linq;
+using System.Net.Http.Headers;
using Avalonia;
using Avalonia.Controls;
using Avalonia.Media;
@@ -12,6 +14,11 @@ namespace ControlCatalog.Pages
public class ScreenPage : UserControl
{
private double _leftMost;
+ private double _topMost;
+ private IBrush _primaryBrush = SolidColorBrush.Parse("#FF0078D7");
+ private IBrush _defaultBrush = Brushes.LightGray;
+ private IPen _activePen = new Pen(Brushes.Black);
+ private IPen _defaultPen = new Pen(Brushes.DarkGray);
protected override bool BypassFlowDirectionPolicies => true;
@@ -34,54 +41,88 @@ namespace ControlCatalog.Pages
var screens = w.Screens.All;
var scaling = ((IRenderRoot)w).RenderScaling;
- var drawBrush = Brushes.Black;
- Pen p = new Pen(drawBrush);
+ var activeScreen = w.Screens.ScreenFromBounds(new PixelRect(w.Position, PixelSize.FromSize(w.Bounds.Size, scaling)));
+ double maxBottom = 0;
- foreach (Screen screen in screens)
+ for (int i = 0; i
+
+
+
diff --git a/src/Avalonia.Base/Data/BindingOperations.cs b/src/Avalonia.Base/Data/BindingOperations.cs
index 0b737dd959..e53ae40cb1 100644
--- a/src/Avalonia.Base/Data/BindingOperations.cs
+++ b/src/Avalonia.Base/Data/BindingOperations.cs
@@ -41,54 +41,41 @@ namespace Avalonia.Data
{
case BindingMode.Default:
case BindingMode.OneWay:
- if (binding.Observable is null)
- throw new InvalidOperationException("InstancedBinding does not contain an observable.");
- return target.Bind(property, binding.Observable, binding.Priority);
+ return target.Bind(property, binding.Source, binding.Priority);
case BindingMode.TwoWay:
- if (binding.Observable is null)
- throw new InvalidOperationException("InstancedBinding does not contain an observable.");
- if (binding.Subject is null)
+ {
+ if (binding.Source is not IObserver