В нем будет куча окон, и это не просто типа окошки с разными гридами, там разные контролы могут быть, окна действительно разные. Но при этом схожи, в основе таб контрол, два таба одинаковы, остальные различаются. В табах отображаются настройки вские... Поэтому на форме кнопки ОК и Cancel, она либо запишет обновленную инфу, либо просто закроется. Почти никаких действий.
Да, можно их ручами написать все. Но, если понадобится стиль приложения изменить, иконки к каким-то пунктам добавить, даже одинаковые... И тут мы можем дружно застрелиться, т.к. на любую мелочь уйдет куча времени.
Простой вопрос — как их можно сгенерировать наиболее разумным способом? Или делать простой список контролов и т.д. в XML, по нему делать XAML а его через XamlReader подгружать?
Runtime генерацию не рассматриваете? Возможно, будет проще строить динамические окна и навешивать на них украшения (иконки, стили) чем хранить несколько мегабайт компилированного XAML'a.
Здравствуйте, DmitryMS, Вы писали:
DMS> Runtime генерацию не рассматриваете? Возможно, будет проще строить динамические окна и навешивать на них украшения (иконки, стили) чем хранить несколько мегабайт компилированного XAML'a.
Здравствуйте, squid, Вы писали:
S>Здравствуйте, DmitryMS, Вы писали:
DMS>> Runtime генерацию не рассматриваете? Возможно, будет проще строить динамические окна и навешивать на них украшения (иконки, стили) чем хранить несколько мегабайт компилированного XAML'a.
S>ну я о том и говорю... но как и из чего...
В коде. Все то, что вы задаете в XAML — можно написать тупо императивным кодом.
Здравствуйте, bober_maniac, Вы писали:
b> DMS>> Runtime генерацию не рассматриваете? Возможно, будет проще строить динамические окна и навешивать на них украшения (иконки, стили) чем хранить несколько мегабайт компилированного XAML'a.
b> S>ну я о том и говорю... но как и из чего...
b> В коде. Все то, что вы задаете в XAML — можно написать тупо императивным кодом.
Неее... Это криво и не удобно... И никакой гибкости не вижу.
Здравствуйте, squid, Вы писали:
S>Простой вопрос — как их можно сгенерировать наиболее разумным способом? Или делать простой список контролов и т.д. в XML, по нему делать XAML а его через XamlReader подгружать?
1) Вынести как можно больше всего в отдельный stylesheet
2) Генерации XAML из XML на мой взгляд смысла особого не имеет, скорее всего в конечном итоге XML будет напоминать конечный XAML, если не объемистей. Но вообще все сильно зависит от того, насколько единообразен интерфейс.
Здравствуйте, squid, Вы писали:
S>Привет
S>Начинаем WPF приложение.
S>В нем будет куча окон, и это не просто типа окошки с разными гридами, там разные контролы могут быть, окна действительно разные. Но при этом схожи, в основе таб контрол, два таба одинаковы, остальные различаются. В табах отображаются настройки вские... Поэтому на форме кнопки ОК и Cancel, она либо запишет обновленную инфу, либо просто закроется. Почти никаких действий.
S>Да, можно их ручами написать все. Но, если понадобится стиль приложения изменить, иконки к каким-то пунктам добавить, даже одинаковые... И тут мы можем дружно застрелиться, т.к. на любую мелочь уйдет куча времени.
S>Простой вопрос — как их можно сгенерировать наиболее разумным способом? Или делать простой список контролов и т.д. в XML, по нему делать XAML а его через XamlReader подгружать?
S>Я даже примерно не представляю как это делается.
S>Сорри за путанность некоторую.
Эммм... а что мешает сделать один темплейт окна, и в нем отображать ViewModels нужные?
судя по вашим постам, вы никогда не занимались практичеким программированием. купите книжку, а лучше устройтесь младшим разработчиком в софтверную компанию. программирование есть процесс творческий до определенной степени вам никто не напишет пошаговую инструкцию здесь.
Здравствуйте, Codechanger, Вы писали:
C> Эммм... а что мешает сделать один темплейт окна, и в нем отображать ViewModels нужные?
ну да... но если понадобится внести изменения в интерфейс вроде "а вот тут мы добавим иконку с вопросиком для помощи для всех TextBox и ComboBox" — все равно ведь придется каждую менять? или я не совсем вас понимаю.
Здравствуйте, DmitryMS, Вы писали:
DMS> судя по вашим постам, вы никогда не занимались практичеким программированием. купите книжку, а лучше устройтесь младшим разработчиком в софтверную компанию. программирование есть процесс творческий до определенной степени вам никто не напишет пошаговую инструкцию здесь.
Здравствуйте, squid, Вы писали:
C>> Эммм... а что мешает сделать один темплейт окна, и в нем отображать ViewModels нужные?
S>ну да... но если понадобится внести изменения в интерфейс вроде "а вот тут мы добавим иконку с вопросиком для помощи для всех TextBox и ComboBox" — все равно ведь придется каждую менять? или я не совсем вас понимаю.
Ага, а еще придется к каждой такой иконке привязывать урл хелпа. Почти наверняка придется документацию выборочно править. Вобщем экономия на непосредственной вставке самой иконки будет несущественная.
Здравствуйте, Ziaw, Вы писали:
Z> Ага, а еще придется к каждой такой иконке привязывать урл хелпа. Почти наверняка придется документацию выборочно править. Вобщем экономия на непосредственной вставке самой иконки будет несущественная.
Да нет, это можно просто хинтом сделать.
А вообще я решил сделать как в Opera.
В WPF реализовано через свой контрол для каждой линии настроек в диалоге, будь то простой контрол типа checkbox или что-то "сложное" вроде списка файлов с диалогами добавления и т.д. Все эти контролы просто ложаться в StackPanel в итоге. Ну или несколько. А в итоге при создании окна выбираются необходимые StackPanel со всем что нужно. Очень просто выходит. При это скажем в случае чего обновляем маленький UserControl линии настроек, скажем контекстное меню особое к Edit вчера прикрутил. И теперь оно во всех диалогах. Вобщем, мне этот путь подошел. Не знаю правда, одобрит ли его кто
Здравствуйте, squid, Вы писали:
S>Простой вопрос — как их можно сгенерировать наиболее разумным способом?
Зависит от глубины тюнинга. Я начал с тупого Перл-парсера C# исходников (по строке на проперть, в комментах к которым делал доп. настройку). Сейчас задачи разрослись так, что хорошо бы уже перейти на атрибуты пропертей, которые парсить уже C#-овым кодом. Но атрибуты вначале были неразумны ввиду их разнообразия и захламления кода (комменты были намного короче). Вот вам мои грабли — решайте
Здравствуйте, matumba, Вы писали:
M>Я начал с тупого Перл-парсера C# исходников
Да, извиняюсь, если не догадались уже: генерировал статический XAML, т.к. его "динамические" возможности ущербные. А делать всё из кода неудобно — XAML для этого не приспособлен вообще.
Если интересно, вот схема апдейта: захотели, скажем, на всех кнопках иконку. Берём сгенерированный файл, правим его копию в _нормальном_дизайнере_, находим отличия с исходным (их м.б. много) и вставляем отличия в шаблон. Перегенерируем файлы -> profit.
Как вариант (если у вас есть пара "форм-извращенцев" — которым нужен доп. код) можно держать более одного шаблона и вставлять в них общий для всех код.
Здравствуйте, squid, Вы писали:
S>Все эти контролы просто ложаться в StackPanel в итоге.
Некузяво. Наилучшим дизайном считается столбец лэйблов, выравненных вправо, после которых идёт столбец редакторов, выравленный влево, т.к. левая и правая часть прижаты к центральной оси. Лучший лэйаут для этого — Grid, но для него придётся повозиться с номерами строк (что не так и страшно).
Здравствуйте, matumba, Вы писали:
m> Некузяво. Наилучшим дизайном считается столбец лэйблов, выравненных вправо, после которых идёт столбец редакторов, выравленный влево, т.к. левая и правая часть прижаты к центральной оси. Лучший лэйаут для этого — Grid, но для него придётся повозиться с номерами строк (что не так и страшно).
Ровнять можно как угодно, внутри UserControl ведь оно идет как-бы. Одна линия — UserControl.
А они ровненько лежат в StackPanel.
В Grid тогда отдельно бы Columns/Rows для выравнивания и все такое) И вместо одного контрола — куча. В случае Edit — еще и куча кода для диалогов выбора файла/каталога и т.д. А так — бросил на формочку — и всё. Т.е. пр усложнении твой подход похуже становится.
Здравствуйте, squid, Вы писали:
S>Привет
S>Начинаем WPF приложение.
S>В нем будет куча окон, и это не просто типа окошки с разными гридами, там разные контролы могут быть, окна действительно разные. Но при этом схожи, в основе таб контрол, два таба одинаковы, остальные различаются. В табах отображаются настройки вские... Поэтому на форме кнопки ОК и Cancel, она либо запишет обновленную инфу, либо просто закроется. Почти никаких действий.
S>Да, можно их ручами написать все. Но, если понадобится стиль приложения изменить, иконки к каким-то пунктам добавить, даже одинаковые... И тут мы можем дружно застрелиться, т.к. на любую мелочь уйдет куча времени.
S>Простой вопрос — как их можно сгенерировать наиболее разумным способом? Или делать простой список контролов и т.д. в XML, по нему делать XAML а его через XamlReader подгружать?
S>Я даже примерно не представляю как это делается.
S>Сорри за путанность некоторую.
Ресурсы + стили. Стили можно опредилить как для одной например кнопки так и сразу для всех кнопок или любого элемента. Это — как отправная точка