2009-07-06 5 views
2

Может ли WinForms и XAML не пользоваться той же логикой, что и CSS?Может ли WinForms и XAML не пользоваться той же логикой, что и CSS?


Это произошло со мной сегодня утром, когда я просматривал некоторые из моих вопросов без ответа на Stackoverflow:

Если вы не используете FlowLayoutPanel или TableLayoutPanel, к элементам управления макета на ваш WinForm, вас обвинят не в doing it right.

Это противоречит (религиозным) дебатам в мире html около CSS vs Tables.

Мне кажется, что проблемы с ремонтопригодностью пользовательского интерфейса, выложенного таблицей, были перенесены в WinForms. И с помощью XAML, который можно представить из формы HTML, он охватывает табличные макеты. В XAML вам не составит труда что-то делать без использования таблиц.

Может ли WinForms и XAML не пользоваться той же логикой, что и CSS? Могут ли проблемы обслуживания таблиц не устраняться? Я понимаю, что доступность не является проблемой в форме WinForm или WPF, выложенной с использованием таблиц: читатель не будет "см." панель макета - так что это проблема в CSS, которая не существует в WinForms.

Но не может ли WinForms/XML извлечь выгоду из макетов, основанных на таблицах? Я знаю, что я, конечно, не хочу, чтобы переместить это «OK» кнопку 3 диалоговых блока слева в табличном подходе.

+0

не уверен, где вопрос? ... –

+0

Я могу понять напыщенность (я думаю), но было бы намного лучше, если бы это превратилось в настоящий вопрос. –

+0

«Html избегает таблиц, в то время как WinForms требует этого?» Простого да или нет было бы достаточно. –

ответ

1

Вы говорите:

Мне кажется, что ремонтопригодность проблемы пользовательского интерфейса положил с столом была портирована на WinForms. И с XAML, который может быть , который представляет собой форму HTML

но вы пропустили точку CSS. CSS заключается не в том, чтобы избежать использования табличных макетов, а в разделении содержимого из макета.

В HTML HTML содержит «контент» (фактический текст и его структуру в логические абзацы), а CSS предоставляет информацию о том, как этот контент должен быть выложен (в идеале, чтобы вы могли просто переключить CSS файлы для разных методов отображения и одинаковое содержимое будут отображаться соответствующим образом)

XAML/WPF обеспечивает такую ​​же способность (и в меньшей степени это делает WinForms). XAML (или графический интерфейс WinForms) предоставляет макет и визуальные материалы. Код (желательно после некоторого красивого шаблона разделения, такого как MVVM для WPF или MVC в WinForms) предоставляет контент. Написано правильно, вы должны иметь возможность поменять код XAML (или WinForms GUI) и предоставить альтернативный макет/графический интерфейс для разных обстоятельств.

В табличных макетах нет ничего плохого, проблема с табличными макетами с использованием простых таблиц HTML заключается в том, что он смешивает контент и код макета в одном большом беспорядке. Таблицы HTML должны использоваться только тогда, когда контент, который вы предоставляете, является табличным по своему характеру, а затем они все равно должны быть выложены и отформатированы с помощью правил CSS. HTML-таблицы не должны использоваться для выкладки и форматирования не табличного содержимого.

Итак, WPF/XAML уже структурирован как HTML + CSS, просто вы сравнили неправильные детали. XAML предоставляет макет и является эквивалентом CSS, а код позади (или модели/модели представления в mvvm) является эквивалентом HTML, поскольку он предоставляет контент.

+0

Я понимаю, что CSS не об избегании таблиц. Но дискуссия между таблицами стихов CSS заключается в том, чтобы избегать таблиц. Я также не согласен с тем, что XAML сродни CSS. CSS не определяет наличие меток, кнопок, полей ввода и т. Д. –

+0

Люди, которые обсуждают, говоря о CSS, об избегании таблиц говорят о неправильном использовании HTML-таблиц, а не о том, что таблицы в целом плохо подходят для макета. Стили CSS и выставляют кнопки. в клиентском программировании код позади определяет методы (действия, которые нужно предпринять), и XAML определяет расположение кнопок, их положение и действия, к которым они должны привязываться. HTML (+ javascript/whatever) определяет действия (в виде кнопки) и стили CSS/позиции/скрывает/показывает их. - это просто HTML-сообщение, которое должно быть здесь введено. Это зависит от CSS, чтобы решить, как отобразить это. –

4

Я не думаю, что вы можете сравнить HTML и XAML. Реализация табличного макета (Grids) в XAML намного превосходит реализацию таблиц HTML. С гораздо более удобной работой и с тем же багажом, что и в HTML-таблицах (кросс-браузерные запросы), нет.

Кроме того, я не согласен с вашим комментарием ...

Вы будете иметь трудное время делать что-либо в XAML без использования таблиц.

В XAML существует так много вариантов макета, что вы можете создать цельное приложение, не используя сетку один раз. Хотя может быть проще использовать Grids, это не означает, что вам будет сложно использовать другие элементы макета. Фактически, я использую Stackpanels и Canvas, насколько это возможно.

Это просто вопрос использования правильного элемента для каждого сценария. Я пришел из веб-приложений и писал HTML и CSS в течение многих лет, я нахожу, что XAML - замечательная разметка, которая делает ваш интерфейс легким, но не говоря уже обо всем остальном, что поставляется с XAML.

Итак, чтобы ответить на ваш вопрос ... может ли XAML извлечь выгоду из логики CSS? Да, и это так, MS взяла отличные вещи от CSS, но также сделала превосходную разметку.

+0

Я имею в виду «трудное время», потому что каждый пример и образец будут использовать панели макета таблицы. Вы будете идти против зерна - это прекрасно, но это только усложняет ситуацию. –

0

Одним из ключевых аргументов против использования таблиц для целей компоновки в HTML является семантика и доступность. A < Таблица > тег предназначен для размещения табличной информации, а для пользователей с программами для чтения и схожими с их использованием в целях компоновки может возникнуть настоящая головная боль. Однако контейнеры компоновки в XAML содержат элементы управления и размещают их на экране пользователя, отделяя их от соседних элементов управления и соответствующим образом группируя их.

Другая проблема заключается в создании чистого кода. Документ HTML, если он правильно помечен, должен содержать содержимое документа, а стиль - в отдельном файле CSS. Файл XAML более похож на CSS, описывая компоновку пользовательского интерфейса и изолируя его от фактической программы , которая описывается исходными файлами любого языка, который вы используете.

Просто потому, что XAML & HTML - это XML-ish, это не значит, что они инкапсулируют одни и те же данные. Если CSS был XML-форматом, вы бы сравнили XAML с HTML или этот (X) CSS?

+0

Нет, но вы знаете, что я имею в виду, сравнивая HTML и XAML. Xaml описывает структуру того, что появляется, а также HTML. Будет ли это или

0

Проблема со схемой HTML/CSS является то, что он был разработан в качестве документа языка, а не пользовательский интерфейс языка. Все разделение представления от контента действительно только приносит пользу документам. Безумие приходится разрабатывать пользовательские интерфейсы в HTML, у которых нет макетов сетки. Ну, это помогает нам работать.

Направление, которое HTML 5 делает, выглядит перспективным для уменьшения боли. Пока что, я буду придерживаться RIA, таких как Flex и Silverlight.

 Смежные вопросы

  • Нет связанных вопросов^_^