diff --git a/src/Avalonia.Visuals/Media/ImageBrush.cs b/src/Avalonia.Visuals/Media/ImageBrush.cs
index 85c1f6c71a..69b98fd35c 100644
--- a/src/Avalonia.Visuals/Media/ImageBrush.cs
+++ b/src/Avalonia.Visuals/Media/ImageBrush.cs
@@ -8,7 +8,7 @@ namespace Avalonia.Media
///
/// Paints an area with an .
///
- public class ImageBrush : TileBrush, IImageBrush
+ public class ImageBrush : TileBrush, IImageBrush, IMutableBrush
{
///
/// Defines the property.
@@ -17,14 +17,14 @@ namespace Avalonia.Media
AvaloniaProperty.Register("Source");
///
- /// Initializes a new instance of the class.
+ /// Initializes a new instance of the class.
///
public ImageBrush()
{
}
///
- /// Initializes a new instance of the class.
+ /// Initializes a new instance of the class.
///
/// The image to draw.
public ImageBrush(IBitmap source)
@@ -40,5 +40,11 @@ namespace Avalonia.Media
get { return GetValue(SourceProperty); }
set { SetValue(SourceProperty, value); }
}
+
+ ///
+ IBrush IMutableBrush.ToImmutable()
+ {
+ return new Immutable.ImmutableImageBrush(this);
+ }
}
}
diff --git a/src/Avalonia.Visuals/Media/LinearGradientBrush.cs b/src/Avalonia.Visuals/Media/LinearGradientBrush.cs
index 33eea4fbad..6c0d500343 100644
--- a/src/Avalonia.Visuals/Media/LinearGradientBrush.cs
+++ b/src/Avalonia.Visuals/Media/LinearGradientBrush.cs
@@ -6,7 +6,7 @@ namespace Avalonia.Media
///
/// A brush that draws with a linear gradient.
///
- public sealed class LinearGradientBrush : GradientBrush, ILinearGradientBrush
+ public sealed class LinearGradientBrush : GradientBrush, ILinearGradientBrush, IMutableBrush
{
///
/// Defines the property.
@@ -41,5 +41,11 @@ namespace Avalonia.Media
get { return GetValue(EndPointProperty); }
set { SetValue(EndPointProperty, value); }
}
+
+ ///
+ IBrush IMutableBrush.ToImmutable()
+ {
+ return new Immutable.ImmutableLinearGradientBrush(this);
+ }
}
}
\ No newline at end of file
diff --git a/src/Avalonia.Visuals/Media/RadialGradientBrush.cs b/src/Avalonia.Visuals/Media/RadialGradientBrush.cs
index b721e19138..9f9c2733ec 100644
--- a/src/Avalonia.Visuals/Media/RadialGradientBrush.cs
+++ b/src/Avalonia.Visuals/Media/RadialGradientBrush.cs
@@ -7,7 +7,7 @@ namespace Avalonia.Media
/// Paints an area with a radial gradient. A focal point defines the beginning of the gradient,
/// and a circle defines the end point of the gradient.
///
- public sealed class RadialGradientBrush : GradientBrush, IRadialGradientBrush
+ public sealed class RadialGradientBrush : GradientBrush, IRadialGradientBrush, IMutableBrush
{
///
/// Defines the property.
@@ -61,5 +61,11 @@ namespace Avalonia.Media
get { return GetValue(RadiusProperty); }
set { SetValue(RadiusProperty, value); }
}
+
+ ///
+ IBrush IMutableBrush.ToImmutable()
+ {
+ return new Immutable.ImmutableRadialGradientBrush(this);
+ }
}
}
\ No newline at end of file
diff --git a/src/Avalonia.Visuals/Media/VisualBrush.cs b/src/Avalonia.Visuals/Media/VisualBrush.cs
index 85ccf7afc9..a6d2b8ae8f 100644
--- a/src/Avalonia.Visuals/Media/VisualBrush.cs
+++ b/src/Avalonia.Visuals/Media/VisualBrush.cs
@@ -8,7 +8,7 @@ namespace Avalonia.Media
///
/// Paints an area with an .
///
- public class VisualBrush : TileBrush, IVisualBrush
+ public class VisualBrush : TileBrush, IVisualBrush, IMutableBrush
{
///
/// Defines the property.
@@ -40,5 +40,11 @@ namespace Avalonia.Media
get { return GetValue(VisualProperty); }
set { SetValue(VisualProperty, value); }
}
+
+ ///
+ IBrush IMutableBrush.ToImmutable()
+ {
+ return new Immutable.ImmutableVisualBrush(this);
+ }
}
}