2016-02-11 71 views
0

我想創建一個次平鋪,將在它顯示一個字符串設置文本。我正在構建Windows Phone 8.1的應用程序。我有以下代碼爲瓷磚,但我想在應用程序的中央的文字:如何在次平鋪WP中間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

如果要對內容有任何更多的控制,那麼你就需要渲染的圖像,並將其用於瓷磚。 – Filip

+0

你能指出我如何做到這一點的方向? – jdbwizzard

+0

http://stackoverflow.com/questions/20107640/set-secondary-tile-backgroundimage-from-image-in-isolated-storage – asitis

回答

0

與圖像創建自定義平鋪在這些步驟完成rougly:

1)渲染圖片。 WriteableBitmap類可以使UIElement你給它:

  WriteableBitmap wb = new WriteableBitmap(300, 300); 

      wb.Render(myGrid); 

      wb.Invalidate(); 

所以,你需要從此類容器+控制的UI元素構建您的瓷磚。在你的情況下,將例如Grid(最大寬度)和排列TextBlocks

2)一旦你有這樣的圖像,將其保存爲PNG(爲了更好的品質)到文件夾

「isostore:/ Shared/ShellContent /「

否則您的磁貼無法訪問它。

3)現在你需要做的就是創建StandardTileData和設置的BackgroundImage到新創建的圖像。

您也可以下載和使用IsoStoreSpy在調試。它可以顯示你手機的內部存儲空間。所以你可以看到是否以及如何渲染圖像。

+0

wb.Render是無效的WP 8.1但這向我指出了正確的方向。我使用了'RenderTargetBitmap.RenderAsync(grid)'謝謝@Filip – jdbwizzard