2015-12-13 4 views
0

Я знаю, что WPF обладает некоторыми мощными функциями, но для создания простого диалогового окна кажется сложным занятие.Simple Dialog Layout в WPF

У меня есть диалоговое макет с меткой, текстовым полем и кнопками. Но я не хочу этого в формате сетки. Я просто хочу, чтобы текстовое поле было привязано к ярлыку. И кнопки внизу с некоторым промежутком между ними.

Каковы наилучшие методы для такого макета в WPF? Сетка или любые другие функции компоновки просто не кажутся сконструированными так, чтобы хорошо работать для чего-то подобного.

(И BTW, я использовал Visual Basic с DOS, а затем с Windows. В те дни нам приходилось разрабатывать наши интерфейсы, используя интуитивно понятный интерфейс перетаскивания. В наши дни мы перешли на XAML, .? кажется неуклюжим в конструкторе и действительно требует вводить все эти вещи вручную, если вы хотите иметь полный контроль над что с этим делать)

+0

Visual Studio поддерживает интерфейс перетаскивания для создания простого диалога WPF, почему вы думаете, что он не работает хорошо? –

+0

@Ken Я не пробовал это в VS2015, но Visual Studio исторически было ужасно работать в этом отношении. Когда вы перетаскиваете элементы вокруг экрана, VS _should_ переместите элемент в другой столбец или строку в сетке, но вместо этого он применяет положительные или отрицательные поля для размещения всего. Затем во время выполнения измените размер экрана и посмотрите, как все сломано. –

+0

@KenHung Это просто кажется сложным даже в VS2015. В одном случае он показывал на поверхности дизайна разную компоновку, чем показал, когда программа запускалась. И я только что прочитал много, что предлагает лучший способ получить вещи в точности так, как вы хотите, чтобы редактировать XAML напрямую. –

ответ

1

без сетки, что-то подобное может работать:

<StackPanel> 
    <StackPanel Orientation="Horizontal"> 
     <Label Content="Some Label:" /> 
     <TextBox /> 
    </StackPanel> 
    <StackPanel Orientation="Horizontal"> 
     <Button Content="OK" /> 
     <Button Content="Cancel" /> 
    </StackPanel> 
</StackPanel> 

FWIW, Согласен. WPF гораздо сложнее построить быстрый макет, чем WinForms. Визуальный редактор ... не идеален. Я думаю, что истинная сила/гибкость WPF показывает, когда вы попадаете в продвинутые анимации и т. Д., Которые WinForms просто не могут соответствовать.

+0

Спасибо. Не могли бы вы объяснить, почему '' лучше для этого, чем ''? –

+0

@Jonathan В вашем случае это кажется лучше, так как вы не заботитесь о точном размещении. Вам не нужно беспокоиться о создании столбцов и строк сетки, а затем указать столбец и строку, к которой принадлежит каждый элемент. Вы можете просто добавить еще один элемент или два после TextBox или еще несколько кнопок во второй внутренней StackPanel, и они будут автоматически текут после первых элементов. –