[Avalonia] Drop File
by #독개#axaml에 Drop을 원하는 컨트롤에를 작성해준다 인텔리젼스 안되니 당황하지말것
DragDrop.AllowDrop="True"
Behind code
using Avalonia;
using Avalonia.Controls;
using Avalonia.Input;
using System;
using System.Linq;
using System.Reflection;
using Dokkae.Data;
namespace Dokkae.Views;
public partial class Main : Window
{
public Main()
{
InitializeComponent();
SetupDnd(
d => d.Set(DataFormats.FileNames,
new[] { Assembly.GetEntryAssembly()?.GetModules().FirstOrDefault()?.FullyQualifiedName })
);
}
void SetupDnd(Action<DataObject> factory)
{
void Drop(object? sender, DragEventArgs e)
{
StaticData.MainVm.ScriptPath =
string.Join(Environment.NewLine, e.Data.GetFileNames() ?? Array.Empty<string>());
}
AddHandler(DragDrop.DropEvent, Drop);
}
}
wpf와 다르게 Drop을 지정한 컨트롤마다 각각 Drop 메서드를 지정해주는 것이 아니라
하나의 메서드에서 관리한다
여러개의 컨트롤마다 각각 지정하려면 Class네임을 각각 설정해서 Drop메서드에서 분기해줘야한다
이는 아발로니아 예제에 잘나와 있으니 참고하자
'🏹 프로그래밍 활용 > Avalonia' 카테고리의 다른 글
| [Avalonia] 화면캡쳐 with Wpf (0) | 2022.12.18 |
|---|---|
| [OpenCV] Winform, Wpf, Avalonia (1) | 2022.12.18 |
| [Avalonia] window창 드래그로 이동하기 (0) | 2022.12.16 |
| [Avalonia] window 창 투명하게하기 (0) | 2022.12.16 |
| [Avalonia] Button의 Style (Hover, Pressed) (0) | 2022.12.16 |
블로그의 정보
독한 개발자
#독개#