Avalonia を使用してクロスプラットフォームのデスクトップ MVVM アプリケーションを開発していますが、問題はかなり単純です。
ウィンドウ全体をターゲット デバイスのディスプレイ解像度に合わせたいと思います。たとえば、UI は常にディスプレイの 25 ~ 50% をカバーするようにスケーリングする必要がありますが、それ以上大きくすることはできません。スケーリングには、すべてのフォント サイズ、幅と高さのプロパティなどを含める必要があります。ここで視覚化するために、私の 4K デスクトップでどのように見えるかを示します。
解像度がかなり低い私のLinuxラップトップでは、次のようになります。
私がやりたいのは、ディスプレイの解像度に応じてすべてを拡大または縮小して、ゴミのように見えないようにし、フォントが常にはっきりと読めるようにすることです(フォントも拡大縮小する必要があります)。 (おそらく UI スケーリング用の WinAPI 呼び出しもありますが、このソリューションは Linux と OSX でも動作するはずです)
これは、Avalonia を使用してどのように実装できますか? または、これを達成するための好ましい方法はありますか?
アプリケーションの幅と高さの比率は一定に保つ必要があり、アプリケーションが画面全体をカバーしてはならないことに注意してください。
これまでの私の考え:
おそらく、すべてのサイズ パラメーターのバインドを作成し、何らかの倍率を使用してアプリケーションの起動時に最適なサイズを再計算することもできますが、これには大量の新しいコードが必要であり、フォント サイズを実装するのは面倒です。
バインディングや、CSS メディア クエリなどのスタイル プリセットの束を作成することもできますか? それも大変な作業になりますが。
目的の効果を達成するためのより良い方法はありますか?