WPF允許我輕鬆地將窗口級別的鍵盤快捷鍵綁定到使用InputBindings屬性的方法。在WinRT中這與此相當甚麼?將鍵盤快捷鍵綁定到WinRT中的方法的正確方法是什麼?InputBindings的WinRT等價物是什麼?
7
A
回答
7
鍵盤快捷鍵描述爲here。我認爲你需要access keys或accelerator keys。
訪問鍵是應用程序中一段UI的快捷方式。訪問密鑰由Alt鍵和一個字母鍵組成。
加速鍵是應用程序命令的快捷方式。你的應用程序可能有也可能沒有完全對應於該命令的UI。加速鍵由Ctrl鍵和一個字母鍵組成。
下面的例子演示了訪問實現媒體播放,暫停快捷鍵,停止鍵:
<MediaElement x:Name="Movie" Source="sample.wmv"
AutoPlay="False" Width="320" Height="240"/>
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center">
<Button x:Name="Play" Margin="1,2"
ToolTipService.ToolTip="shortcut key: Ctrl+P"
AutomationProperties.AccessKey="Control P">
<TextBlock><Underline>P</Underline>lay</TextBlock>
</Button>
<Button x:Name="Pause" Margin="1,2"
ToolTipService.ToolTip="shortcut key: Ctrl+A"
AutomationProperties.AccessKey="Control A">
<TextBlock>P<Underline>a</Underline>use</TextBlock>
</Button>
<Button x:Name="Stop" Margin="1,2"
ToolTipService.ToolTip="shortcut key: Ctrl+S"
AutomationProperties.AccessKey="Control S">
<TextBlock><Underline>S</Underline>top</TextBlock>
</Button>
</StackPanel>
<object AutomationProperties.AcceleratorKey="ALT+F" />
見@ Magiel的回答對實施細節事物的代碼方面。
5
重要! 設置AutomationProperties.AcceleratorKey或AutomationProperties.AccessKey不啓用鍵盤功能。它只向UI自動化框架報告應該使用哪些密鑰,以便這些信息可以通過輔助技術傳遞給用戶。密鑰處理的實現仍然需要在代碼中完成,而不是XAML。
protected override void OnNavigatedTo(NavigationEventArgs e)
{
// Set the input focus to ensure that keyboard events are raised.
this.Loaded += delegate { this.Focus(FocusState.Programmatic); };
}
private void Grid_KeyUp(object sender, KeyRoutedEventArgs e)
{
if (e.Key == VirtualKey.Control) isCtrlKeyPressed = false;
}
private void Grid_KeyDown(object sender, KeyRoutedEventArgs e)
{
if (e.Key == VirtualKey.Control) isCtrlKeyPressed = true;
else if (isCtrlKeyPressed)
{
switch (e.Key)
{
case VirtualKey.P: DemoMovie.Play(); break;
case VirtualKey.A: DemoMovie.Pause(); break;
case VirtualKey.S: DemoMovie.Stop(); break;
}
}
}
相關問題
- 1. WinRT中SecureString的等價物是什麼?
- 2. 什麼是WPF ParallelTimeline的WinRT等價物?
- 3. 什麼是WinRT,Win8中的SoundEffectInstance WP的等價物?
- 4. 什麼是WinRT(C#)上的System.Diagnostic.Process的等價物?
- 5. WinRT XAML中ViewPort的等價物是什麼?
- 6. 什麼是Python的os.walk的等價物?
- 7. 什麼是PHP的preg_quote的等價物?
- 8. 什麼是Hub的HttpContext.GetOwinContext()的等價物?
- 9. MessageFormat的Pattern.quote()的等價物是什麼?
- 10. 什麼是Process.Start的VB 6等價物?
- 11. 什麼是android中的dataWithContentsOfURL等價物?
- 12. rlwinm的C++等價物是什麼? (PowerPC)
- 13. 什麼是HttpContext.Current.Request.RawUrl的WCF等價物?
- 14. RDFlib中rdf:ID的等價物是什麼?
- 15. Monotouch中的CGPDFDocumentGetCatalog等價物是什麼?
- 16. 什麼是'document.getElementsByClassName'的Prototype 1.6.0+等價物?
- 17. 什麼是C++中的instanceof等價物?
- 18. 什麼是OS X的UIGraphicsGetCurrentContext()等價物?
- 19. 什麼是DB2的Varchar(Max)等價物?
- 20. 什麼是VC7中的strtok_s等價物?
- 21. Unity 5.3:什麼是UnitEngine.Application.loadedLevel的等價物?
- 22. 什麼是EventWaitHandle的Objective C等價物?
- 23. 什麼是PHP var_dump的.NET等價物?
- 24. 什麼是ChrW(e.KeyCode)的C#等價物?
- 25. 什麼是.NET TypeCode的Java等價物?
- 26. 什麼是NOT in的HQL等價物?
- 27. 什麼是UINT32_MAX的C++等價物?
- 28. 什麼是SVN UPDATE的git等價物?
- 29. 什麼是InterruptedException(Java)的.NET等價物?
- 30. 什麼是java.util.zip.Inflater的Python等價物?
那麼MouseBinding呢?請參閱StackOverflow問題http://stackoverflow.com/a/7354984。 – 2012-08-23 20:16:26
@ Stefano.net我不確定你的意思。那麼鼠標綁定呢? – mydogisbox 2012-08-23 20:20:48
通過InputBinding(或等價物)將鼠標事件附加到不直接像矩形處理的對象。 – 2012-08-23 20:52:06