我试图在媒体开始播放几秒钟后隐藏鼠标指针。到目前为止,我已经尝试了以下哪些应该完成这项工作,但遗憾地抛出了一个空引用异常。
Window.Current.CoreWindow.PointerCursor = null;
项目最小目标:创建者更新
目标:秋季创作者更新。
用于媒体的控件:mediaplayerelement。
答案 0 :(得分:1)
到目前为止,我已尝试过以下哪些应该执行此操作,但遗憾地抛出了空引用异常。
问题是你没有在UI线程中调用此方法。请尝试将PointerCursor
设置为null
,如下所示。
await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () =>
{
Windows.UI.Xaml.Window.Current.CoreWindow.PointerCursor = null;
});
答案 1 :(得分:0)
我向您建议我以前隐藏/取消隐藏鼠标光标的方式:
Window.Current.CoreWindow.PointerMoved += CoreWindow_PointerMoved;
Window.Current.CoreWindow.PointerCursor = null;
private async void CoreWindow_PointerMoved(Windows.UI.Core.CoreWindow sender, PointerEventArgs args)
{
if (Window.Current.CoreWindow.PointerCursor == null)
Window.Current.CoreWindow.PointerCursor = new CoreCursor(CoreCursorType.Arrow, 0);
Stopwatch.Restart();
await Task.Delay(1500);
if (Stopwatch == null) return;
if (Stopwatch.ElapsedMilliseconds >= 1500)
Window.Current.CoreWindow.PointerCursor = null;
}
在这段代码中,我添加了一个全局的 StopWatch 属性
Stopwatch Stopwatch { get; set; } = new Stopwatch();
您应该在某个地方处理秒表并取消注册 OnNavigatedFrom 等事件
Window.Current.CoreWindow.PointerMoved -= CoreWindow_PointerMoved;
Stopwatch.Stop();
Stopwatch = null;
Window.Current.CoreWindow.PointerCursor = new CoreCursor(CoreCursorType.Arrow, 0);
AppCore.Instance.MediaPlayer.Pause();
Frame.GoBack();
NavigationManager.BackRequested -= NavigationManager_BackRequested;
NavigationManager.AppViewBackButtonVisibility = AppViewBackButtonVisibility.Collapsed;
NavigationManager = null;