我希望在我的 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 代码之间的不同之处,但被卡住了。请问我错过了什么?(是的,我还没有完成文本大小的细节 - 需要先让基础工作)。