如何在 CanvasGeometry 上添加效果
How to add effect on CanvasGeometry
在我看来,Win2D 中可用的所有效果都是用于绘制图像的。
CanvasGeometry
呢?如何使用发光效果绘制 CanvasGeometry
?
谢谢。
Geometry
对象提供了一种绘制和操作几何形状的方法。它有CreatePolygon
、CreatePath
方法可以用来创建几何形状。
发光效果可以参考这个code sample。
private void DoEffect(CanvasDrawingSession ds, Size size, float amount)
{
size.Width = size.Width - ExpandAmount;
size.Height = size.Height - ExpandAmount;
var offset = (float)(ExpandAmount / 2);
using (var textLayout = CreateTextLayout(ds, size))
using (var textCommandList = new CanvasCommandList(ds))
{
using (var textDs = textCommandList.CreateDrawingSession())
{
textDs.DrawTextLayout(textLayout, 0, 0, GlowColor);
}
glowEffectGraph.Setup(textCommandList, amount);
ds.DrawImage(glowEffectGraph.Output, offset, offset);
ds.DrawTextLayout(textLayout, offset, offset, TextColor);
}
}
在我看来,Win2D 中可用的所有效果都是用于绘制图像的。
CanvasGeometry
呢?如何使用发光效果绘制 CanvasGeometry
?
谢谢。
Geometry
对象提供了一种绘制和操作几何形状的方法。它有CreatePolygon
、CreatePath
方法可以用来创建几何形状。
发光效果可以参考这个code sample。
private void DoEffect(CanvasDrawingSession ds, Size size, float amount)
{
size.Width = size.Width - ExpandAmount;
size.Height = size.Height - ExpandAmount;
var offset = (float)(ExpandAmount / 2);
using (var textLayout = CreateTextLayout(ds, size))
using (var textCommandList = new CanvasCommandList(ds))
{
using (var textDs = textCommandList.CreateDrawingSession())
{
textDs.DrawTextLayout(textLayout, 0, 0, GlowColor);
}
glowEffectGraph.Setup(textCommandList, amount);
ds.DrawImage(glowEffectGraph.Output, offset, offset);
ds.DrawTextLayout(textLayout, offset, offset, TextColor);
}
}