Я хочу иметь фоновое растровое изображение в моем приложении 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, но застрял. Что мне не хватает, пожалуйста? (Да, у меня еще нет подробностей о размере текста - сначала нужно освоить основы).