WPF 为用户控件保留 IsFocused 状态
WPF retaining IsFocused status for user control
我有一个用户控件 (UC),它的几个实现在一个屏幕上。现在,只要它们中的任何一个将 IsFocused 属性 设置为 True(它一次只会对 1 个保持为真),就会有一些样式效果仅针对该特定实现出现(基本上是一些突出显示样式)。如果关注其他一些实现,这些样式将只出现在那个新的实现上,而在旧的实现上会丢失。
现在,在该屏幕上,如果我创建一个与那些控件无关的全新按钮,并且如果我单击它,最后聚焦的 UC 的样式将丢失。我想专门保留 UC 的样式,这样,如果一个 UC 已经聚焦并显示样式,那么只要未单击该类型的其他一些 UC,这些样式就应该保留。就像点击那些 UCs 以外的任何东西不应该干扰当前焦点 UC 的 onFocused 样式。希望它有意义。
您必须在 FocusManager
:
的帮助下为应该有独立焦点管理的上下文创建一个新的焦点范围
<MyUserControl FocusManager.IsFocusScope="True" />
我有一个用户控件 (UC),它的几个实现在一个屏幕上。现在,只要它们中的任何一个将 IsFocused 属性 设置为 True(它一次只会对 1 个保持为真),就会有一些样式效果仅针对该特定实现出现(基本上是一些突出显示样式)。如果关注其他一些实现,这些样式将只出现在那个新的实现上,而在旧的实现上会丢失。
现在,在该屏幕上,如果我创建一个与那些控件无关的全新按钮,并且如果我单击它,最后聚焦的 UC 的样式将丢失。我想专门保留 UC 的样式,这样,如果一个 UC 已经聚焦并显示样式,那么只要未单击该类型的其他一些 UC,这些样式就应该保留。就像点击那些 UCs 以外的任何东西不应该干扰当前焦点 UC 的 onFocused 样式。希望它有意义。
您必须在 FocusManager
:
<MyUserControl FocusManager.IsFocusScope="True" />