個人的には、インライン データ コレクションのフライアウトがあまり快適ではありませんでした。独自のグリッド構造のレイアウトとデザインで独自のモーダル コントロールを作成することにしました。
注意すべきことの 1 つは、カスタム ルートに進む場合は、data-win-options を使用してモーダルの配置を設定することです。そうしないと、フライアウト キーボードで奇妙なキーボード動作が発生します。
私は UX デザイナーとして、それぞれのコントロールを慎重に評価し、それぞれのシナリオで何が最適かを判断しています。ジェレミーが上で言ったように(ショーが大好きです)。収集しようとしている情報の量を特定することから始め、別の画面でこの情報を収集すると、フローが中断されます。したがって、ボタンから閉じるか、モーダルの外側にテーピングできる「ロックされた」モーダルが最善のアプローチのようです。
<style>
.customModal
width:500px
height:375px;
display: -ms-grid;
-ms-grid-columns: 100px 1fr 100px;
-ms-grid-rows: 100px 1fr 100px;
}
.CustomModalGridTitle {
-ms-grid-column: 1;
-ms-grid-row: 1;
-ms-grid-column-span: 3;
-ms-grid-row-span: 1;
z-index: 1;
opacity: 1;
}
.CustomModalGridContent {
-ms-grid-column: 1;
-ms-grid-row: 2;
-ms-grid-column-span: 3;
-ms-grid-row-span: 1;
z-index: 1;
opacity: 1;
}
etc.....
</style>
<div class="customModal" id="customModal" data-win-control="WinJS.UI.Flyout" data-win-options="{ placement : bottom;}" >
<div class=customModalGrid>
<div class="CustomModalGridTitle"></div>
<div class="CustomModalGridContent"></div>
<div class="CustomModalGridButtons"></div>
</div>
</div>
次に、MS のグリッド レイアウト ツールを使用して、ディスプレイ グリッドを構築し、再利用しやすくします。
それが私が取ったアプローチです:)。もちろん、customModal を起動するには、js でイベント リスナーを設定する必要があります。yourpage.js のどこかで
// Show the flyout
function showFormatTextFlyout() {
var myCustomModal = document.getElementById("formatTextButton");
document.getElementById("#customModal").winControl.show(myCustomModal);
}
// 必要な場合があります
外側の div がある場合は、それを 100% 幅に設定して、基本的にユーザー認証用のダイアログ コントロールを模倣できます。