アプリケーション用に約100個のHubtilesを作成しました。タップされたときにXMLファイルを読み込み、ユーザーが「開始する」ことができるようにしますアプリの外の画面に希望のHubtileアプリケーション内からタイルを開始するためのWindows Phone 7のピン
すべてのHubtileは異なるXMLファイルを読み込み、開始するように固定できる必要があります。
私はそれを開始するためにコードを知っています。私はそれがXMLを読むようにするコードを知っていますが、100個のタイルがあり、それは多くの行のコーディングとコピー/貼り付けになります。
これは、アプリケーションからポップするとXAMLに開始するように固定することができるようにするタイルのための私のコードです:
<toolkit:HubTile Name="Monday" Title="Monday" Source="Days\Weekdays\Monday.png" Margin="15" Tap="day_Tap">
<toolkit:ContextMenuService.ContextMenu>
<toolkit:ContextMenu>
<toolkit:MenuItem Name="monday" Header="pin to start" Tap="monday_Tap"/>
</toolkit:ContextMenu>
</toolkit:ContextMenuService.ContextMenu>
</toolkit:HubTile>
そして、それがすでに存在する場合は作成し、チェックするためのCSファイルの背後にあるコード:
private void monday_Tap(object sender, System.Windows.Input.GestureEventArgs e)
{
CreateLiveTile(Monday, "path-to-xml", "monday_Square_0.png");
}
private void CreateLiveTile(HubTile hubtile, string link, string id)
{
StandardTileData LiveTile = new StandardTileData
{
Title = hubtile.Title,
BackBackgroundImage = (hubtile.Source as BitmapImage).UriSource
};
ShellTile Tile = ShellTile.ActiveTiles.FirstOrDefault(x => x.NavigationUri.ToString().Contains("id=" + id));
{
if (Tile == null)
{
ShellTile.Create(new Uri("/Show.xaml?id=" + id + "&link=" + link, UriKind.Relative), LiveTile);
}
else
{
MessageBox.Show("The tile is already pinned");
}
}
}
それは1つのタップイベントハンドラで発生するか、私はhubtilesを開始するために、すべての100枚のタイル100件のタップのイベントハンドラと、各XMLファイルのための100本のパスとピンのための100のイベントハンドラを必要としないための動的な方法はありますxamlのすべてのハブタイルに同じことを書いていますか?
private void Week_Tap(object sender, System.Windows.Input.GestureEventArgs e)
{
String a = (((Microsoft.Phone.Controls.HubTile)(sender)).Source as BitmapImage).UriSource.OriginalString;
String b = a.Replace(((Microsoft.Phone.Controls.HubTile)(sender)).Title + "_Square_0.png", "week.xml");
String weekPath = a.Replace(((Microsoft.Phone.Controls.HubTile)(sender)).Title + "_Square_0.png", "");
String weekName = ((Microsoft.Phone.Controls.HubTile)(sender)).Title;
NavigationService.Navigate(new Uri("/Show.xaml?parameter=" + b, UriKind.Relative));
}
感謝を! –