【发布时间】:2011-05-15 23:24:39
【问题描述】:
我用谷歌搜索了这个问题,人们也回答了类似的问题,但由于某种原因,我什么都做不了。我一定在这里遗漏了一些东西......无论如何,当我运行以下代码时,永远不会调用 TextBox_DragEnter 处理程序。但是,如果我将 xaml 中的 TextBox 元素更改为 TextBlock 元素,则会调用它。有没有办法从 TextBox 元素中获得相同的行为?下面的代码完全隔离了问题...
MainWindow.xaml:
<Window x:Class="Wpf1.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">
<Grid Name="myGrid">
<TextBox AllowDrop="True" PreviewDragEnter="TextBox_DragEnter" PreviewDrop="TextBox_Drop" />
</Grid>
</Window>
MainWindow.xaml.cs:
using System.Windows;
using System.Windows.Controls;
using System.Windows.Input;
using System.Collections.ObjectModel;
namespace Wpf1
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void TextBox_DragEnter(object sender, DragEventArgs e)
{
e.Effects = DragDropEffects.Copy;
}
private void TextBox_Drop(object sender, DragEventArgs e)
{
}
}
}
非常感谢!
安德鲁
编辑:
澄清一下,我想允许将自定义对象放入文本框中。在文本框的 Drop 处理程序中,我想将文本框的文本设置为对象中的一个属性,然后将 TextBox 的 IsReadOnly 属性设置为 false。我只是在为 TextBox 启用拖放时遇到了一些问题...
【问题讨论】:
标签: wpf textbox drag-and-drop