Как привязать к статическому BitmapSource?

Я хотел бы создать свое собственное диалоговое окно ошибки / исключения со стандартным Windows "Значок ошибки".

Я последовал совету из этого вопроса, и он работает.

Однако в настоящее время я создаю свойство экземпляра, к которому привязываюсь, как и к любому свойству:

class ErrorWindowViewModel
{
    private readonly ImageSource _errorImage;

    public ImageSource ErrorImage { get { return _errorImage; } }

    public ErrorWindowViewModel()
    {
        _errorImage = Imaging.CreateBitmapSourceFromHIcon(SystemIcons.Error.Handle, Int32Rect.Empty, BitmapSizeOptions.FromEmptyOptions());
    }
}

Я хотел бы иметь статическое поле, определенное в моем классе ErrorWindow:

partial class ErrorWindow : Window
    {
        private readonly static ImageSource ErrorImage = 
            Imaging.CreateBitmapSourceFromHIcon(SystemIcons.Error.Handle, Int32Rect.Empty, BitmapSizeOptions.FromEmptyOptions());
    }

Я не могу заставить свой XAML ссылаться на это поле.

<Image Source="what_to_put_here_to_make_it_work" />

Я использую WPF 4.5.

1 ответ

Решение

Вы должны были бы создать статическое свойство

private static readonly ImageSource errorImage =
    Imaging.CreateBitmapSourceFromHIcon(SystemIcons.Error.Handle, Int32Rect.Empty, BitmapSizeOptions.FromEmptyOptions());

public static ImageSource ErrorImage
{
    get { return errorImage; }
}

и связать так:

<Image Source="{Binding Source={x:Static local:ErrorWindow.ErrorImage}}"/>
Другие вопросы по тегам