2016-05-12 76 views
1

我有我的UWP應用程序的拖放設置,我想定製用戶拖動的視圖。目前它與ListViewItem完全相同,但它有一個Border(提供背景和圓角邊緣),我不想在拖動視圖中顯示。如何自定義在拖放過程中顯示的視圖?

這只是一個簡單的CanDragItemsAllowDrop與迷上DragItemsStartingDragEnterDrop事件。

有沒有辦法做到這一點?

+1

你能分享你的代碼嗎? – aloisdg

+0

這只是一個簡單的'CanDragItems'和'AllowDrop',它帶有'DragItemsStarting','DragEnter'和'Drop'事件。我不知道還有什麼可以分享的。 – vrwim

+1

你能分享一個gif /截圖嗎? – Quakenxt

回答

1

但它有一個邊框(提供背景和圓角邊緣)我不想在拖動視圖中顯示。

要刪除ListviewItemBolder,你不需要定製拖拽視圖,你可以設置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的詳細信息定製。