Никак не могу отрисовать в фоне визуальное дерево WPF (приходится делать вьюшки, с последующим их отражением) - это не удобно, видно как окно моментально появляется и исчезает.
private static byte[] GetPNG<T>(INotifyPropertyChanged viewModel)
where T : Window, new()
{
var wnd = new T()
{
DataContext = viewModel
};
wnd.Show();
var content = (FrameworkElement)wnd.Content;
var rtb = new RenderTargetBitmap((int)content.ActualWidth, (int)content.ActualHeight, 96d, 96d, PixelFormats.Default);
rtb.Render(content);
BitmapEncoder pngEncoder = new PngBitmapEncoder();
pngEncoder.Frames.Add(BitmapFrame.Create(rtb));
using var ms = new MemoryStream();
pngEncoder.Save(ms);
wnd.Close();
return ms.ToArray();
}
На данный момент только так...
Может у кого-нибудь есть решение - или знает способ отрисовки в памяти без помещения компонента в визуальное дерево?
System.Drawing), нарисуйте на битмапе все что хотите, и готово. Тоже своего рода вьюха. А так, задайте окну координаты за рамками монитора, например -10000, -10000, выключите ему отображение в таскбаре и негативный эффект от всплывающего окна не будет вас беспокоить. – aepot May 25 '22 at 19:04Все мои фоновые варианты не имеют размера Size(0,0) и соответственно png черная
– Fapser Faps May 26 '22 at 11:09