2

snapview が機能しているかどうかを JavaScript を使用して確認する方法を教えてください。

var SNAPPED_VIEW = 320;

window.addEventListener("resize", onViewStateChanged);

function onViewStateChanged(eventArgs) {
    var viewStates = Windows.UI.ViewManagement.ApplicationViewState, msg;
    var newViewState = Windows.UI.ViewManagement.ApplicationView.value;
    if (newViewState === viewStates.snapped) {
        var msg = new Windows.UI.Popups.MessageDialog("snap view mode");
    } else if (newViewState === viewStates.filled) {
        showMenu('filled');
    } else if (newViewState === viewStates.fullScreenLandscape) {
        showMenu('landscape');
    } else if (newViewState === viewStates.fullScreenPortrait) {
        //Currently not supported
    }
}

このコードを使用して実行しようとしていますが、ブレークポイントを使用すると未定義と表示されます。

4

2 に答える 2

1

私は最近、解決策を思いつきました。これは Windows 8 アプリ固有のものではないため、Windows.UI.

http://menacingcloud.com/?c=targetSnapMode

宣言と組み合わせると@viewport効果的なコンボになる。

@-ms-viewport { width: device-width; } @viewport { width: device-width; }

上記の@viewport宣言については、http://menacingcloud.com/?c=cssViewportOrMetaTagで説明されています。

于 2013-06-14T18:55:15.680 に答える
0

ジムが言ったように、コードは完全に正常に動作しますが、ダイアログは表示されません。テキスト ボックスを追加し、さまざまなビューに値を割り当てたところ、問題なく動作しました。

var SNAPPED_VIEW = 320;

window.addEventListener("resize", onViewStateChanged);

function onViewStateChanged(eventArgs) {
   var viewStates = Windows.UI.ViewManagement.ApplicationViewState, msg;
   var newViewState = Windows.UI.ViewManagement.ApplicationView.value;
   if (newViewState === viewStates.snapped) {
    document.getElementById("screenMode").innerText = "s";
   } else if (newViewState === viewStates.filled) {
    document.getElementById("screenMode").innerText = "f";
   } else if (newViewState === viewStates.fullScreenLandscape) {
    document.getElementById("screenMode").innerText = "l"
   } else if (newViewState === viewStates.fullScreenPortrait) {
    //Currently not supported
   }
}

HTML:

<input type="text" id="screenMode"/>
于 2013-08-22T15:59:31.187 に答える