【问题标题】:Why does this drag drop not work? [duplicate]为什么这个拖放不起作用? [复制]
【发布时间】:2015-11-14 06:50:28
【问题描述】:

我目前正在开发一个通用 Windows Phone 应用程序,我想要从 ListViewCanvas 的拖放功能。

现在我有了这个 XAML 代码:

<Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition/>
        <ColumnDefinition/>
    </Grid.ColumnDefinitions>
    <ListView DragItemsStarting="ListView_DragItemsStarting" CanDragItems="True">
        <Image Source="../../Assets/Images/Logo.png"/>
    </ListView>

    <ListView 
        Grid.Column="1"
        AllowDrop="True"
        Drop="Canvas_Drop"/>
</Grid>

此代码有效,但是当我将第二个 ListView 更改为 Canvas 时,不再调用 drop 事件处理程序。

任何想法为什么以及如何解决这个问题?

【问题讨论】:

    标签: c# wpf xaml windows-store-apps uwp


    【解决方案1】:

    将背景设置为Transparent,它应该可以工作。

    <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition/>
            <ColumnDefinition/>
        </Grid.ColumnDefinitions>
        <ListView DragItemsStarting="ListView_DragItemsStarting" CanDragItems="True">
            <Image Source="../../Assets/Images/Logo.png"/>
        </ListView>
    
        <ListView 
            Grid.Column="1"
            AllowDrop="True"
            Drop="Canvas_Drop"
            Background="Transparent"/>
    </Grid>
    

    【讨论】:

    • 你能给出任何关于为什么这行得通的参考吗?似乎不得不做一件奇怪的事情。
    • @RonBeyer,据我所知,没有指定背景的画布上的任何拖放操作实际上都是通过网格拾取的。 (虽然我对 wpf/xaml 有点陌生,所以没有进一步探索,这就是我能说的全部)
    • @RonBeyer 当控件/面板没有背景时,无法对其进行命中测试。那么你会把你的物品放在哪里呢?
    • @JustinXL 我现在明白了,来自 Winforms 这似乎是一件奇怪的事情,但 WPF 与它管理视觉孩子的方式有很大不同,背景是可以测试的东西.
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-10
    • 1970-01-01
    • 2019-10-29
    • 2011-03-10
    • 2016-01-13
    • 2016-08-18
    相关资源
    最近更新 更多