ユーザーがそれらを注文できるように、リストボックスを使用してコントロール内の要素をドラッグしています。私はそれを達成することができましたが、問題は、ユーザーがリストボックスの外に要素をドラッグアンドドロップしたくないということです。現在、それを行うと、リストボックス項目から要素が削除されます。
これは私のコードです:
<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に似ていますが、実装方法はまだ明確ではありません。解決策を教えてください。
また、ユーザーがドロップしようとしているときに 2 つの要素間の境界線を (いくつかの色で) 強調表示したいのですが、これを実装する方法がわかりません。
コントロールの外にドロップされたときにリストボックスがアイテムを削除しないようにコードを変更するにはどうすればよいですか?