I'm trying to change the background image set by xaml this way:
<s:SurfaceWindow.Resources>
<ImageBrush x:Key="WindowBackground"
Stretch="None" Opacity="0.6" ImageSource="pack://application:,,,/Resources/img/bg/Default.jpg"/>
</s:SurfaceWindow.Resources>
by using the following code in a method:
sessionWindow.SetValue(ImageBrush.ImageSourceProperty, "..//..//Resources//img//bg//Aqua.jpg");
where sessionWindow is the the actual window. It throws the exception in the title
The ImageBrush.ImageSource
property is of type ImageSource
.
Therefore, you need to set it to an ImageSource
instance.
Also, your path is wrong.
For example:
sessionWindow.SetValue(ImageBrush.ImageSourceProperty,
new BitmapImage(
new Uri(@"..\..\Resources\img\bg\Aqua.jpg", UriKind.Relative)
)
);
However, this won't actually change the background - Window
doesn't have an ImageSource
property.
Instead, you should set the Window's Background
property, like this:
sessionWindow.Background = new ImageBrush {
ImageSource = new BitmapImage(
new Uri(@"..\..\Resources\img\bg\Aqua.jpg", UriKind.Relative)
)
};