0

私はWindows8アプリを作成していて、ライブタイルを機能させようとしています。これが私がこれまでに持っているものです(すべてApp.xaml.cs):

OnLaunched()

Window.Current.VisibilityChanged += Current_VisibilityChanged;

そのためのイベントハンドラー:

void Current_VisibilityChanged(object sender, Windows.UI.Core.VisibilityChangedEventArgs e)
{
    // create a string with the tile template xml
    string tileXmlString = "<tile><visual><binding template=\"TileSquareBlock\">" + App.VM.GetImageLinks() + "</binding></visual></tile>";

    // create a DOM
    Windows.Data.Xml.Dom.XmlDocument tileDOM = new Windows.Data.Xml.Dom.XmlDocument();
    // load the xml string into the DOM, catching any invalid xml characters 
    tileDOM.LoadXml(tileXmlString);

    // create a tile notification
    TileNotification tile = new TileNotification(tileDOM);

    // send the notification to the app's application tile
    TileUpdateManager.CreateTileUpdaterForApplication().Update(tile);
}

App.VM.GetImageLinks()戻り値:

<tile>
    <visual>
        <binding template=\"TileSquareBlock\">
            <image id=\"1\">Assets/Img1.jpg</image>
            <image id=\"2\">Assets/Img2.jpg</image>
            <image id=\"3\">Assets/Img3.jpg</image>
        </binding>
    </visual>
</tile>

現時点では、基本的にこれらの画像を開始画面に表示するようにしています。私の推測では、それVisibilityChangedはあまりにも頻繁に発生するように見えるので、間違ったイベントです。

4

1 に答える 1

4

TileSquareBlock テンプレートに画像が含まれていないため、使用されている XML は無効です。タイル テンプレート カタログを参照して、さまざまなビジュアル テンプレートとそれに対応する XML を確認してください。

NotificationsExtensions ライブラリ ( MSDN タイル サンプルにあります) は、イメージ フィールドとテキスト フィールドを名前付きプロパティにマップするオブジェクト モデルを提供します。これにより、より多くの検証が提供され、コードが簡素化される場合があります。

于 2012-10-01T13:24:23.117 に答える