[英]VisualStateManager Open Page in Snapped View
我正在使用C#和Xaml开发Windows 8 Metro风格的应用程序。 我得到了一个以联合项目为数据源的联合新闻提要网格。 当我单击一个项目时,我希望页面的视图状态被捕捉,并使浏览器控件处于填充视图状态,以便我的应用程序捕捉到320的宽度,并在浏览器控件1024填充的viewstae中打开网站。
我正在使用以下代码块。 页面正确对齐,但应用程序未对齐。 我该怎么做才能实现我的目标,即对应用程序进行快照的填充+快照合并和浏览器控件的填充。
这是我正在使用的代码:
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;
}
您无法以编程方式更改任何Windows Store应用程序的捕捉/填充/最大化状态。 它只能响应用户启动的请求来完成。 (这样做是为了防止应用程序进行欺骗或以其他方式进行恶意行为。)
如果它处于最大化视图中,并且如果您已经处于快照视图中,那么您可能需要考虑在应用程序中托管浏览器实例(WebView),然后启动外部浏览器(希望它会充满)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.