Как получить отрендеренное изображение image Control-а WPF?

326
16 января 2018, 10:25

В xaml создаю изображение и задаю ему нужную высоту:

<Image x:Name="CatView" Height="38" Source="_мое_изображение">

Как в коде получить изображение, которое получится после пересчета размеров?

Т.e., где лежит мое изображение с размером равным CatView.RenderSize?

Answer 1

Ну сама картинка может быть нигде и не хранится, или хранится в недоступном месте. Но можно легко получить снимок любого контрола в картинку. Например, так:

// получаем изображение
var rtb = new RenderTargetBitmap(
    (int)control.ActualWidth, (int)control.ActualHeight, 96, 96, PixelFormats.Pbgra32);
rtb.Render(control);
// сохраняем в PNG
var png = new PngBitmapEncoder() { Frames = { BitmapFrame.Create(rtb) } };
using (var file = File.Create(path))
    png.Save(file);

Документация: How to: Encode a Visual to an Image File.

READ ALSO
Какие бывают виды абстракций в ООП? [требует правки]

Какие бывают виды абстракций в ООП? [требует правки]

Какие бывают виды абстракций в ООП?

300
Вывод логов на экран в Unity на платформу Android

Вывод логов на экран в Unity на платформу Android

Как можно вывести все логи Unity на экран в Android? или по нажатию на кнопки открывать файл с логами который в Android создается

341
Файловая БД для C#

Файловая БД для C#

Начал изучать C# и возник вопрос, есть ли какая нативная файловая БД для C# под Win, конечно есть SQLite, но думал что есть какое-то встроенное решение,...

285
Количество значений класса ENUM

Количество значений класса ENUM

Есть некий ENUM класс вида:

281