在 Windows 商店应用中剪裁图片

Clipping image in Windows Store app

那么我们究竟如何在 UWP a.k.a 中执行 sprites。 Windows 存储应用程序? this SO post 中描述的两种方法在 UWP 中不起作用。 (CroppedBitmap class 不起作用,ImageBrush class 没有 Viewbox 属性)。我尝试用 RenderTransformClip 但也没有成功。下一步要去哪里?

正如@ibebbs所说,Win2D中的Win2D is a good choice for using sprites in UWP. Win2D is an easy-to-use Windows Runtime API for immediate mode 2D graphics rendering with GPU acceleration. And CanvasSpriteBatch Class针对精灵场景进行了优化。

CanvasSpriteBatch 允许更有效地绘制多个位图并且比 DrawImage API 具有更好的性能,特别是如果使用相同的源位图。 CanvasSpriteBatch 支持以下功能:

有关如何使用 CanvasSpriteBatch 的更多信息,请参阅 GitHub 上的 CanvasSpriteBatch Class document and also Sprite Sheets sample

更新:

如果您不想使用 Win2D,实现您想要的效果的一种简单方法是使用 ImageBrush with Transform,如下所示:

<Rectangle Width="128" Height="192">
    <Rectangle.Fill>
        <ImageBrush AlignmentX="Left"
                    AlignmentY="Top"
                    ImageSource="Assets/WizardIdleRight.png"
                    Stretch="None">
            <ImageBrush.Transform>
                <TranslateTransform x:Name="SpriteSheetOffset" X="0" Y="-384" />
            </ImageBrush.Transform>
        </ImageBrush>
    </Rectangle.Fill>
</Rectangle>

这里我使用了WizardIdleRight.png in Sprite Sheets sample, we can change the offset in TranslateTransform来显示我们想要的精灵。