亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

UWP 鍵盤加速器 FN 問題

UWP 鍵盤加速器 FN 問題

C#
海綿寶寶撒 2023-08-20 15:18:39
<Button    x:Name="PlayButton"    Click="PlayButton_Click"    Style="{StaticResource MediaControlButtonStyle}">    <Button.Content>        <FontIcon            x:Name="PlayButtonIcon"            FontSize="30"            Glyph="&#xE768;" />    </Button.Content>    <Button.KeyboardAccelerators>        <KeyboardAccelerator Key="F3" />    </Button.KeyboardAccelerators></Button>我想使用 F3 播放/暫停我的 UWP 應用中的音樂。但是,僅按 F3 在我的 Surface Book 2 上不起作用。我需要同時按 FN 和 F3 才能使其工作。我應該怎么做才能只按F3?Microsoft 內置 UWP 應用 Groove Music 只需按 F3 即可播放和暫停。另一個問題是,當UWP應用程序的窗口最小化時,如何仍然使用鍵盤加速器?Groove 的鍵盤控制在窗口最小化時仍然有效。
查看完整描述

1 回答

?
一只名叫tom的貓

TA貢獻1906條經驗 獲得超3個贊

看來這個行為——是否需要按FN,與安裝該應用程序的設備有關。當我在PC上運行時,我只需要按F3,但它需要在表面上按FN。如果你還想改變它,我在下面有一個解決方法,您可以在頁面(例如MainPage)上注冊加速器事件。


public MainPage()

        {

            this.InitializeComponent();

            Window.Current.Dispatcher.AcceleratorKeyActivated += AccelertorKeyActivedHandle;

        }


private void AccelertorKeyActivedHandle(CoreDispatcher sender, AcceleratorKeyEventArgs args)

        {

            if (args.EventType.ToString().Contains("Down"))

            {

                    if (args.VirtualKey == Windows.System.VirtualKey.F3)

                    {

                        // do something you want

                    }

            }

        }

UWP應用程序窗口最小化時,當前窗口沒有焦點,因此設置的快捷鍵不會響應。但系統有默認的快捷鍵(例如Fn + F11)可以播放或暫停媒體。如果你想響應系統快捷鍵,需要允許backgroundMediaPlayback。你可以嘗試一下官方的demo,也可以通過鍵盤自帶的媒體按鈕來控制。


更新:


根據官方示例,如果要使用MediaElement來播放,需要設置MediaPlay和MediaPlaybackList來綁定播放列表。這樣的話,似乎可以通過系統默認的快捷鍵來控制。實際上起作用的是MediaPlayer。對于更詳細的信息,還需要閱讀官方demo。


XAML:


<MediaElement Name="mediaPlayerElement" 

                            AreTransportControlsEnabled="True"  

                            Stretch="UniformToFill" Height="100" Width="400">

隱藏代碼:


private void MainPage_Loaded(object sender, RoutedEventArgs e)

        {

            var source = MediaSource.CreateFromUri(new Uri("ms-appx:///Assets/xxx"));

            // Create a configurable playback item backed by the media source

            var playbackItem = new MediaPlaybackItem(source);

            MediaPlayer player = new MediaPlayer();

            MediaPlaybackList lists = new MediaPlaybackList();

            lists.Items.Add(playbackItem);

            player.Source = lists;

        }


查看完整回答
反對 回復 2023-08-20
  • 1 回答
  • 0 關注
  • 211 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號