[英]WPF allow child user control to control specific keypress events of its parent
使用 WPF.Net5。 我有 3 個用戶控件。 VideoHost 是我制作的一個用戶控件,它承載了我制作的兩個獨立的子用戶控件,稱為 VideoControl 和 MediaElement。 Videocontrol 具有控制 MediaElement 操作的按鈕和 slider。 Videocontrol 上的按鈕具有自定義路由事件,這些事件冒泡到 VideoHost,它們在 MediaElement 上執行操作,例如播放停止暫停等。我的問題是我還希望某些按鍵功能在 MediaElement 上執行操作。 比如箭頭鍵。 我想將按鍵事件的代碼放在 VideoControl 中,但它僅在 VideoControl 具有焦點時才有效。 如何將 Keypress 的代碼保留在 VideoControl 中,允許通過 XML 標簽/屬性/事件在 VideoHost 中連接,無論 VideoControl 是否具有焦點,這些標簽/屬性/事件都將處理按下的特定鍵。
VideoHost 是我制作的一個用戶控件,它承載了我制作的兩個單獨的子用戶控件,稱為 VideoControl 和 MediaElement
根據此描述,您的.xaml
與此類似。
<UserControl x:Class="VideoHost" KeyDown="VideoHost_OnKeyDown">
<StackPanel Orientation="Vertical">
<views:MediaElement x:Name="MediaElement"/>
<views:VideoControl x:Name="VideoControl"/>
</StackPanel>
</UserControl x:Class="VideoHost">
您可以在VideoHost
中處理KeyDown
事件並調用VideoControl
中的函數
private void VideoHost_OnKeyDown(object sender, KeyEventArgs e)
{
// MediaElement.InvokeMyKeypressCode(e);
VideoControl.InvokeMyKeypressCode(e);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.