J'ai un ListBox
qui est une cible de baisse d'éléments provenant d'autres sources.WPF ListBox vide comme cible
Tout fonctionne correctement, sauf dans une situation particulière. Lorsque le ListBox
n'a pas d'éléments, je ne peux que laisser tomber dans la frontière de ListBox
(j'ai un déclencheur de sorte que la bordure est visible lorsque vous faites glisser).
Pour donner une plus grande zone de dépôt que je mets la MinHeight
du ListBox
à 25. Lors du déplacement, la frontière reflète la MinHeight
du ListBox
, mais la zone est pas considérée comme une cible. Ce qui se passe probablement, c'est que la cible est considérée comme étant l'arrière-plan car il n'y a pas d'élément dans le ListBox
.
Voici le code pour le ListBox
:
<ListBox Name="itmCtrlSetupSteps" Grid.Row="1" MinHeight="25"
BorderThickness="2" BorderBrush="{Binding DropBrush}" Background="Transparent"
ItemsSource="{Binding SetupSteps}" SelectionMode="Single" ItemContainerStyle="{StaticResource StepItemStyle}"
HorizontalContentAlignment="Stretch" Focusable="True"
SelectionChanged="manageStep_SelectionChanged"
AllowDrop="True" DragOver="itmCtrls_DragOver" Drop="itmCtrls_Drop" KeyUp="List_KeyUp"
>
<ListBox.Template>
<ControlTemplate TargetType="ListBox">
<Border BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}">
<ItemsPresenter/>
</Border>
</ControlTemplate>
</ListBox.Template>
<ListBox.ItemTemplate>
<DataTemplate DataType="{x:Type my:TestStepListingStepViewModel}">
<my:TestStepListingStepView HorizontalAlignment="Stretch" GotFocus="setupSteps_GotFocus" MouseDoubleClick="Step_MouseDoubleClick"/>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
Si je mets le ItemPanel à:
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<Grid ClipToBounds="True"/>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
je peux déposer des éléments dans le ListBox
vide mais les éléments sont présentés au-dessus de l'autre, au lieu d'une liste. Vous avez des commentaires à ce sujet?
Merci pour l'aide! – jpsstavares