Как я могу запретить конструктору VS WPF ставить поля для каждого объекта из панели инструментов - PullRequest
5 голосов
/ 30 января 2009

Когда я перетаскиваю элемент управления из панели инструментов в область разработки WPF Visual Studio 2008, он устанавливает поле на основе того, где я его отбросил, и размера по умолчанию.

Можно ли как-то запретить настройку VS? Когда я опускаю элемент управления на панель стека, я хочу, чтобы он перетек в существующие элементы управления на панели.

Спасибо!

Ответы [ 3 ]

4 голосов
/ 31 января 2009

Я никогда не нашел способ предотвратить это. Я просто вместо этого набираю XAML.

EDIT

Я написал вышесказанное почти три года назад. Между тем, похоже, что опыт разработки стал намного лучше.

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

Вот ссылка на статью, в которой показано, как использовать инструменты дизайна в Visual Studio 2010 для создания формы без необходимости вводить XAML. (Несмотря на название, речь идет о WPF.)

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

Методы компоновки для разработчиков форм Windows

0 голосов
/ 02 февраля 2009

К сожалению, похоже, нет средства сделать это.

Размер по умолчанию устанавливается в результате того, что вы манипулируете размером своего элемента управления дизайнером. Когда вы увеличиваете ширину и / или высоту элемента управления, дизайнер интерпретирует ваши действия как запрос на создание элемента управления с указанной шириной и / или высотой.

С аналогичной ситуацией сталкиваются поля. Когда вы изменяете положение своего элемента управления в конструкторе, он изменяет свойства для достижения созданного макета. В случае большинства контейнеров самое простое решение - изменить поля для достижения желаемой позиции, как вы уже указали, простое решение не всегда является наиболее желательным.

Лично я предпочитаю использовать только редактор XAML и лишь изредка осматривать WPF Designer, когда хочу увидеть текущий макет. Я также склоняюсь к использованию Grid для компоновки большинства моих окон / элементов управления, поскольку он обеспечивает наибольшую гибкость не только для определения размера и расположения, но и для других задач / функций, таких как анимация, преобразования и т. Д.

0 голосов
/ 31 января 2009

Когда я помещаю элемент управления в панель стека, он не добавляет полей, он «втекает» вместе с остальными.

Элементы управления, которые вы перетаскиваете на поверхность конструктора, по умолчанию имеют поле, потому что именно так он знает, где он находится. Обычно я создаю сетку и устанавливаю ее поле там, где я хочу, а затем создаю столбцы и строки для размещения элементов управления. Я добавляю другие свои элементы управления, которые добавляют поля, которые обычно не те, которые я хочу. После того, как все мои элементы управления в моей сетке размещены на разумном месте, я переключаюсь в представление XAML и либо полностью удаляю поле (что приводит к тому, что элемент управления, такой как кнопка, заполняет все пространство), либо делаю поле примерно как 5, что приводит к приятная прокладка вокруг элемента управления.

Итог ... и это особенно верно при разработке Silverlight, вы должны привыкнуть к непосредственному управлению XAML. Это единственный способ получить макет именно там, где вы хотите. Это мое мнение, и большинство в моем магазине занимаются разработкой WPF / silverlight.

...