簡體   English   中英

自定義ListViewItem(UWP)的DragUI

[英]Customize DragUI of ListViewItem (UWP)

ListView提供了一個DragItemsStarting事件,該事件帶有相應的事件args。 但是,與其他元素共有的DragStartingEventArgs不同,據我所知,它沒有提供DragUI。 我唯一的選擇是使用DragView事件,這很煩人。

因此,我改為說我將使ListViewItem的內容可拖動。 但是,這事與願違,因為現在Click事件不再通過,或者很少通過。 簡而言之,我可以自定義DragUI而不單擊我的ListItems,或者DragUI看起來很糟糕,但是我保留了我的功能。

是否可以獲取自定義DragUI並讓ListView處理單擊?

您仍然可以使用DragStarting ,但是必須將其添加到DataTemplate的項目內容本身中:

<ListView>
   <ListView.ItemTemplate>
       <DataTemplate>
           <Grid CanDrag="True" DragStarting="ItemDragStartingHandler">
                ...
           </Grid>
       </DataTemplate>
   </ListView.ItemTemplate>
</ListView>

如果這導致click事件無法正常運行,則可以嘗試自定義ListViewItem容器本身,這可能會起作用。 在設計器或“文檔大綱”窗口中右鍵單擊ListView ,選擇“ 編輯其他模板” ,然后選擇“ 編輯生成的項目容器” 從最后一個菜單中選擇“ 編輯副本...”。

編輯其他模板

您將獲得一個可能很長的Style ,但是在其中可以找到以下內容:

<Setter Property="Template">
    <Setter.Value>
        <ControlTemplate TargetType="ListViewItem">
            <ListViewItemPresenter DragStarting="ItemDragStartingHandler" x:Name="Root" ...>

您可以將DragStarting事件應用於ListViewItemPresenter ,這可能會滿足您的需求。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM