我正在使用C#和Xaml开发一个Windows 8 metro风格的应用程序。我有一个联合新闻源网格,其中包含联合项目作为数据源。当我单击一个项目时,我希望快照页面的视图状态,并在填充视图状态下使用浏览器控件,以便我的应用程序捕捉到320宽度,并在浏览器控件1024填充视图中打开网站。
我正在使用以下代码块。页面正确捕捉但应用程序未捕捉。我该怎么做才能实现我的目标,即填充应用程序的Filled + Snapped组合并填充浏览器控件。
以下是我正在使用的代码:
private async void ItemView_ItemClick(object sender, ItemClickEventArgs e)
{
FeedItem feedItem = (FeedItem)e.ClickedItem;
feedItem.Read = true;
ListView lv = e.OriginalSource as ListView;
if (lv.SelectedItem != null)
{
ListViewItem li = lv.SelectedItem as ListViewItem;
if (li != null) li.Template = Application.Current.Resources["ReadStandard80ItemTemplate"] as ControlTemplate;
}
//this.ApplicationViewStates.
this.Width = 320;
this.HorizontalAlignment = Windows.UI.Xaml.HorizontalAlignment.Right;
var CurrentViewState = Windows.UI.ViewManagement.ApplicationView.Value;
this.MainFramne.Width = 320;
VisualStateManager.GoToState(this.MainFramne, "Snapped", false);
Snapped.Storyboard.Begin();
await Windows.System.Launcher.LaunchUriAsync(new Uri(feedItem.Link.ToString()));
var test = Windows.UI.ViewManagement.ApplicationView.Value;
}
答案 0 :(得分:1)
您无法以编程方式更改任何Windows应用商店应用的快照/已填充/最大化状态。它只能在响应用户发起的请求时完成。 (这样做是为了防止应用程序欺骗或恶意行为。)
如果您的应用程序处于最大化视图中,您可能需要考虑在应用程序中托管浏览器实例(WebView),并且如果您已经处于快照视图中,那么您将启动到外部浏览器(应该有望填充)