Winrt xaml WinRT XAML-如何解决higlight问题?

Winrt xaml WinRT XAML-如何解决higlight问题?,winrt-xaml,Winrt Xaml,当我在鼠标驱动的设备上测试我的应用程序时,我看到了一些我想尝试解决的奇怪的突出问题 第一种情况发生在我调用应用程序栏,将鼠标悬停在按钮上(此时按钮变为灰色),然后按Escape关闭应用程序栏时。如果我再次调用应用程序栏,按钮将保持灰色,即使鼠标未在其上,并保持该状态,直到我将鼠标移到其上,然后再次移开 我无法立即看到按钮的属性,当应用程序栏关闭时,我可以重置该属性以清除该状态 我看到的另一个奇怪之处是,有时页面列表中的第一项会被画上一个框: 这似乎发生在应用程序栏被关闭时。我猜这是因为项目处

当我在鼠标驱动的设备上测试我的应用程序时,我看到了一些我想尝试解决的奇怪的突出问题

第一种情况发生在我调用应用程序栏,将鼠标悬停在按钮上(此时按钮变为灰色),然后按Escape关闭应用程序栏时。如果我再次调用应用程序栏,按钮将保持灰色,即使鼠标未在其上,并保持该状态,直到我将鼠标移到其上,然后再次移开

我无法立即看到按钮的属性,当应用程序栏关闭时,我可以重置该属性以清除该状态

我看到的另一个奇怪之处是,有时页面列表中的第一项会被画上一个框:

这似乎发生在应用程序栏被关闭时。我猜这是因为项目处于特定状态,导致框出现,但我不确定是什么状态或如何清除它。在正常使用我的应用程序期间,该框不会出现


感谢您提供的任何澄清或解决方案。

因此,问题是
按钮的
VisualState
被设置为
指向上方
,然后没有被取消设置(因为您的鼠标没有离开控件的边界,因此触发
指向退出
事件)。这意味着您必须手动设置
按钮的
VisualState
,如果您希望它以这种方式更改。您可以在
AppBar
Closed
事件中执行此操作。基本上,使用
visualtreeheloper
AppBar
Content
属性的所有
子项进行递归检查。检查
子项
是否为
按钮
。如果是,请使用
VisualStateManager.GoToState()
设置其
VisualState
,我找到了解决此问题的简单方法。在按钮的点击/点击设置可见性的代码中:

CreateNewDatabase.Visibility = Visibility.Collapsed;
CreateNewDatabase.Visibility = Visibility.Visible;
它会将按钮状态重置为正常。
希望这有帮助

我还找到了按钮周围出现黑匣子的原因——它表示按钮有焦点


更奇怪的是,我不确定为什么那个特定的按钮会获得焦点,或者用户应该如何在没有随机发生的情况下给按钮提供焦点,直到我弄明白,我决定注释掉默认GridView项目样式中使用的Visual Manager XAML对焦点状态的支持。

谢谢-这是一个很大的帮助。然而(我可能做错了什么),它似乎不起作用。我正在调用
VisualStateManager.GoToState(控制,“正常”,true)但视觉状态似乎静止不动。我不确定“正常”是否是要更改的正确状态,或者我是否应该使用不同的状态?