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プロパティはありません。
代わりに、次のようにウィンドウのBackgroundプロパティを設定する必要があります。

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