ListBoxDragDropTarget не позволяет ListBox заполнить родительский элемент управления. - PullRequest
2 голосов
/ 13 июля 2010

С Silverlight Toolkit чрезвычайно легко включить базовое перетаскивание.

http://silverlightfeeds.com/post/1325/Silverlight_Toolkit_adds_DragDrop_targets.aspx

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

<Grid Background="Yellow">

 <toolKit:ListBoxDragDropTarget AllowDrop="True">
      <ListBox x:Name="customerListBoxMain" 
               DisplayMemberPath="Name">
        <ListBox.ItemsPanel>
          <ItemsPanelTemplate>
            <StackPanel Orientation="Vertical"/>
          </ItemsPanelTemplate>
        </ListBox.ItemsPanel>
      </ListBox>
    </toolKit:ListBoxDragDropTarget>

</Grid>

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

Кажется, что никакое количество HorizontalAlignment=Stretch и т. д. не сможет заполнить родительский ящик.

Как я могу получить ListBox для заполнения Grid?

Ответы [ 3 ]

6 голосов
/ 07 августа 2010

ListBoxDragDropTarget является производным от управления контентом. Просто установите HorizontalContentAlignment и VerticalContentAlignment.

.....

0 голосов
/ 15 июля 2013

Как сказал Арчил, установка HorizontalContentAlignment и VerticalContentAlignment - это путь, но другой способ, вероятно, будет связывать Width и Height из ListBox с ActualWidth и ActualHeight из ListBoxDragDropTarget

<toolkit:ListBoxDragDropTarget x:Name="dragdroptarget" AllowDrop="True">
    <ListBox x:Name="customerListBoxMain" 
        DisplayMemberPath="Name" 
            Width="{Binding ElementName=dragdroptarget, Path=ActualWidth}" 
            Height="{Binding ElementName=dragdroptarget, Path=ActualHeight}" >
        <ListBox.ItemsPanel>
            <ItemsPanelTemplate>
                <StackPanel Orientation="Vertical"/>
            </ItemsPanelTemplate>
        </ListBox.ItemsPanel>
    </ListBox>
</toolkit:ListBoxDragDropTarget>
0 голосов
/ 13 июля 2010

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

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