2025-02-10 20:53:40 +08:00
|
|
|
|
using System.Windows;
|
2024-09-22 11:05:41 +08:00
|
|
|
|
using Microsoft.Xaml.Behaviors;
|
|
|
|
|
|
|
2025-02-10 20:53:40 +08:00
|
|
|
|
namespace ShrlAlgo.Toolkit.Mvvm.Behaviors;
|
|
|
|
|
|
|
2024-09-22 11:05:41 +08:00
|
|
|
|
/// <summary>
|
2025-02-10 20:53:40 +08:00
|
|
|
|
/// <20><>ק<EFBFBD>ļ<EFBFBD><C4BC>¼<EFBFBD>
|
2024-09-22 11:05:41 +08:00
|
|
|
|
/// </summary>
|
2025-02-10 20:53:40 +08:00
|
|
|
|
/// <example>DropFileBehaviors Data="{Binding FileNames,Mode=OneWayToSource}"<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD><D4B4><EFBFBD>Դ<EFBFBD><D4B4><EFBFBD>ԣ<EFBFBD>ͨ<EFBFBD><CDA8>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD>ʵ<EFBFBD><CAB5>Mvvm</example>
|
|
|
|
|
|
/// <remarks><3E><><EFBFBD>ô<EFBFBD><C3B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>AllowDrop<6F><70><EFBFBD><EFBFBD><EFBFBD>ϲ㸲<CFB2><E3B8B2>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Grid<69><64><EFBFBD><EFBFBD><EFBFBD>ô<EFBFBD><C3B4>ڵ<EFBFBD>DropEnter<65><72>DropLeave(EventTrigger)<29>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD>Drop<6F>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(ChangePropertyAction)</remarks>
|
2024-09-22 11:05:41 +08:00
|
|
|
|
class DropFileBehavior : Behavior<FrameworkElement>
|
|
|
|
|
|
{
|
|
|
|
|
|
public string[] Data
|
|
|
|
|
|
{
|
|
|
|
|
|
get { return (string[])GetValue(DataProperty); }
|
|
|
|
|
|
set { SetValue(DataProperty, value); }
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public static readonly DependencyProperty DataProperty =
|
|
|
|
|
|
DependencyProperty.Register(nameof(Data), typeof(string[]), typeof(DropFileBehavior), new PropertyMetadata(null));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
protected override void OnAttached()
|
|
|
|
|
|
{
|
|
|
|
|
|
AssociatedObject.AllowDrop = true;
|
|
|
|
|
|
AssociatedObject.Drop += DropHandler;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void DropHandler(object sender, DragEventArgs e)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (e.Data.GetDataPresent(DataFormats.FileDrop))
|
|
|
|
|
|
{
|
|
|
|
|
|
Data = (string[])e.Data.GetData(DataFormats.FileDrop);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
protected override void OnDetaching()
|
|
|
|
|
|
{
|
|
|
|
|
|
AssociatedObject.Drop -= DropHandler;
|
|
|
|
|
|
}
|
|
|
|
|
|
protected override void OnChanged()
|
|
|
|
|
|
{
|
|
|
|
|
|
base.OnChanged();
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|