독개

[C#] WPF 파일 Drag Drop기능 사용

by #독개#

앱의 전체 or 앱의 특정요소로 File을 Drag&Drop 했을때, 파일의 경로를 가져오도록 구현해 보자

 

앱전체에 Drop하여 텍스트박스에 띄우는 방법이다
Title="MainWindow" Height="282" Width="668" Background="#FFB39D9D" Foreground="Red" AllowDrop="True" Drop="FileDrop" PreviewDragOver="PrevieFileDrop">
<TextBox x:Name="FileDragTextBox" HorizontalAlignment="Left" Height="45" Margin="81,83,0,0" TextWrapping="Wrap" Text="TextBox" VerticalAlignment="Top" Width="185" AllowDrop="True"/>
    public partial class MainWindow : Window
    {
        private void FileDrop(object sender, DragEventArgs e)
        {
            string[] files = e.Data.GetData(DataFormats.FileDrop) as string[];
            if (files != null && files.Length > 0)
            {
                FileDragTextBox.Text = files[0];
            }
        }

        private void PrevieFileDrop(object sender, DragEventArgs e)
        {
            e.Handled = true;
        }
    }
텍스트박스에 Drop하여 띄우는 방법이다
<TextBox AllowDrop="True" PreviewDragOver="TextBox_PreviewDragOver" Drop="TextBox_Drop" />
private void TextBox_Drop(object sender, DragEventArgs e)
{
    if (e.Data.GetDataPresent(DataFormats.FileDrop))
    {
        string[] files = e.Data.GetData(DataFormats.FileDrop) as string[];
        if (files != null && files.Length > 0)
        {
            ((TextBox)sender).Text = files[0];
        }
    }
}

private void TextBox_PreviewDragOver(object sender, DragEventArgs e)
{
    e.Handled = true;
}

 

블로그의 정보

독한 개발자

#독개#

활동하기