那么我们如何在UWP a.k.a. Windows Store应用程序中执行 sprites ? this SO post中描述的两种方法在UWP中不起作用。 (CroppedBitmap
班级不起作用且ImageBrush
班级没有Viewbox
属性)。我尝试用Clip
做RenderTransform
,但也没有成功。下一步去哪儿?
答案 0 :(得分:1)
正如@ibebbs所说, Win2D 是在UWP中使用精灵的不错选择。 Win2D是一款易于使用的Windows运行时API,可通过GPU加速实现即时模式2D图形渲染。 Win2D中的CanvasSpriteBatch Class针对精灵场景进行了优化。
CanvasSpriteBatch 允许更有效地绘制多个位图,并且比DrawImage API具有更好的性能,特别是如果使用相同的源位图连续绘制多个精灵。 CanvasSpriteBatch 支持以下功能:
有关如何使用CanvasSpriteBatch的更多信息,请参阅GitHub上的CanvasSpriteBatch Class document和Sprite Sheets sample。
<强>更新强>
如果您不想使用Win2D,可以通过 ImageBrush 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使用Sprite Sheets sample,我们可以更改 TranslateTransform 中的偏移量来显示我们想要的精灵。