0

我正在尝试以这种方式更改 xaml 设置的背景图像:

      <s:SurfaceWindow.Resources>
    <ImageBrush x:Key="WindowBackground" 
Stretch="None" Opacity="0.6" ImageSource="pack://application:,,,/Resources/img/bg/Default.jpg"/>
  </s:SurfaceWindow.Resources>

通过在方法中使用以下代码:

        sessionWindow.SetValue(ImageBrush.ImageSourceProperty, "..//..//Resources//img//bg//Aqua.jpg");

其中 sessionWindow 是实际的窗口。它在标题中引发异常

4

1 回答 1

1

ImageBrush.ImageSource属性的类型为ImageSource

因此,您需要将其设置为ImageSource实例。
另外,你的路径是错误的。

例如:

sessionWindow.SetValue(ImageBrush.ImageSourceProperty,
     new BitmapImage(
        new Uri(@"..\..\Resources\img\bg\Aqua.jpg", UriKind.Relative)
     )
);

但是,这实际上不会改变背景 -Window没有ImageSource属性。
相反,您应该设置 Window 的Background属性,如下所示:

sessionWindow.Background = new ImageBrush {
     ImageSource = new BitmapImage(
        new Uri(@"..\..\Resources\img\bg\Aqua.jpg", UriKind.Relative)
     )
};
于 2010-07-22T14:35:30.193 回答