Я хочу sh иметь растровое изображение фона в моем приложении Avalonia. Вывести его на экран легко, это сложно сделать в коде.
Для отображения у меня в главном окне xaml:
<Window.Background>
<ImageBrush Source="{Binding BackgroundImage}"/>
</Window.Background>
Я могу загрузить растровое изображение в представление модель просто отлично использует:
Bitmap loader = new Bitmap( @"C:\image.BMP");
_backgroundImage = loader;
Итак, теперь все, что я хочу сделать, это преобразовать текст «A2» (например) в растровое изображение, используя вместо этого код.
Я много экспериментировал и просматривал образцы, и ближайший из них:
var brush = new SolidColorBrush(Colors.Blue);
var text = new FormattedText();
text.Text = "A2";
var bitmap = new RenderTargetBitmap(new PixelSize(width, height));
using (IDrawingContextImpl ctx = bitmap.CreateDrawingContext(null))
{
ctx.DrawText(brush, new Point(0, 0), text); // last param error
}
_backgroundImage = bitmap;
Что нормально, если не считать того факта, что текстовая переменная «не может преобразовать из« Avalonia.Media.FormattedText »в» Avalonia.Platform.IFormattedTextImpl '". Я экспериментировал с этим, пытался понять, в чем разница между этим кодом и кодом Avalonia, но застрял. Что мне не хватает, пожалуйста? (Да, у меня еще нет подробностей о размере текста - сначала нужно освоить основы).