Как разделить окно WPF на две части? - PullRequest
5 голосов
/ 09 июня 2011

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

На правой стороне я хочу иметь область, где я могу добавить элементы управления и т. Д.

Так что вопрос в том, что мне нужно сделать, чтобы разбить окно на две неравные части (слевасторона около 350 пикселей в ширину и высота должна составлять все окно), а остальное - для моего "холста".

Ответы [ 2 ]

6 голосов
/ 09 июня 2011

Вы можете использовать Сетка :

<Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="350" /> <!-- Or Auto -->
        <ColumnDefinition Width="*" />
    </Grid.ColumnDefinitions>
    <ListBox Grid.Column="0" />
    <Canvas Grid.Column="1" />
</Grid>

Или вы можете использовать DockPanel :

<DockPanel>
    <ListBox DockPanel.Dock="Left" Width="350" />
    <Canvas />
</DockPanel>

ПреимуществоСетка - это более точный контроль над макетом, который позволяет конечному пользователю динамически изменять размер столбцов с помощью GridSplitter .

.
4 голосов
/ 09 июня 2011

Альтернативный подход к решению CodeNaked может заключаться в использовании DockPanel, где Canvas занимает все оставшееся пространство автоматически, и вам не нужно обрабатывать разбиения.

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

<DockPanel LastChildFill="True">
    <ListBox DockPanel.Dock="Left" Width="350"/>
    <Canvas />
</DockPanel>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...