2014-01-07 85 views
0

我有一個Windows Phone 7.1應用程序,我想包含一個寬廣的標誌性圖塊。我發現了一個叫MangoPollo庫:使用MangoPollo的Wide Tile Windows Phone 7.1

http://mangopollo.codeplex.com/

我找到這段代碼:

var tile = ShellTile.ActiveTiles.FirstOrDefault(); 
if (tile != null) 
{ 
    var tileData = new FlipTileData(); 
    tileData.Title = "Start Debugging"; 

    tileData.BackContent = "switch to windows phone, we've got candy"; 
    tileData.BackgroundImage = new Uri("Assets/tileBackground.png", UriKind.Relative); 
    tileData.BackBackgroundImage = new Uri("Assets/tileBackBackground.png", UriKind.Relative); 

    tileData.WideBackContent = "switch to windows phone, we've got candy"; 
    tileData.WideBackgroundImage = new Uri("Assets/wideTileBackground.png", UriKind.Relative); 
    tileData.WideBackBackgroundImage = new Uri("Assets/wideTileBackBackground.png", UriKind.Relative); 

    tile.Update(tileData); 
} 

的問題是沒有包括在Codeplex上的任何文件的項目,所以我不知道在哪裏插入這個代碼(即哪個函數)來將瓷磚大小從正常變爲寬。

+0

看看這個[Windows Phone的開發博客](http://blogs.windows.com/windows_phone/b/wpdev/archive/2013/01/22/windows-phone-7- 8-and-windows-phone-8-live-tile-light-up-for-windows-phone-os-7-1-apps.aspx) –

回答

0

您可以在需要的位置調用它,並且沒有代碼可以在用戶屏幕上更改切片,因爲它不被允許。

+0

在我們想要的地方調用它?在mainpage.xaml.cs中或app.xaml.cs? 而這段代碼應該在一個函數中。如果mainpage我應該在構造函數中調用它。如果在app.xaml.cs中使用哪種方法調用它, 並且到最後它會工作嗎? –

+0

無處不在。此代碼與您的應用沒有任何關係。這段代碼也可以在後臺代理中使用,其中沒有app.xaml.cs和mailpage.xaml.cs。在使用此代碼之前,別忘了固定應用程序的圖塊。因爲這段代碼只更新了tile。 – crea7or

+0

所以如果代碼運行沒有固定的瓷磚會給出錯誤? –

0

如果你look in the source code,在你提供的MangoPollo的鏈接中,示例代碼將把代碼放在按鈕單擊事件中。所以我會在你的應用程序中做什麼,是選擇設置這個新的tile(設置頁面,也許?),當用戶打開這個設置時,你會運行該事件處理程序中的代碼。

這樣,代碼不會不必要地執行多次(就像它在頁面的構造函數或app.xaml.cs中一樣)。

希望這會有所幫助!

編輯:

基於您的評論的話,也許你可以把它放在你的第一個頁面的構造函數。那麼,爲防止代碼執行超過必要的程度,您可以檢查現有的tile以查看它是否已有WideBackgroundImage,如果不存在,則設置它並調用Update()否則,請繼續。

+0

@ Ihan16首先感謝編輯。 其次,我希望這個自動完成,而無需轉到設置頁面。 –

+0

沒問題:)看我的更新! – lhan

+0

不知道該怎麼做:( –