20

これは単純な質問であり、一見単純な作業ですが、必要なことを達成する方法についての情報が見つかりません。

メインタイル(固定されている場合)をデフォルトの片面タイルにする必要がある場合と、タイルの背面に情報を表示する必要がある場合があるアプリケーションがあります。ScheduledActionServiceからBackBackgroundImage、BackContent、BackTitleを正常に追加できますが、不要になったときに削除できません。これはセカンダリタイルではないため、削除して再作成および再追加することはできません。

コードを介して両面タイルを片面に戻すことが可能かどうか誰かが知っていますか?もしそうなら、どうすればその動作を実現できますか?

編集

StandardTileDataオブジェクトから適用される設定は追加的です。たとえば、タイトルのみを指定した場合、他のすべての要素は同じままで、タイトルのみが更新されます。タイルの裏側に表示される3つのパラメーターをnullに設定しようとしましたが、部分的に成功しました。その結果、背景画像、タイトルテキスト、コンテンツテキストはすべて削除されますが、タイルが裏返され、完全に空の裏側が表示されます。

もう一度編集

したがって、ドキュメントを見ると、タイルの背面は前面とは異なる動作をします。バックコンテンツまたはバックタイトルをstring.Emptyに設定すると、それらが削除されます。そこにすべて良い。ただし、「空のURIに設定すると、BackBackgroundImageは表示されません」と表示されます。空のURIを作成するにはどうすればよいですか?新しいURI(string、Empty)を試しましたが、空のURIを作成しようとすると例外が発生します。これが私がやろうとしていることです。

4

3 に答える 3

28

OK、私はそれを持っていると思います、そしてそれはタイルデータが処理される方法の変更に関連しているようです...

以前は、値を空の文字列に設定すると、タイルに影響が出るようになりました。eaxmpleの場合、title = string.Emptyを設定すると、既存のタイトルはそのまま残ります。ただし、これでタイトルが空白になります。これは良いことです。つまり、BackTitleとBackContentの文字列を簡単に削除できるということです。途中です。

ここで、BackBackgroundImageを取り除くために、ドキュメントには「空のURIに設定すると、BackBackgroundImageは表示されません」と記載されています。-簡単な方法で空のURIを作成できないことを除いて、すべて問題ありません。私がそれを機能させる1つの方法は、存在しないURI値に設定することです。

BackBackgroundImage = new Uri("obviouslyMadeUpLocation", UriKind.Relative);

タイルに適用しようとすると例外がスローされると予想していましたが、そうではありません。背景画像をクリアするだけです。

以上です。私がする必要があると思われるのは、以下を呼び出してこれらのプロパティの設定を解除し、タイルを元の状態に戻すことだけです。

private void ResetMyMainTile()
{
    ShellTile tile = ShellTile.ActiveTiles.First();
    StandardTileData data = new StandardTileData
    {
        BackBackgroundImage = new Uri("IDontExist",UriKind.Relative),
        BackContent = string.Empty,
        BackTitle = string.Empty
    };
    tile.Update(data);
}
于 2011-07-07T11:37:10.030 に答える
1

これは私のために働きます。

new Uri("Background.png", UriKind.RelativeOrAbsolute);

ShellTile TileToFind = ShellTile.ActiveTiles.First();

        if (TileToFind != null)
        {

            StandardTileData NewTileData = new StandardTileData
            {
                Title ="Status",
                BackgroundImage = new Uri("Background.png", UriKind.RelativeOrAbsolute),
                Count = 0,
                BackTitle = "",
                BackBackgroundImage = new Uri("doesntexist.png", UriKind.RelativeOrAbsolute),
                BackContent = ""
            };

            TileToFind.Update(NewTileData);
        }
于 2012-01-16T18:47:36.330 に答える
0

タイル全体(すべての詳細)を以前と同じようにすべてに設定してみてください/現在は背景の詳細​​はありません。

更新
これは機能しませんか?:

ShellTile tile = ShellTile.ActiveTiles.First();
tile.Update(null);

また

tile.update(new StandardTileData());
于 2011-07-05T16:38:06.660 に答える