WPF:Can';t在文本框中删除文件名

WPF:Can';t在文本框中删除文件名,wpf,xaml,drag-and-drop,Wpf,Xaml,Drag And Drop,我正试图将一个文件放入WPF应用程序的文本框中,但它不起作用。我相信我有正确的XAML设置来实现这一点,并且PreviewDragOver事件处理程序可以工作——只是不能拖放或PreviewDrop。下面是有问题的XAML: <Window x:Class="TableTagCount.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://s

我正试图将一个文件放入WPF应用程序的文本框中,但它不起作用。我相信我有正确的XAML设置来实现这一点,并且PreviewDragOver事件处理程序可以工作——只是不能拖放或PreviewDrop。下面是有问题的XAML:

<Window x:Class="TableTagCount.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="MainWindow" Height="350" Width="525" AllowDrop="True">
<Grid Name="bgGrid" Drop="bgGrid_Drop" AllowDrop="True">
    <Grid.Background>
        <ImageBrush ImageSource="/TableTagCount;component/Images/Sunset.jpg" Stretch="Fill" TileMode="None" />
    </Grid.Background>
    <Button Content="Analyze" Height="23" HorizontalAlignment="Left" Margin="32,91,0,0" Name="button1" VerticalAlignment="Top" Width="75" Click="button1_Click"/>
    <TextBox Height="23"  HorizontalAlignment="Left" Margin="32,43,0,0" Name="textBox1" VerticalAlignment="Top" Width="205"  PreviewDragOver="textBox1_PreviewDragOver" AllowDrop="True" />
    <Label Content="File Name" Height="28" HorizontalAlignment="Left" Margin="32,13,0,0" Name="label1" VerticalAlignment="Top" Width="65" />
</Grid></Window>

请注意,Drop操作在我的网格上不起作用


另外,如果我的文本框先处理Drop事件,我想阻止它被网格处理。在我的文本框拖放处理程序中,我将DragEventArg的Handled属性设置为true。这足以防止事件冒泡到网格中吗?

首先,我在您的文本框中没有看到拖放处理程序。这就是它不起作用的原因吗?;-)


其次,是的,将Handled设置为true应该足以停止冒泡。

很抱歉造成混淆,我取出了drop处理程序,因为它不工作。只是为了进行三重检查,我将它添加回,但它仍然没有启动,或者我的事件处理程序没有接收到它。当我在PreviewDragOver处理程序上设置断点时,它可以正常工作。那么,请更具体地描述发生了什么。“它不会工作”听起来不是很有描述性,是吗?好的,这里是这样的:当我从windows资源管理器将文件拖到我的应用程序上时,我会看到一个矩形图标,指示我可以将其拖放。但是,当光标移动到文本框上时,会出现一个带对角线的圆圈,如果我松开鼠标按钮,则不会触发拖放事件。如果我删除XAML中的Drop事件处理程序并改用PreviewDragDrop,则光标一碰到它,文件名就会显示在文本框中。PreviewDragOver处理程序的具体功能是什么?