[WPF] KeyBinding 사용하여 단축키 설정하기Frontend/WPF2024. 6. 18. 22:36
Table of Contents
반응형
WPF에서 KeyBinding
을 사용하여 Alt+D
키 조합 같은 단축키를 처리하려면 Window.InputBindings
에서 KeyBinding
을 설정하고 이를 명령에 바인딩할 수 있습니다. 방법은 다음과 같습니다.
MainWindow.xaml
<Window x:Class="WpfApp.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Window.InputBindings>
<KeyBinding Key="D" Modifiers="Alt" Command="{Binding AltDCommand}" />
</Window.InputBindings>
<Grid>
<TextBlock x:Name="OutputTextBlock" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="24"/>
</Grid>
</Window>
MainWindow.xaml.cs
using System;
using System.Windows;
using System.Windows.Input;
namespace WpfApp
{
public partial class MainWindow : Window
{
public ICommand AltDCommand { get; }
public MainWindow()
{
InitializeComponent();
AltDCommand = new RelayCommand(ExecuteAltD);
DataContext = this;
}
private void ExecuteAltD(object parameter)
{
OutputTextBlock.Text = "Alt+D was pressed!";
}
}
public class RelayCommand : ICommand
{
private readonly Action<object> execute;
private readonly Predicate<object> canExecute;
public RelayCommand(Action<object> execute, Predicate<object> canExecute = null)
{
this.execute = execute ?? throw new ArgumentNullException(nameof(execute));
this.canExecute = canExecute;
}
public bool CanExecute(object parameter) => canExecute == null || canExecute(parameter);
public void Execute(object parameter) => execute(parameter);
public event EventHandler CanExecuteChanged
{
add => CommandManager.RequerySuggested += value;
remove => CommandManager.RequerySuggested -= value;
}
}
}
설명
1. MainWindow.xaml
Alt+D
에 대한KeyBinding
을 정의하고 이를AltDCommand
에 바인딩합니다.Alt+D
를 누를 때 메시지를 표시하기 위해OutputTextBlock
이라는TextBlock
을 포함합니다.
2. MainWindow.xaml.cs
RelayCommand
를 사용하여AltDCommand
를 정의합니다.ExecuteAltD
메서드는Alt+D
를 누르면TextBlock
텍스트를 업데이트합니다.- 'DataContext'를 현재 인스턴스로 설정하여 바인딩을 활성화합니다.
3. RelayCommand
- 명령 논리를 처리하기 위해 'ICommand'를 구현합니다.
RelayCommand
클래스는Action<object>
를 사용하여 실행하고 선택적Predicate<object>
를 사용하여 명령을 실행할 수 있는지 확인합니다.
결론
이 접근 방식은 WPF의 'KeyBinding' 및 'Command' 인프라를 활용하여 'Alt+D' 키 조합을 처리하고 키 누름에 응답하는 깔끔하고 선언적인 방법을 제공합니다.
반응형
'Frontend > WPF' 카테고리의 다른 글
WPF에서 DataTemplate과 ItemsControl 활용하기 (0) | 2024.08.09 |
---|---|
WPF(Windows Presentation Foundation) 이해하기 (0) | 2024.06.20 |
[WPF] 문자열(string)의 가로 세로 길이 계산 (0) | 2023.04.18 |
[WPF] Grid를 Bitmap 이미지로 변환 후 저장하기 (0) | 2023.04.08 |
WPF에서 Windows Forms(WinForm) Control 사용하기 (0) | 2023.02.23 |
@고지니어스 :: 규니의 개발 블로그
IT 기술과 개발 내용을 포스팅하는 블로그
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!