2009-10-04 6 views
6

どちらも同じ概念を採用しています。いくつかの行と列を定義し、特定の位置にコンテンツを追加します。しかし、グリッドは最も一般的なWPFレイアウトコンテナですが、htmlのテーブルベースのレイアウトはvery controversialです。では、なぜWPFのグリッドレイアウトが賞賛され、htmlのテーブルベースのレイアウトが「悪い」と考えられているのですか?WPFのグリッドベースのレイアウトは、htmlのタブーにあるテーブルベースのレイアウトと同じではありませんか?

+0

テーブル内にはHTMLで「タブー」が表示されていますか?あなたはテーブルを持っていて、それはテーブルのように見え、テーブルのように感じます。 –

+2

marc_s:表内の表データのレンダリングは、レイアウト要素として誤って使用されている表と同じではありません。 – Joey

答えて

10

ポイントは、WPFのグリッドはレイアウトメカニズムとして定義されていますが、HTMLの表は通常、WPFのDataGridなどを使用する表データのマークアップ用です。

この点でのHTMLの問題は、レイアウト用にテーブルを使用しているほどではありません。実際には、CSS3 Template Layout Moduleはそんなに違いはありません。問題は、テーブル内のコンテンツが意味構造を持たないため、読者や検索エンジンなどをスクリーニングすることができないことです。彼らは視覚的なレイアウト機構が視力を持たないもの(画面リーダー、Webクローラー、または盲人など)に意味をなさないので、表形式のデータを保持するテーブルをと期待しています。

WPFでは、これに対処するさまざまな方法があります。まず第一に、WPFはグラフィカルユーザーインターフェイス設計のためのものであり、非常に視覚的に根付いています。それは自動的に盲人のためにある特定の不適切なことを暗示します。さらに、Webクローラーは本当に懸念事項ではありません(XBAPをしばらく無視して、これまでに野生のものを見ていない)。 WPFは、Windowsの既存のアクセシビリティテクノロジと連携して、従来のWindowsアプリケーションと同じようにスクリーンリーダーがUIを理解できるようにします。したがって、HTMLに固有のものよりも、アクセシビリティのメタ情報がここにたくさんあります。また、外部にアクセスできるのは、完全レンダリングされたグリッドだけです。その下のマークアップではなく、画面のどこかにある一連のコントロールです。そしてそれらには同じルールが他のウィンドウと同じように適用されます。

HTMLのレイアウト用のもう1つの点は、コンテンツとプレゼンテーションを混在させることで、それらのうちの1つだけを変更することが困難になり、コンテンツにはまったく到達しにくくなります(スクリーンリーダーやWebクローラー)。 WPFでは、両方とも既に(データバインディングを介して)分離されており、レイアウトの一部をカプセル化するためのカスタムコントロールを構築し、文字列と画像をリソースに取り込むことによって、それらをさらに分離することができます。& c。要約すると、HTMLは複雑で魅力的なレイアウトを構築するための適切なメカニズムを持たず、テーブルはその問題の解決策であった(すべての固有の弱点と問題点を持つ)。一方、WPFは、その欠点を完全に解決するための技術や方法を根底から構築したものであり、実際にはそのほとんどが実際のベストプラクティスです。

+0

実際には、「なぜHTML5は、ちょうど「

」のように*正確に動作する新しいタグ「」を作成せず、Web開発コミュニティ全体に大きな頭痛を与えましたか? –

+0

もう少し進歩したCSSレイアウトで、うまくいきます。しかし、これらはまったく存在していても、最先端のブラウザでしかサポートされておらず、異なるブラウザー間でも一貫してサポートされていません。しかし、実際には、HTMLは、その目的のために特別に構築されたレイアウト言語と比べて、まだ貧弱(UI)レイアウト言語です。 – Joey

+0

私はそれの大きな部分は、ハードルが本当に何であるかを理解していないことと関係していると思います。多くの企業は、データをレイアウトと混在させるのが好きです。なぜなら、掻き落とすのがより難しくなりますが、誰もこれを認識していないため、かなりの数の実用的アプリケーションでは却下されたアイデアを先取りしています。結果は醜いです。 –

関連する問題