我希望能够从用户导航到的位置插入页面,我希望根据用户选择的条目动态显示其内容。第一副瓷砖,我可以这样做,但问题是,当开始菜单上有多个次级瓷砖时,所有二级瓷砖都链接到页面,但是页面的内容与最后一个二级瓷砖相同。
以下是我所做的:
从页面导航到的位置,我接收到信息并将其设置为显示在页面上,如下所示:
protected override void OnNavigatedTo(NavigationEventArgs e)
{
base.OnNavigatedTo(e);
if (!IsolatedStorageSettings.ApplicationSettings.Contains("isolated_image"))
{
IsolatedStorageSettings.ApplicationSettings.Add("isolated_image", NavigationContext.QueryString["pro_image"] as string);
}
![enter image description here][1]
imageBase = (IsolatedStorageSettings.ApplicationSettings["isolated_image"] as string);
StreamResourceInfo sri = null;
Uri uri = new Uri(imageBase, UriKind.Relative);
uriString = uri.ToString();
sri = Application.GetResourceStream(uri);
BitmapImage bitmap = new BitmapImage();
bitmap.SetSource(sri.Stream);
base64 = ((App)Application.Current).ImageToBase64(bitmap);
item_image.Source = ((App)Application.Current).ImageFromBase64(base64);
if (!(IsolatedStorageSettings.ApplicationSettings.Contains("item_name")))
{
IsolatedStorageSettings.ApplicationSettings.Add("item_name", PhoneApplicationService.Current.State["pro_name"]);
}
ShellTile secondaryTile = this.FindTile(SecondaryTileUriSource);
if (secondaryTile != null)
{
item_image.Source = ((App)Application.Current).ImageFromBase64(base64);
}
txtb_product_name.Text = PhoneApplicationService.Current.State["pro_name"] as string;
}
根据我得到的信息,当用户按下pin应用程序栏时,我创建了基于"?image_item="+imageBase的唯一uri的二次瓷砖
void btnPin_Click(object sender, EventArgs e)
{
ShellTile tile = this.FindTile(SecondaryTileUriSource);
if(tile==null)
{
StandardTileData tileData = this.GetSecondaryTileData();
Uri uri = new Uri("/All Files/Product Files/Dry/Product Detail.xaml?item_image=" + imageBase, UriKind.Relative);
MessageBox.Show("the link uri is "+ uri.ToString());
ShellTile.Create(uri, tileData);
}
}
最后,当我在“开始”菜单中有了多个辅助瓷砖时,第一个和第二个次要瓷砖将在页面上显示与我固定的最后一个二级瓷砖相同的内容。
我确信这个链接uri已经是唯一的;否则,我就不能创建多个第二块。有人能帮我什么忙吗?谢谢
发布于 2014-09-21 02:10:56
首先,我会更改您的钉扎逻辑,而不是从您的图像数据创建字符串,而是使用某种ID来标识图像.你目前的做法是不必要的复杂。
它可以简单得有: image1、image2、image3等。然后从查询字符串中获取id并构造映像uri,如:new Uri("../image" + id)
如果您已经成功地创建了多个辅助块,那么每个块都必须是唯一的,您的问题可能在于解析OnNavigatedTo()
中的查询字符串。
https://stackoverflow.com/questions/25957152
复制相似问题