1
파일 시스템에서 양식으로 문서를 드래그하는 동안 마우스 커서에 드래그 된 파일 수를 표시해야합니다.WPF에서 마우스 끌기 커서 변경
다음 코드를 수행했지만 끌기 커서를 변경할 수 없습니다. 끌어 형성 양식하고있다
private void tbDisplayFileContents_GiveFeedback(object sender, GiveFeedbackEventArgs e) { if (e.Effects == DragDropEffects.Copy) { e.UseDefaultCursors = false; // Mouse.SetCursor(Cursors.Hand); Icon ico = new Icon(string.Concat("1365516094_10371.ico")); //Mouse.Cursor = GenerateCursor.CreateCursor(ico, true, new System.Drawing.Color()); Mouse.SetCursor(GenerateCursor.CreateCursor(ico, true, new System.Drawing.Color())); } else e.UseDefaultCursors = true; e.Handled = true; }
을 다음과 같이 제가 GiveFeedBack 이벤트 사용한이
private void tbDisplayFileContents_PreviewDragOver(object sender, DragEventArgs args)
{
if (IsSingleFile(args) != null)
{
tbDisplayFileContents_PreviewDrop(sender, args);
}
else
{
// args.Effects = DragDropEffects.None;
}
Mouse.SetCursor(Cursors.Hand);
Icon ico = new Icon(string.Concat("1365516094_10371.ico"));
tbDisplayFileContents.Cursor = GenerateCursor.CreateCursor(ico, true, new System.Drawing.Color());
args.Handled = true;
}
private void tbDisplayFileContents_PreviewDrop(object sender, DragEventArgs args)
{
args.Handled = true;
string files = string.Empty;
string[] fileName = IsSingleFile(args);
if (fileName == null) return;
isDrag = true;
DoEvents();
for (int i = 0; i < fileName.Length; i++)
{
if (i == 0)
{
files = string.Concat("1] ", fileName[i]);
}
else
{
int j = i + 1;
files = string.Concat(files, Environment.NewLine, j, "] ", fileName[i]);
}
}
lblfileName.Content = files;
}
private string[] IsSingleFile(DragEventArgs args)
{
if (args.Data.GetDataPresent(DataFormats.FileDrop, true))
{
string[] fileNames = args.Data.GetData(DataFormats.FileDrop, true) as string[];
if (fileNames.Length != 0)
{
if (File.Exists(fileNames[0]))
{
// At this point we know there is a single file.
return fileNames;
}
}
}
return null;
}
#endregion
#region -------Events--------
private void btnClear_Click(object sender, RoutedEventArgs e)
{
lblfileName.Content = string.Empty;
}
#endregion
private void tbDisplayFileContents_PreviewDragEnter(object sender, DragEventArgs e)
{
e.Effects = DragDropEffects.None;
}
public static void DoEvents()
{
Application.Current.Dispatcher.Invoke(DispatcherPriority.Background,
new Action(delegate
{
Icon ico = new Icon(string.Concat("1365516094_10371.ico"));
Mouse.OverrideCursor = GenerateCursor.CreateCursor(ico, true, new System.Drawing.Color());
}));
}
을 할 수있는 가장 좋은 방법을 알려 주시기 바랍니다하지만 (파일)의 내용은 작동하지 않습니다 바탕 화면의 파일과 같이 외부 양식에서 드래그됩니다.
아직 작동하지 않습니다 ... – Pravin