我正在使用列表框在控件中拖放元素,以便用户可以订购它们。我能够实现它,但问题是,我不希望用户将元素拖放到列表框之外。目前,如果你这样做,它会从列表框项目中删除元素。
这是我的代码:
<telerik:RadListBox x:Name="SequenceListBox" x:FieldModifier="public"
DockPanel.Dock="Bottom" AllowDrop="True"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
ScrollViewer.VerticalScrollBarVisibility="Hidden"
ScrollViewer.HorizontalScrollBarVisibility="Auto"
Background="Transparent" Margin="30,5,30,5"
ItemTemplate="{DynamicResource ListBoxItemTemplate}">
<telerik:RadListBox.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal" VerticalAlignment="Center"/>
</ItemsPanelTemplate>
</telerik:RadListBox.ItemsPanel>
<telerik:RadListBox.DragVisualProvider>
<telerik:ScreenshotDragVisualProvider />
</telerik:RadListBox.DragVisualProvider>
<telerik:RadListBox.DragDropBehavior>
<telerik:ListBoxDragDropBehavior AllowReorder="True" />
</telerik:RadListBox.DragDropBehavior>
</telerik:RadListBox>
<!-- Sequence ListBox style start -->
<DataTemplate x:Key="ListBoxItemTemplate">
<DataTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="true">
<Setter Property="LayoutTransform">
<Setter.Value>
<ScaleTransform ScaleX="1.5" />
</Setter.Value>
</Setter>
</Trigger>
</DataTemplate.Triggers>
<!--<Border BorderThickness="1" BorderBrush="Wheat">-->
<TextBlock Text="{Binding Path=AttributeName}" MinWidth="30" Foreground="Black"
FontSize="12" FontFamily="Segoe UI" ToolTip="Drag and Drop to re-arrange"
VerticalAlignment="Center" HorizontalAlignment="Center" />
<!--</Border>-->
</DataTemplate>
我的问题类似于:this,但我仍然不清楚如何实现它。请帮我解决。
另外,当用户尝试删除它时,我想突出显示(用某种颜色)两个元素之间的边界,但我不确定如何实现这一点。
如何修改我的代码,以便列表框在将项目放在控件之外时不会删除它们?