如何在辅助磁贴 WP 8.1 中间设置文本

How to set text in the middle of secondary tile WP 8.1

我正在尝试创建一个将在其中显示字符串的辅助磁贴。我正在为 windows phone 8.1 构建应用程序。我有以下磁贴代码,但我想要应用程序中心的文本:

SecondaryTile("TestTile",
               numDays + " days",
               tileActivationArguments,
               blankPic,
               TileSize.Square150x150);

有没有办法完成此操作或从要显示的文本构建图像?

解决方法: XAML

<Grid x:Name="TextGrid" Width="150" Height="150" Background="Red">
    <TextBlock x:Name="numDay" FontSize="36" />
</Grid>

C#

NumDay.Text = numDays + " days"
RenderTargetBitmap renderTargetBitmap = new RenderTargetBitmap();
await renderTargetBitmap.RenderAsync(TextGrid);

我使用这段代码创建了我的图像,然后将其设置为 SecondaryTile 中的背景图片。

使用图像创建自定义图块大致按照以下步骤完成:

1) 渲染图像。 WriteableBitmap class 可以渲染 UIElement 你传给它的:

            WriteableBitmap wb = new WriteableBitmap(300, 300);

            wb.Render(myGrid);

            wb.Invalidate();

因此您需要从 UI 元素(如容器 + 控件)构建磁贴。在您的情况下,例如 Grid (最大宽度)并对齐 TextBlocks

2) 获得此图像后,将其另存为 PNG(以获得更好的质量)到文件夹

"isostore:/Shared/ShellContent/"

否则您的磁贴无法访问它。

3) 现在您需要做的就是创建 StandardTileData 并将 BackgroundImage 设置为您新创建的图像。

您也可以在调试时下载并使用IsoStoreSpy。它可以向您显示 phone 的内部存储空间。所以你可以看到图像是否以及如何被渲染。