当我使用静态轮毂时,我正在使用开关和箱子创建二级瓷砖,每个案例都是hubtile的名称。 这行代码让我得到了点击的hubtile的名称:
string clickedElement = ((System.Windows.FrameworkElement)(sender)).Name;
我可以用它来创建它们。
我正在努力使动态hubtile能够被固定以开始使用Hold事件,但该行现在变为“”。
我的图块(8)是从xml文件
创建的<root>
<categories>
<category>
<categoryID>1</categoryID>
<categoryName>chicken</categoryName>
<ImageUri>chicken1.png</ImageUri>
</category>
...
</categories>
</root>
读取xml文件的代码:
XDocument loadedData = XDocument.Load("xmlFiles/categories.xml");
var data = from query in loadedData.Descendants("category")
select new Category
{
categoryID = (string)query.Element("categoryID"),
categoryName = (string)query.Element("categoryName"),
};
tileList.ItemsSource = data;
xaml代码是:
<ListBox Grid.Row="0" x:Name="tileList">
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<toolkit:WrapPanel Orientation="Horizontal" />
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<ListBox.ItemTemplate>
<DataTemplate>
<toolkit:HubTile Margin="25"
Title="{Binding categoryName}"
Source="{Binding ImageUri}"
Tap="Selection_Tap"
Hold="SelectionPin_Hold">
</toolkit:HubTile>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
创建实时图块的代码
private void CreateLiveTile(HubTile hubtile, string Name)
{
StandardTileData LiveTile = new StandardTileData
{
Title = hubtile.Title,
BackBackgroundImage = (hubtile.Source as BitmapImage).UriSource
};
ShellTile Tile = ShellTile.ActiveTiles.FirstOrDefault(x => x.NavigationUri.ToString().Contains("Name=" + Name));
{
if (Tile == null)
{
ShellTile.Create(new Uri("/MainPage.xaml?Name=" + Name,UriKind.Relative), LiveTile);
}
else
{
MessageBox.Show("Tile already pinned");
}
}
}
CreateLive tiles方法实际上从未正常工作。它正在将辅助磁贴固定在屏幕上,但是当这些磁贴被点击时,它们会将我返回到MainPage.xaml而不是原始文件的导航Uri。但是不要为此烦恼,我改变了我的代码,因此每个hubtile都转到同一页面,但不同的数据是从另一个xml文件中动态显示的。
答案 0 :(得分:0)
没关系,我发现了它。我的误会。我现在必须使用的是
string clickedElement = ((System.Windows.FrameworkElement)(sender)).Tag;