diff --git a/demo/Ursa.Demo/Pages/ImageViewerDemo.axaml b/demo/Ursa.Demo/Pages/ImageViewerDemo.axaml
index 85db8e6..0996338 100644
--- a/demo/Ursa.Demo/Pages/ImageViewerDemo.axaml
+++ b/demo/Ursa.Demo/Pages/ImageViewerDemo.axaml
@@ -9,7 +9,10 @@
d:DesignWidth="800"
mc:Ignorable="d">
-
+
@@ -20,7 +23,7 @@
@@ -117,6 +120,11 @@
Grid.Row="3"
Grid.Column="1"
Theme="{DynamicResource SimpleToggleSwitch}" />
+
+
diff --git a/demo/Ursa.Demo/Pages/ImageViewerDemo.axaml.cs b/demo/Ursa.Demo/Pages/ImageViewerDemo.axaml.cs
index e558339..2ddbb51 100644
--- a/demo/Ursa.Demo/Pages/ImageViewerDemo.axaml.cs
+++ b/demo/Ursa.Demo/Pages/ImageViewerDemo.axaml.cs
@@ -8,4 +8,19 @@ public partial class ImageViewerDemo : UserControl
{
InitializeComponent();
}
+
+ Avalonia.Media.IImage? oldImg;
+
+ private void Button_Click(object? sender, Avalonia.Interactivity.RoutedEventArgs e)
+ {
+ if(viewer.Source!=null)
+ {
+ oldImg = viewer.Source;
+ viewer.Source = null;
+ }
+ else
+ {
+ viewer.Source = oldImg;
+ }
+ }
}
\ No newline at end of file
diff --git a/src/Ursa/Controls/ImageViewer/ImageViewer.cs b/src/Ursa/Controls/ImageViewer/ImageViewer.cs
index 021151f..6554adc 100644
--- a/src/Ursa/Controls/ImageViewer/ImageViewer.cs
+++ b/src/Ursa/Controls/ImageViewer/ImageViewer.cs
@@ -149,6 +149,10 @@ public class ImageViewer: TemplatedControl
{
if(!IsLoaded) return;
IImage image = args.GetNewValue();
+ if(image is null)
+ {
+ return;
+ }
Size size = image.Size;
double width = this.Bounds.Width;
double height = this.Bounds.Height;