2

WindowsMo​​bile6.5用のCompactFrameworkアプリケーションを作成しています。アプリケーションは、Windowsphoneマーケットプレイスで販売されます。そのためには、さまざまな画面サイズと解像度をサポートする必要があります...しかし、これを行うにはどうすればよいですか?ベストプラクティスなどはありますか?私は主に標準のコントロールを使用していますが、メインフォームの背景画像...アプリを実行しているデバイスに応じて、任意の解像度で保存して動的に表示する必要がありますか?

あなたの提案と助けてくれてありがとう

トーマス

4

3 に答える 3

2

これは物議を醸すトピックだと言い始めます。

私の個人的な意見では、大幅に異なる解像度/サイズ範囲を特定し、ある範囲から別の範囲へのサイズ変更を検出したときにスワップできる別の UI レイヤーを提供する必要があります (動的に切り替える必要さえない場合があります-その点で)ロード時にチェックするだけの場合)。このアプローチは、特定する範囲が非常に限定されていて、互いに類似している場合、明らかに意味がありません。同じ範囲内であれば、アプリは適切にサイズ変更できるはずです。

同じ UI レイヤーで考えられるすべての解像度に対処しようとするのは素晴らしいアイデアのように思えるかもしれませんが、失敗の元になる可能性があります。うまくいくかもしれませんが、ピクセル サイズを調べたり、コントロールのサイズを変更したり、物事を移動させたりする一連の IF-ELSE ステートメントと SWITCH ステートメントを使用して、文字列の玉になってしまう可能性が非常に高くなります。

考えてみれば、Google マップ (iPhone アプリについて考えてみてください) は、モバイルとデスクトップ ブラウザーなどで同じ UI を提供しません。それが私たちが話しているサイズの違い (モバイル VS デスクトップのような解像度) である場合は、上記の私の提案に従って、さまざまな UI レイヤーをロールする必要があります。

聖杯はいわゆるLiquid Layoutです。WPFはこれに役立ちますが、コンパクトなフレームワークを使用しているため、除外されています。

私は最近、よく似た質問をしました。異なる意見を読みたい場合は、こちらをご覧ください

于 2009-11-13T17:51:48.373 に答える
0

これはタフです。次の低労力プランで妥当な結果が得られました。(これはWinform指向です、ところで)

最大の問題は、解像度が予想よりも小さいことです。したがって、画面をできるだけ小さく作成し、アンカーとドッキングの設定に特に注意してください。各フォームを表示するときは、それを全画面表示に設定します。アンカー プロパティは、適切な方法で物事を表示するという合理的な仕事を行う必要があります。

これは、解像度が予想よりもはるかに大きい場合にのみ、ばかげているように見え始めます。
Screen.PrimaryScreen.Bounds 呼び出しを介して、現在のプラットフォームの画面サイズを確認できることに注意してください。

于 2009-11-16T17:49:50.703 に答える
0

私は最近、試してみるためだけに小さなアプリを作成しました。背景画像を表示する必要があったため、Label などの組み込みコントロールは透明な背景をサポートしていないため使用できませんでした。

最終的に、GDI+ を使用して、フォームの Paint イベントでインターフェイス全体を描画しました。

さまざまな画面解像度の処理は非常に簡単であることが判明しました。インターフェイスは通常の 96dpi 画面 (最小) 用にプロトタイプ化され、すべてのサイズは 96/actual_dpi として計算される係数を使用してスケーリングされます。ここにあるコードを使用して、画面の実際の DPI 設定を取得できます(少し古いですが、まだ機能しています)。次に、エミュレーターが提供するすべての解像度でアプリケーションをテストしましたが、問題は見つかりませんでした。

警告: 画面の下部を「無駄に」したので、正方形の画面と横向き/縦向きの向きに対処するために特別なものは必要ありませんでした。

于 2009-11-16T18:02:06.153 に答える