Как прикрепить элемент управления к другому элементу управления в WPF? - PullRequest
0 голосов
/ 05 марта 2011

У меня есть ListBox в нижней правой части моего окна, и я хочу разместить Label в самой левой верхней части этого ListBox.

В настоящее время я использую DockPanel, чтобы закрепить ListBox в нижней правой части окна, но я не уверен, как "сгруппировать" метку и ListBox вместе, чтобы они оставались вместе.

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

И какой контроль я должен использовать для этого?StackPanel, DockPanel и т. Д.

Ответы [ 2 ]

3 голосов
/ 05 марта 2011

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

<DockPanel Name="YourExistingDockPanel">
    ...
    <DockPanel>
        <Label DockPanel.Dock="Top" Content="YourLabel"/>
        <ListBox .../>
    </DockPanel>
    ...
</DockPanel>
2 голосов
/ 05 марта 2011

Поместите оба элемента управления в одну ячейку Grid и установите для каждого из них свойство Margin, чтобы расположить их абсолютно внутри ячейки. Это позволит вам «склеить» два элемента управления (вы управляете их размером и положением внутри ячейки, склеенной таким образом) внутри Grid, который будет функционировать как «группер».

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

Если вам не требуется абсолютное позиционирование с точностью до пикселя, эта же методика также будет работать, если вы используете StackPanel вместо Grid. В этом случае вы будете ограничены макетами, достижимыми с помощью StackPanel.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...