2
マウスイベントハンドラを使用してwpfでパスをドラッグ&ドロップすることはできますか?私はマウスの左ボタンでパスをドラッグし、グリッド上にマウスを置いてください。これはどうすればできますか?wpfでパスをドラッグアンドドロップする
マウスイベントハンドラを使用してwpfでパスをドラッグ&ドロップすることはできますか?私はマウスの左ボタンでパスをドラッグし、グリッド上にマウスを置いてください。これはどうすればできますか?wpfでパスをドラッグアンドドロップする
これを試してみてください:
考える: のTextBox名は "TextBox1テキストボックス"
public MainWindow()
{
// Initialize UI
InitializeComponent();
// Loaded event
this.Loaded += delegate
{
TextBox1.AllowDrop = true;
TextBox1.PreviewDragEnter += TextBox1PreviewDragEnter;
TextBox1.PreviewDragOver += TextBox1PreviewDragOver;
TextBox1.Drop += TextBox1DragDrop;
};
}
/// <summary>
/// We have to override this to allow drop functionality.
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
void TextBox1PreviewDragOver(object sender, DragEventArgs e)
{
e.Handled = true;
}
/// <summary>
/// Evaluates the Data and performs the DragDropEffect
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void TextBox1PreviewDragEnter(object sender, DragEventArgs e)
{
if (e.Data.GetDataPresent(DataFormats.FileDrop))
{
e.Effects = DragDropEffects.Copy;
}
else
{
e.Effects = DragDropEffects.None;
}
}
/// <summary>
/// The drop activity on the textbox.
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void TextBox1DragDrop(object sender, DragEventArgs e)
{
// Get data object
var dataObject = e.Data as DataObject;
// Check for file list
if (dataObject.ContainsFileDropList())
{
// Clear values
TextBox1.Text = string.Empty;
// Process file names
StringCollection fileNames = dataObject.GetFileDropList();
StringBuilder bd = new StringBuilder();
foreach (var fileName in fileNames)
{
bd.Append(fileName + "\n");
}
// Set text
TextBox1.Text = bd.ToString();
}
}
これは、別のスタックオーバーフローのスレッドで同様の方法で答えたです。必要に応じて少し変更する必要があります: http://stackoverflow.com/questions/806704/image-drag-and-drop-in-wpf-application – Xcalibur37