2013-12-14 22 views
0

我想通過使用BitmapRender(在Windows 8.1中)從用戶控件創建一個圖像,然後將其添加爲我的活動平鋪圖像,從而在我的應用中創建實時圖塊。如何在我的WinRT實時磁貼上使用代碼生成的圖像?

創建圖像完美,我將它存儲在應用程序的漫遊文件夾中。但是,我創建這種方式時無法將圖像添加到活動圖塊。奇怪的是,如果我將生成的文件複製到項目中,然後嘗試將其附加到活動磁貼上(因此圖像必須正確格式化/大小等);如果我將一個隨機圖像複製到我的漫遊文件夾中,並將其設置爲活動平鋪圖像,它也可以工作(這意味着我可以使用漫遊文件夾中的文件設置平鋪圖像)......這意味着我是引用文件位置正確,並且圖像本身能夠在活動磁貼上使用......爲什麼它不起作用?

我已經創建了一個示例項目(下面的鏈接),它說明了我的活動磁貼創建代碼的工作原理(存儲在項目中的圖像),以及我可以成功地從UI控件創建圖像並將其存儲漫遊文件夾(FWIW我嘗試過使用不同的文件夾而不改變行爲)。

有什麼我失蹤了嗎?任何見解或幫助將不勝感激。

項目在VB.net中,但我可以在C#中找出答案,如果這更容易。

Sample project to illustrate the issue

回答

1

麻煩的是,你試圖使用絕對路徑來引用圖像,這是不支持的。如果你查看瓷磚模式,特別是在page for the element,你會發現src必須是使用http [s]://,ms-appx:///或ms-appdata:/// local對於Windows應用商店應用。事實上,你可以使用/livetile.png的相關包內路徑,這有點僥倖,因爲這是默認的ms-appx:///livetile.png。

你需要做什麼,然後,只是用這個文件路徑:

filepath = "ms-appdata:///local/livetile.png" 

我你的樣品中嘗試這樣做,它工作得很好。請注意,此處僅支持本地文件夾,而不是漫遊。這主要是因爲漫遊appdata限制在100K以內,並且在其中放置平鋪圖像通常會很快填滿您的配額。然後,您需要在每個設備上本地生成映像(這也是有意義的,因爲您可以考慮當前的縮放比例)。

+0

Kraig,感謝您的回覆。我實際上在週末計算了這個數字,但沒有在這裏更新。除了需要使用本地文件夾之外,另一個問題也會受到阻礙 - 如果您在短時間內進行了大量更改(這在測試代碼時很常見),Windows似乎會停止更新磁貼。 – pumpkinszwan

+0

我相信它有一種內置快速更新的去抖算法。測試時要做的最好的事情是確保在發佈更新之前清除磁貼,因爲這應該會顯示最新的更新。 –

+0

不幸的是我先清理了瓷磚。它可以讓我多次更改,然後停止更新。現在我不知道這個問題是什麼,但是在測試過程中,這非常令人沮喪! – pumpkinszwan

相關問題