如何自定义在拖放过程中显示的视图?
问题描述:
我有我的UWP应用程序的拖放设置,我想定制用户拖动的视图。目前它与ListViewItem
完全相同,但它有一个Border
(提供背景和圆角边缘),我不想在拖动视图中显示。如何自定义在拖放过程中显示的视图?
这只是一个简单的CanDragItems
和AllowDrop
与迷上DragItemsStarting
,DragEnter
和Drop
事件。
有没有办法做到这一点?
答
但它有一个边框(提供背景和圆角边缘)我不想在拖动视图中显示。
要删除ListviewItem
的Bolder
,你不需要定制拖拽视图,你可以设置Bolder
元素的子元素CanDrag
,设置CanDrag
属性为Bolder
子元素后,如TextBlock
,拖动项目时不会看到Bolder
效果。代码示例如下:
<ListView x:Name="SourceListView"
Header="SourceListView"
SelectionMode="Extended">
<ListView.ItemTemplate>
<DataTemplate>
<Border Background="Pink"
BorderBrush="Gray"
BorderThickness="2"
CornerRadius="10">
<TextBlock Text="{Binding text}" DragStarting="TextBlock_DragStarting" CanDrag="True" />
</Border>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
我想自定义用户拖动视图。
如果您仍想定制您的拖动用户界面,您可以直接使用现有的类DragUIOverride来定制您的拖动视图。 例如你不希望显示在拖动视图的箭头,你可以设置IsGlyphVisible
属性在DragOver
事件是这样的:
private void cnvDrop_DragOver(object sender, DragEventArgs e)
{
e.DragUIOverride.IsGlyphVisible = false;
}
而官方样本XamlDragAndDrop,在scenario2显示有关DragUI的详细信息定制。
你能分享你的代码吗? – aloisdg
这只是一个简单的'CanDragItems'和'AllowDrop',它带有'DragItemsStarting','DragEnter'和'Drop'事件。我不知道还有什么可以分享的。 – vrwim
你能分享一个gif /截图吗? – Quakenxt