Отображение изображения WinForm в приложении WPF - PullRequest
1 голос
/ 04 июня 2010

У меня есть dll с совсем небольшим количеством ресурсов System.Drawing.Image, которые я обернул в статические свойства, чтобы я мог динамически обновлять их.

Я хотел бы использовать изображения через xaml в приложении WPF, но единственный способ понять это - вручную выполнить код, приведенный ниже.

Есть ли способ выполнить преобразование изображения winform в wpf для статического свойства в xaml?

Ответы [ 2 ]

5 голосов
/ 04 июня 2010

Вы можете привязать свои изображения напрямую, используя конвертер. Вот пример в окне:

<Window.Resources>
   <WinForms2WPFImageConverter x:Key="WF2WPFDrawingConverter" />
</Window.Resources>

...

Этот вопрос SO имеет конвертер чертежей, который я адаптировал здесь как ValueConverter.

public class WinForms2WPFImageConverter : IValueConverter {

    public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {

        System.Drawing.Image i = (System.Drawing.Image) value;   
        using (MemoryStream drawingStream = new MemoryStream())
        {

            i.Save(drawingStream);

            i.Seek(0, SeekOrigin.Begin);

            return System.Windows.Media.Imaging.BitmapFrame.Create(drawingStream);
        }
    }

    public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
            throw new InvalidOperationException();
    }
}

Конечно, вам необходимо учитывать пространства имен в объявлении ресурса.

Советую не использовать статические свойства, чтобы использовать INotifyPropertyChanged (или свойства зависимостей), чтобы отображение автоматически изменялось, когда свойства указывают на другие изображения.

(примечание: это было напечатано, а не скопировано из VS, поэтому где-то может быть синтаксическая ошибка.)

1 голос
/ 20 июля 2016

Вы можете привязать свои изображения с помощью метода в WPF. Вот пример в ссылке

http://microsoftdotnetsolutions.blogspot.com/2016/07/convert-winforms-image-to-wpf.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...