WPF - Назначение F-клавиш для кнопок - PullRequest
1 голос
/ 02 августа 2010

Я знаю о "_" вместо "&", но как назначить клавишу F1, F2 ... кнопке? Это небольшое приложение, я не использую Commands, а просто обработчики событий щелчка, но я мог бы использовать команды при необходимости

Ответы [ 2 ]

7 голосов
/ 05 июля 2013

легко для этого ... Попробуйте ... .... следуйте за мной

В файле Xaml:

    <Window.Resources>
        <RoutedUICommand x:Key="cmd1"></RoutedUICommand>
    </Window.Resources>
    <Window.CommandBindings>
        <CommandBinding Command="{StaticResource cmd1}" Executed="btn_font_Click"> </CommandBinding>
    </Window.CommandBindings>
    <Window.InputBindings>
        <KeyBinding  Key="F1" Command="{StaticResource cmd1}"></KeyBinding>
    </Window.InputBindings>
    <Button  Command="{StaticResource cmd1}" Name="btn_font" Grid.Column="2" Grid.Row="1" Width="60" Height="25" Content="Enter" Click="btn_font_Click" Margin="10,2"/>

В файле Cs:

private void btn_font_Click(object sender, RoutedEventArgs e)
    {
        Font_Chooser fc = new Font_Chooser();
        fc.ShowDialog();
    }
5 голосов
/ 02 августа 2010

В небольшом проекте, над которым я сейчас работаю, у меня есть:

<Window.Resources>
    <c:CommandReference x:Key="ExitCommandReference" Command="{Binding ExitCommand}" />
    <c:CommandReference x:Key="ReloadCommandReference" Command="{Binding ReloadCommand}" />
</Window.Resources>
<Window.InputBindings>
    <KeyBinding Key="F4" Modifiers="Alt" Command="{StaticResource ExitCommandReference}" />
    <KeyBinding Key="F5" Command="{StaticResource ReloadCommandReference}"/>
</Window.InputBindings>

и в коде:

private DelegateCommand exitCommand;
private DelegateCommand reloadCommand;
public ICommand ExitCommand { get { return exitCommand ?? (exitCommand = new DelegateCommand(Exit)); } }
public ICommand ReloadCommand { get { return reloadCommand ?? (reloadCommand = new DelegateCommand(Reload)); } }
private static void Exit() { Application.Current.Shutdown(); }
private void Reload() { LoadData(); }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...