[C#/MAUI/.NET6] DragGestureRecognizer 클래스 : DragStarting 이벤트를 사용해 드래그 시작시 처리하기
C#/MAUI 2022. 3. 17. 14:00728x90
반응형
728x170
▶ MainPage.xaml
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage x:Class="TestProject.MainPage"
xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml">
<Grid
HorizontalOptions="Center"
VerticalOptions="Center">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="50" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Image x:Name="sourceImage" Grid.Row="0" Grid.Column="0"
WidthRequest="150"
Source="source.png">
<Image.GestureRecognizers>
<DragGestureRecognizer x:Name="dragGestureRecognizer" />
</Image.GestureRecognizers>
</Image>
<Image x:Name="targetImage" Grid.Row="0" Grid.Column="2"
WidthRequest="150"
Source="target.png">
<Image.GestureRecognizers>
<DropGestureRecognizer x:Name="dropGestureRecognizer" />
</Image.GestureRecognizers>
</Image>
<Label x:Name="label" Grid.Row="1" Grid.ColumnSpan="3" />
</Grid>
</ContentPage>
728x90
▶ MainPage.xaml.cs
namespace TestProject;
/// <summary>
/// 메인 페이지
/// </summary>
public partial class MainPage : ContentPage
{
//////////////////////////////////////////////////////////////////////////////////////////////////// Constructor
////////////////////////////////////////////////////////////////////////////////////////// Public
#region 생성자 - MainPage()
/// <summary>
/// 생성자
/// </summary>
public MainPage()
{
InitializeComponent();
this.dragGestureRecognizer.DragStarting += dragGestureRecognizer_DragStarting;
this.dropGestureRecognizer.Drop += dropGestureRecognizer_Drop;
}
#endregion
//////////////////////////////////////////////////////////////////////////////////////////////////// Method
////////////////////////////////////////////////////////////////////////////////////////// Private
#region 드래그 제스처 인식기 드래그 시작시 처리하기 - dragGestureRecognizer_DragStarting(sender, e)
/// <summary>
/// 드래그 제스처 인식기 드래그 시작시 처리하기
/// </summary>
/// <param name="sender">이벤트 발생자</param>
/// <param name="e">이벤트 인자</param>
private void dragGestureRecognizer_DragStarting(object sender, DragStartingEventArgs e)
{
e.Data.Properties.Add("time", DateTime.Now.ToString());
}
#endregion
#region 드롭 제스처 인식기 드롭시 처리하기 - dropGestureRecognizer_Drop(sender, e)
/// <summary>
/// 드롭 제스처 인식기 드롭시 처리하기
/// </summary>
/// <param name="sender">이벤트 발생자</param>
/// <param name="e">이벤트 인자</param>
private async void dropGestureRecognizer_Drop(object sender, DropEventArgs e)
{
this.label.Text = e.Data.Properties["time"] as string;
this.targetImage.Source = await e.Data.GetImageAsync();
}
#endregion
}
728x90
반응형
그리드형(광고전용)
'C# > MAUI' 카테고리의 다른 글
[C#/MAUI/.NET6] TapGestureRecognizer 클래스 : Tapped 이벤트를 사용해 탭 처리하기 (0) | 2022.03.19 |
---|---|
[C#/MAUI/.NET6] SwipeGestureRecognizer 클래스 : Swiped 이벤트를 사용해 스와이프 처리하기 (0) | 2022.03.18 |
[C#/MAUI/.NET6] PinchGestureRecognizer 클래스 : PinchUpdated 업데이트를 사용해 핀치 처리하기 (0) | 2022.03.18 |
[C#/MAUI/.NET6] PanGestureRecognizer 클래스 : PanUpdated 이벤트를 사용해 패닝 처리하기 (0) | 2022.03.18 |
[C#/MAUI/.NET6] DeviceDisplay 클래스 : MainDisplayInfo 속성을 사용해 화면 크기 구하기 (0) | 2022.03.18 |
[C#/MAUI/.NET6] x:DataType 속성 : 컴파일된 바인딩과 클래식 바인딩 함께 사용하기 (0) | 2022.03.13 |
[C#/MAUI/.NET6] x:DataType 속성 : DataTemplate 엘리먼트에서 사용하기 (0) | 2022.03.13 |
[C#/MAUI/.NET6] x:DataType 속성 : 컴파일된 바인딩 사용하기 (0) | 2022.03.13 |
[C#/MAUI/.NET6] MultiBinding 클래스 : StringFormat 속성 사용하기 (0) | 2022.03.13 |
[C#/MAUI/.NET6] MultiBinding 엘리먼트 : StringFormat 속성 사용하기 (0) | 2022.03.13 |
댓글을 달아 주세요