2016-11-24 124 views
1

我在Windows 10應用程序商店(世界時間時鐘)中有UWP應用程序。這個應用程序允許用戶固定次級圖塊,顯示每分鐘更新的文本(以顯示世界各地不同城市的當前時間)。這些文字直播瓦片被創建,如下圖所示的「自適應磚」使用XML:Win 10手機/手機上的通用Windows應用程序(UWP)中的半透明實時瓦片

tile definition xml

目前,這些文字直播瓷磚有堅實的背景顏色#000000(黑色)應用清單拉。 用於手機的最新版本的Windows 10具有設置使用開始屏幕平鋪透明度;它提供了一個很好的效果,但僅適用於Microsoft實用程序。請參閱下面的截圖。不幸的是,我無法弄清楚如何讓文本拼貼的背景變得透明/半透明。我希望Windows能夠調整alpha通道/不透明度/透明度;但是,它沒有。另外,我可以在清單中設置的背景圖塊顏色是RGB而不是ARGB;它不允許指定一個alpha通道值。有沒有人知道非微軟應用程序是否可以在實時文本磁貼上使用半透明瓷磚背景?如果是這樣,任何有關如何實現這種效果(微軟半透明背景和我下面顯示的不透明背景圖片)的建議?

Translucent live tiles screenshot

+0

你是什麼意思「從應用程序清單拉」?在我的默認清單背景設置爲'BackgroundColor =「透明」',也許你可以嘗試? –

回答

0

正如評論已經提到的托馬斯,你可以更改你的Package.appxmanifest瓷磚的背景色。在代碼中它的BackgroundColor="transparent"VisualElements標籤:

<Applications> 
    <Application Id="App" Executable="$targetnametoken$.exe" EntryPoint="MyApp.App"> 
    <uap:VisualElements DisplayName="MyApp" Square150x150Logo="Assets\Square150x150Logo.png" Square44x44Logo="Assets\Square44x44Logo.png" Description="MyApp" BackgroundColor="transparent"> 

如果你想有它在你的應用程序就像在微軟的應用程序,你可以用類似的東西,改變你的SecondaryTileBackgroundColor代碼:

public static async Task ChangeSecondaryTilesBackground(bool transparent) { 
    IReadOnlyList<SecondaryTile> tiles = await SecondaryTile.FindAllAsync(); 

    foreach (SecondaryTile tile in tiles) { 
     if (transparent) 
      tile.VisualElements.BackgroundColor = Windows.UI.Colors.Transparent; 
     else 
      tile.VisualElements.BackgroundColor = Windows.UI.Colors.Green; // Set to your color 

     await tile.UpdateAsync(); 
    } 
} 

更新這裏的主要瓷磚有點複雜,因爲您需要爲包含您的顏色的背景圖片創建新的Xml內容並將其設置爲tileUpdater.Update(new TileNotification(xmlContent));

請注意,在PC上,用戶可以通過右鍵單擊來關閉磁貼,然後使用Package.appxmanifest中的任何設置。當TileNotification內容不正確或無法加載時,也會顯示來自appxmanifest的默認內容。

另一種方法(例如,如果品牌對您很重要)是將BackgroundColor保留在appxmanifest中,並且如果用戶想要僅具有應用程序圖標的透明Live Tile,則只需創建一個SecondaryTile複製主應用程序圖標。例如,我就是這樣在PitlaneOne中完成的。 我之所以這樣做是因爲將appxmanifest中的BackgroundColor設置爲透明將導致應用程序列表和商店列表中的應用程序圖標也是透明的。