0

C# と Xaml を使用して Windows 8 メトロ スタイル アプリケーションを開発しています。シンジケーション アイテムをデータソースとして含むシンジケーション ニュース フィード グリッドを取得しました。アイテムをクリックすると、ページのビュー ステートがスナップされ、ブラウザー コントロールが塗りつぶされたビュー状態になり、アプリケーションが幅 320 にスナップされ、Web サイトがブラウザー コントロール 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;

    }
4

1 に答える 1

1

Windows ストア アプリケーションのスナップ/塗りつぶし/最大化状態をプログラムで変更することはできません。これは、ユーザーが開始した要求に応じてのみ実行できます。(これは、アプリケーションのなりすましやその他の悪意のある動作を防ぐために行われます。)

アプリケーションが最大化されたビューの場合は、代わりにアプリケーション内でブラウザー インスタンス (WebView) をホストすることを検討することをお勧めします。また、既にスナップ ビューになっている場合は、外部ブラウザーを起動します (うまくいけばいっぱいになるはずです)。

于 2012-08-23T22:26:50.710 に答える