diff --git a/src/Avalonia.Visuals/Media/Brush.cs b/src/Avalonia.Visuals/Media/Brush.cs
index d4894e0d14..a19d5af8b7 100644
--- a/src/Avalonia.Visuals/Media/Brush.cs
+++ b/src/Avalonia.Visuals/Media/Brush.cs
@@ -19,6 +19,11 @@ namespace Avalonia.Media
///
public event EventHandler Invalidated;
+ static Brush()
+ {
+ AffectsRender(OpacityProperty);
+ }
+
///
/// Gets or sets the opacity of the brush.
///
diff --git a/tests/Avalonia.Visuals.UnitTests/Media/BrushTests.cs b/tests/Avalonia.Visuals.UnitTests/Media/BrushTests.cs
index 1ef8f1f29a..1a2f7732dd 100644
--- a/tests/Avalonia.Visuals.UnitTests/Media/BrushTests.cs
+++ b/tests/Avalonia.Visuals.UnitTests/Media/BrushTests.cs
@@ -77,5 +77,17 @@ namespace Avalonia.Visuals.UnitTests.Media
{
Assert.Throws(() => Brush.Parse("#ff808g80"));
}
+
+ [Fact]
+ public void Changing_Opacity_Raises_Invalidated()
+ {
+ var target = new SolidColorBrush();
+ var raised = false;
+
+ target.Invalidated += (s, e) => raised = true;
+ target.Opacity = 0.5;
+
+ Assert.True(raised);
+ }
}
}