为了避免XY问题,首先Y:是否有一种方法可以在SpriteVisual上创建不需要Win2D的文本?
现在X:我想解决的问题是,我需要SpriteVisual上的文本(而不是TextBlock)来应用透视、旋转3D表达式动画。SpriteVisual上的文本可以用Win2D完成。这是的一部分
using (var ds = CanvasComposition.CreateDrawingSession(_drawingSurface))
{
ds.Clear(Colors.Transparent);
var rect = new Rect(new Point(2, 2), (
对于WPF和使用DrawingContext,我遇到了一些严重的问题,特别是来自于在元素上重写OnRender或如果使用DrawingVisual.RenderOpen()的VisualDrawingContext。
问题是这分配了很多钱。例如,每次使用绘图上下文时,它似乎都会分配一个byte[]缓冲区。
示例,如何使用绘图上下文。
using (var drawingContext = m_drawingVisual.RenderOpen())
{
// Many different drawingContext.Draw calls
// E.g. DrawEllipse,