2017-04-17 9 views
0

私のUWPアプリケーションでライブタイルに問題があります。マイクロソフトでは、コンテンツを設定するために異なるタイルサイズに異なるテンプレート(MSDN)を提供していますが、コンテンツの表示方法もデバイスによって異なります。ユーザーによって固定されたタイルサイズに応じてライブタイルを更新します。

たとえば、幅の広いタイルはモバイルデバイス上に1行のデスクトップコンピュータより多くの文字を表示することができますが、情報表示にはほとんどのタイル領域を使用します。ユーザーが自分のアプリをデスクトップコンピュータにインストールし、大きな正方形のタイルをスタートメニューに固定したとします。適切なテンプレートを読み込むためにタイルサイズを検出するにはどうすればよいですか?基本的には、ユーザーが固定しているタイルに応じて、別のテンプレートを使用したいとします(使用済みのデバイスに応じてコンテンツの埋め込みを処理したいのですが、すでに取り上げています)。

現在、私は、ユーザーがワイドなもの以外のサイズを固定している場合は何もしないワイドテンプレートを使用しています。ユーザーが幅の広いタイルを固定すると、それは機能します。しかし、私はこの問題の一般的な解決法を見つけるのに苦労しています。私のアプリはタイルの内容にローカルデータを使用するだけなので、私はSheduledTileNotificationsを使用しています。

これは、与えられたテンプレートを使用してタイルを更新するための私のコードです:

public static void UpdatePrimaryTile(XmlDocument tileTemplate) 
{ 
    var dt = DateTime.Now.AddSeconds(5); 
    dt = DateTime.SpecifyKind(dt, DateTimeKind.Unspecified); 
    var not = new ScheduledTileNotification(tileTemplate, new DateTimeOffset(dt, TimeZoneInfo.Local.BaseUtcOffset)); 
    var tu = TileUpdateManager.CreateTileUpdaterForApplication(); 
    tu.EnableNotificationQueue(true); 
    tu.Clear(); 
    tu.AddToSchedule(not); 
} 

は、この問題に関するいかなる助けを事前にありがとうございます。

答えて

1

ワイドタイルだけでなく、tileTemplateにすべてのタイルサイズを含める必要があります。そうすれば、ユーザーが選択したものはどれでも適切なタイルが表示されます。

現在選択されているタイルテンプレートを表示するだけでは、通知が発生した後にユーザーが変更できるため、十分ではありません。

あなたはhttps://docs.microsoft.com/en-us/windows/uwp/controls-and-patterns/tiles-and-notifications-create-adaptive-tilesに適応タイルの資料を見れば、それは言う:単一のタイル通知XMLペイロードの場合

を、この例のように、あなたがサポートしたい各タイルサイズのための要素を提供:

<tile> 
    <visual> 

    <binding template="TileSmall"> 
     <text>Small</text> 
    </binding> 

    <binding template="TileMedium"> 
     <text>Medium</text> 
    </binding> 

    <binding template="TileWide"> 
     <text>Wide</text> 
    </binding> 

    <binding template="TileLarge"> 
     <text>Large</text> 
    </binding> 

    </visual> 
</tile> 

Quickstart: Sending a tile update (XAML)

に示すものと同じでは、Windows 8.1のテンプレートに適用されます

ユーザーはいつでも開始画面でタイルのサイズを変更できます。通知を送信するときにタイルがどの状態(小、中、ワイド、または大)であるかを知る方法はありません。

+0

1つのテンプレートに複数のサイズを追加することが可能であることに気づいていなかったため、ドキュメントでその部分をスキップしているに違いありません。私はそれを試して、この答えをできるだけ早くマークします。ありがとう! – xmashallax

関連する問題