XAML 如何使用UWP创建一个松鼠形状并用图像填充它?

w8f9ii69  于 2023-03-06  发布在  其他
关注(0)|答案(1)|浏览(143)

在UWP应用程序中,我需要显示一些squircle形状的图标,并填充图像。
将圆角半径应用于正方形不会创建扭曲see
我发现创建松鼠形状的唯一方法是使用CanvasGeometry,就像在这个tutorial中描述的那样。
我可以这样创建一个简单的蠕动:
XAML:

<win2d:CanvasControl
    Width="100"
    Height="100"
    Draw="RenderCanvas_Draw" />

代码隐藏:

private void RenderCanvas_Draw(CanvasControl sender, CanvasDrawEventArgs args)
{
    CanvasGeometry geometry = CanvasPathGeometry.CreateSquircle(sender, 2, 2, 100, 100, 50, 50);
    args.DrawingSession.DrawGeometry(geometry, Color.FromArgb(255, 255, 0, 0), 1);
}

但我需要用图像填充这个小松鼠我做不到。
我可以使用args.DrawingSession.FillGeometry(...)用任何颜色填充松鼠,也可以使用args.DrawingSession.DrawImage(...)向CanvasControl添加图像,但该图像占用了松鼠的不同层。
有没有人知道怎么做或者能提出解决方案?感激不尽。

bcs8qyzn

bcs8qyzn1#

可以使用以下代码用图像填充几何

private void Canvas_Draw(CanvasControl sender, CanvasDrawEventArgs args)
{
    var geometry = CanvasPathGeometry.CreateSquircle(sender, 0, 0, 100, 100, 50, 50);
    var image = CanvasBitmap.LoadAsync(sender, "color.png").AsTask().Result;
    var brush = new CanvasImageBrush(sender, image);
    args.DrawingSession.FillGeometry(geometry, Vector2.Zero, brush);
}

相关问题