Gong-wpf-dragdrop: A linha horizontal da caixa de listagem não está sendo exibida

Criado em 25 ago. 2016  ·  7Comentários  ·  Fonte: punker76/gong-wpf-dragdrop

Não consigo descobrir por que a linha horizontal cinza não aparece ao arrastar itens para ListBox. Existe algum truque aqui?

<Window x:Class="EmptyListBoxWithDragAndDrop.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:gong="clr-namespace:GongSolutions.Wpf.DragDrop;assembly=GongSolutions.Wpf.DragDrop"
        Title="MainWindow" Height="600" Width="800" WindowStartupLocation="CenterScreen">

    <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="200"/>
            <ColumnDefinition Width="*"/>
        </Grid.ColumnDefinitions>

        <ListBox Grid.Column="0" ItemsSource="{Binding Source}"
                 gong:DragDrop.IsDragSource="True" gong:DragDrop.UseDefaultEffectDataTemplate="True"/>

        <ListBox Grid.Column="1" ItemsSource="{Binding Target}" 
                 gong:DragDrop.IsDropTarget="True" gong:DragDrop.DropHandler="{Binding}">
            <ListBox.Style>
                <Style  TargetType="ListBox" BasedOn="{StaticResource {x:Type ListBox}}">
                    <Style.Triggers>
                        <Trigger Property="HasItems" Value="False">
                            <Setter Property="Template">
                                <Setter.Value>
                                    <ControlTemplate>
                                        <TextBlock Text="Drag items from left ListBox" VerticalAlignment="Center" HorizontalAlignment="Center"/>
                                    </ControlTemplate>
                                </Setter.Value>
                            </Setter>
                        </Trigger>
                    </Style.Triggers>
                </Style>
            </ListBox.Style>
        </ListBox>
    </Grid>
</Window>

Eu até removo o estilo do gatilho, mas não funciona, nenhuma linha horizontal é mostrada.
Esta é a linha da qual estou falando:

untitled

Comentários muito úteis

Existe algum truque aqui?

Portanto, há um problema: D Obrigado, funcionou!

E você deve dar ao seu modelo personalizado um fundo para permitir a queda do alvo em todo o tamanho do cliente

Eu não posso acreditar! Muito obrigado, tenho batido minha cabeça sobre isso ( minha pergunta sobre o stackoverflow )

Todos 7 comentários

@JobaDiniz Se um ItemsControl estiver vazio, nenhum DropTargetInsertionAdorner será mostrado.

Mas não está vazio, aqui está a amostra .

@JobaDiniz :

public void DragOver(IDropInfo dropInfo)
{
    // you must say which adorner you want if you implement the IDropTarget interface
    dropInfo.DropTargetAdorner = DropTargetAdorners.Insert;
    // or you call the DragOver method from the default DefaultDropHandler to get the adorner
    //GongSolutions.Wpf.DragDrop.DragDrop.DefaultDropHandler.DragOver(dropInfo);

    if (dropInfo.Data is string)
        dropInfo.Effects = System.Windows.DragDropEffects.Copy;
}

2016-08-25_16h12_07

@JobaDiniz E você deve dar ao seu template personalizado um fundo para permitir a queda do alvo em todo o tamanho do cliente

<ControlTemplate>
    <Grid Background="{TemplateBinding Background}">
        <TextBlock Text="Drag items from left ListBox" VerticalAlignment="Center" HorizontalAlignment="Center"/>
    </Grid>
</ControlTemplate>

Existe algum truque aqui?

Portanto, há um problema: D Obrigado, funcionou!

E você deve dar ao seu modelo personalizado um fundo para permitir a queda do alvo em todo o tamanho do cliente

Eu não posso acreditar! Muito obrigado, tenho batido minha cabeça sobre isso ( minha pergunta sobre o stackoverflow )

@JobaDiniz Acabo de responder ;-)

Vou adicionar uma nova propriedade anexada para permitir a exibição do adorno de destino em ItemsControls vazios.

ShowDropAdornerOnEmptyTarget

ou existe um nome melhor?

Vou adicionar uma nova propriedade anexada para permitir a exibição do adorno de destino em ItemsControls vazios

Não sei se isso é realmente necessário. Meu problema era outra coisa.

Esta página foi útil?
0 / 5 - 0 avaliações