Назначить кнопку короткой резки кнопке в WPF
Как назначить короткий ключ кнопке в WPF?
Googling дал мне ответ, чтобы добавить _ вместо '&' в стандартных Winforms.
Итак, после того, как я сделал следующее:
<Button Name="btnHelp" Content="_Help"></Button>
Я не нашел подчеркнутого "H".
Это первая проблема.
Вторая проблема заключается в том, как это выполнить после нажатия Alt + H во время выполнения. Скажем, чтобы отобразить окно сообщения достаточно для примера.
Я использую С#, WPF
Спасибо.
Ответы
Ответ 1
Решение для привязки ключей (привязка кнопок +) с собственными командами:
Тело файла XAML:
<Window.Resources>
<RoutedUICommand x:Key="MyCommand1" Text="Text" />
<RoutedUICommand x:Key="MyCommand2" Text="Another Text" />
</Window.Resources>
<Window.CommandBindings>
<CommandBinding Command="{StaticResource MyCommand1}"
Executed="FirstMethod" />
<CommandBinding Command="{StaticResource MyCommand2}"
Executed="SecondMethod" />
</Window.CommandBindings>
<Window.InputBindings>
<KeyBinding Key="Z" Modifiers="Ctrl" Command="{StaticResource MyCommand1}" />
<KeyBinding Key="H" Modifiers="Alt" Command="{StaticResource MyCommand2}" />
</Window.InputBindings>
<Grid>
<Button x:Name="btn1" Command="{StaticResource MyCommand1}" Content="Click me" />
<Button x:Name="btn2" Command="{StaticResource MyCommand2}" Content="Click me" />
</Grid>
и .CS файл:
public partial class Window1 : Window
{
public Window1()
{
InitializeComponent();
}
public void FirstMethod(Object sender, ExecutedRoutedEventArgs e)
{
// btn1
}
public void SecondMethod(Object sender, ExecutedRoutedEventArgs e)
{
// btn2
}
}
Ответ 2
Это старый вид, но сегодня я столкнулся с тем же вопросом.
Я обнаружил, что самым простым решением является просто использовать элемент AccessText для содержимого кнопки.
<Button Command="{Binding SomeCommand}">
<AccessText>_Help</AccessText>
</Button>
Когда вы нажимаете клавишу Alt, на кнопке будет подчеркнуто "H".
Когда вы нажимаете комбинацию клавиш Alt + H, команда, связанная с кнопкой, будет выполнена.
http://social.msdn.microsoft.com/Forums/vstudio/en-US/49c0e8e9-07ac-4371-b21c-3b30abf85e0b/button-hotkeys?forum=wpf
Ответ 3
Чтобы связать жесты клавиатуры, вам нужно использовать KeyGestures с командами. Подробнее об этом можно узнать commands. Также есть множество предопределенных команд, которые могут быть непосредственно использованы в вашем приложении (например, "Вырезать", "Копировать", "Вставить", "Справка", "Свойства" и т.д.).
Ответ 4
Ярлык просто h для вашего образца кода. На
Для первоначального отображения подчеркивания для ярлыков используется параметр Windows и не контролируется приложением. В Windows XP перейдите в меню "Свойства экрана → Внешний вид → Эффекты", и вы увидите флажок "Скрыть подчеркнутые буквы для навигации по клавиатуре, пока я не нажму клавишу Alt". Для Vista/Win7 я думаю, что они переместили эту настройку где-то еще.
Ответ 5
Самое простое решение, которое я нашел, - наклеить ярлык внутри кнопки:
<Button Name="btnHelp"><Label>_Help</Label></Button>