2015-06-29 5 views
-1

Я сделал пользовательскую цифровую панель управления в wpf. Я хочу знать, когда я установил контроль над формой. когда я нажал любую цифровую кнопку, тогда ее нужно ввести в сфокусированную область. как сделать это это мой XAML сценарий enter code here пользовательская цифровая клавиатура

 <RowDefinition Height="1*"/> 
     <RowDefinition Height="1*"/> 
     <RowDefinition Height="1*"/> 
    </Grid.RowDefinitions> 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition Width="1*"/> 
     <ColumnDefinition Width="1*"/> 
     <ColumnDefinition/> 
    </Grid.ColumnDefinitions> 

    <Button Name="btn2" Content="2" Focusable="False" FontSize="26" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Grid.Column="1" Grid.Row=" 1" /> 
    <Button Name="btn1" Content="1" Focusable="False" FontSize="26" HorizontalAlignment="Stretch" Grid.Row="1" VerticalAlignment="Stretch" BorderBrush="DarkGray" BorderThickness="4,2,2,8" /> 
    <Button Name="btn3" Content="3" Focusable="False" FontSize="26" Grid.Column="2" Foreground="White" HorizontalAlignment="Stretch" Grid.Row="1" VerticalAlignment="Stretch" /> 
    <Button Name="btn4" Content="4" Focusable="False" FontSize="26" HorizontalAlignment="Stretch" Grid.Row="2" VerticalAlignment="Stretch" /> 
    <Button Name="btn5" Content="5" Focusable="False" FontSize="26" Grid.Column="1" HorizontalAlignment="Stretch" Grid.Row="2" VerticalAlignment="Stretch" /> 
    <Button Name="btn6" Content="6" Focusable="False" FontSize="26" Grid.Column="2" HorizontalAlignment="Stretch" Grid.Row="2" VerticalAlignment="Stretch" /> 
    <Button Name="btn7" Content="7" Focusable="False" FontSize="26" HorizontalAlignment="Stretch" Grid.Row="3" VerticalAlignment="Stretch" /> 
    <Button Name="btn8" Content="8" Focusable="False" FontSize="26" Grid.Column="1" HorizontalAlignment="Stretch" Grid.Row="3" VerticalAlignment="Stretch" /> 
    <Button Name="btn9" Content="9" Focusable="False" FontSize="26" Grid.Column="2" HorizontalAlignment="Stretch" Grid.Row="3" VerticalAlignment="Stretch" /> 
    <Button Name="btn0" Content="0" Focusable="False" FontSize="26" HorizontalAlignment="Stretch" Grid.Row="4" VerticalAlignment="Stretch" /> 
    <Button Name="btn00" Content="00" Focusable="False" FontSize="26" Grid.Column="1" HorizontalAlignment="Stretch" Grid.Row="4" VerticalAlignment="Stretch" /> 
    <Button Name="btn_dot" Content="." Focusable="False" FontSize="26" Grid.Column="2" HorizontalAlignment="Stretch" Grid.Row="4" VerticalAlignment="Stretch" /> 
    <Button Name="btn_temp1" Content="Button" Focusable="False" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" /> 
    <Button Name="btn_temp2" Content="Button" Focusable="False" Grid.Column="1" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" /> 
    <Button Name="btn_temp3" Content="Button" Focusable="False" Grid.Column="2" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" /> 
</Grid> 

``

ответ

1

Вы должны прикрепить обработчик события к UIElement.PreviewKeyDown Event для обработки нажатий клавиш в WPF в вашем UserControl конструктор, или Loaded обработчик событий:

PreviewKeyDown += YourKeyEventHandler; 

...

private void YourKeyEventHandler(object sender, KeyEventArgs e) 
{ 
    // Do something here with e.Key (the pressed key) 
} 

Вы можете узнать больше из связанной страницы на сайте MSDN.

+0

Я не мог понять полностью. пожалуйста, сообщите мне подробнее. как добавить вышеуказанные события, которые вы сказали, и это также поможет мне, если вы скажете мне в vb –

+0

Извините, я не пишу Visual Basic, вам нужно будет использовать онлайн-конвертер C# в VB. Что касается деталей, я не знаю, что еще могу сказать ... просто присоедините обработчик событий к вашему 'UserControl', как я показал вам выше. Если вы действительно не знаете, как подключить обработчик событий, то мне жаль, но вы не должны использовать Stack Overflow, так как он предполагает, что его пользователи имеют некоторое базовое понимание развития. – Sheridan

+0

ОК, тогда просто скажите мне, что такое PreviewKeyDown + = YourKeyEventHandler его значение и где я должен его написать. –