2

WinForms と XAML は、CSS と同じロジックの恩恵を受けられませんか?


今朝、Stackoverflow で未回答の質問をいくつか閲覧していたときに、ふと思いつきました。

FlowLayoutPanelまたはTableLayoutPanelを使用していない場合、WinForm でコントロールをレイアウトすると、正しく行わないと非難されます

これは、CSS 対 Tablesに関する html の世界での (宗教的な) 議論とは対照的です。

テーブルでレイアウトされたUIの保守性の問題は、WinFormsに移植されたように思えます。また、HTML の形式と考えることができる XAML では、テーブル ベースのレイアウトが採用されています。テーブルを使用せずに XAML で何かを行うのは困難です。

WinForms と XAML は、CSS と同じロジックの恩恵を受けられませんか? テーブルのメンテナンスの問題をなくすことはできませんか? アクセシビリティは、テーブルを使用してレイアウトされた WinForm または WPF フォームの問題ではないことを認識しています。リーダーはレイアウト パネルを「見る」ことはありません。これは、WinForms には存在しない CSS の問題です。

しかし、WinForms/XML は非テーブル ベースのレイアウトの恩恵を受けられないのでしょうか? テーブルベースのアプローチでは、 「 OK 」ボタンの 3 つのダイアログ単位を左に移動する必要がないことは確かにわかっています。

4

4 に答える 4

4

HTML と XAML を比較することはできないと思います。XAML でのテーブル ベースのレイアウト (グリッド) の実装は、HTML テーブルの実装よりもはるかに優れています。はるかに簡単に操作でき、HTML テーブルと同じ問題 (クロスブラウザーのクェーク) はありません。

また、私はあなたのコメントに同意しません...

テーブルを使用せずに XAML で何かを行うのは困難です。

XAML には非常に多くのレイアウト オプションがあるため、グリッドを一度も使用しなくてもアプリケーション全体を作成できます。グリッドを使用する方が簡単かもしれませんが、他のレイアウト要素を使用するのが難しいというわけではありません。実際、私はグリッドと同じくらい Stackpanels と Canvases を使用しています。

シナリオごとに正しい要素を使用することが問題になります。Web アプリケーションから来て、HTML と CSS を何年も書いてきた私は、XAML がインターフェイスのレイアウトを簡単にする素晴らしいマークアップであることを知りました。

あなたの質問に答えるために... XAML は CSS ロジックから恩恵を受けることができますか? はい、そうです。MS は CSS から素晴らしいものを取り入れましたが、優れたマークアップも作成しました。

于 2009-07-06T15:42:12.907 に答える
1

あなたは言う:

テーブルでレイアウトされたUIの保守性の問題は、WinFormsに移植されたように思えます。そして、HTML の形式と考えることができる XAML を使用します。

しかし、あなたは CSS の要点を見逃しています。CSS はテーブル レイアウトの使用を避けることではなく、コンテンツをレイアウトから分離することです。

HTML では、HTML は「コンテンツ」(実際のテキスト、および論理段落への構造) を提供し、CSS はこのコンテンツのレイアウト方法に関する情報を提供します (理想的には、CSS ファイルを別の表示用に切り替えることができるようにするため)。メソッドと同じコンテンツが適切に表示されます)

XAML/WPF は同じ機能を提供します (程度は低いですが、WinForms も同様です)。XAML (または WinForms GUI コード) は、レイアウトと視覚的なものを提供します。コード ビハインド (できれば、WPF のMVVMや WinForms の MVCなどの優れた分離パターンに従う) がコンテンツを提供します。適切に記述すれば、XAML (または WinForms GUI コード) を交換して、さまざまな状況で代替のレイアウト/GUI を提供できるはずです。

テーブル ベースのレイアウトに問題はありません。プレーンな HTML テーブルを使用したテーブル ベースのレイアウトの問題は、コンテンツとレイアウト コードがすべて 1 つの大きなごちゃまぜになっていることです。HTML テーブルは、提供するコンテンツが本質的に表形式である場合にのみ使用する必要があります。その場合でも、CSS ルールでレイアウトおよびフォーマットする必要があります。表以外のコンテンツのレイアウトや書式設定に HTML テーブルを使用しないでください。

したがって、WPF/XAML は既に HTML+CSS のような構造になっています。間違った部分を比較しただけです。XAML はレイアウトを提供し、CSS に相当します。コード ビハインド (または mvvm のビュー モデル/モデル) は、コンテンツを提供する HTML に相当します。

于 2009-07-06T15:41:50.273 に答える
0

HTML/CSS スキームの問題点は、それがユーザー インターフェイス言語ではなく、ドキュメント言語として設計されていることです。プレゼンテーションをコンテンツから完全に分離することは、実際にはドキュメントにのみ役立ちます。グリッド レイアウトを持たない HTML でユーザー インターフェイスを開発しなければならないのは狂気の沙汰です。まあ、それは私たちを雇用し続けます。

HTML 5 が取っている方向性は、痛みを軽減する上で有望に見えます。ただし、今のところ、Flex や Silverlight などの RIA に固執します。

于 2009-07-07T06:25:35.430 に答える
0

HTML でレイアウト目的でテーブルを使用することに反対する主な理由の 1 つは、セマンティクスとアクセシビリティです。<table> タグは、表形式の情報を含めることを目的としており、スクリーン リーダーなどをレイアウト目的で使用するユーザーにとっては、頭痛の種になる可能性があります。ただし、XAML のレイアウト コンテナーは、コントロールを含み、それらをユーザーの画面に配置して、隣接するコントロールから分離し、適切にグループ化することを目的としています。

もう 1 つの問題は、クリーンなコードを生成することです。HTML ドキュメントは、正しくマークアップされていれば、ドキュメント コンテンツのみを含み、スタイリングは別の CSS ファイルに保持されます。XAML ファイルは CSS と同等であり、UI のレイアウトを記述し、使用している言語のソース ファイルによって記述される実際のプログラムからそれを分離します。

XAML と HTML が XML っぽいからといって、同じ種類のデータをカプセル化するわけではありません。CSS が XML 形式である場合、XAML を HTML またはこの (X)CSS と比較しますか?

于 2009-07-06T16:04:51.167 に答える