【问题标题】:RadComboBox IsDropDownOpen not updating when holding tab continuous. Phantom Drop Downs连续按住制表符时,RadComboBox IsDropDownOpen 不更新。幻影下拉
【发布时间】:2016-01-15 19:31:23
【问题描述】:

我可以用另一双眼睛。场景如下图所示。多个 RadComboBox 在属性设置为 OpenDropDownOnFocus="True" 的视图上,这样当它们获得焦点时,下拉菜单会显示给用户。

如果用户提供 KeyDown 和 KeyUp 用于制表符,这将按预期工作。但是,如果您按住选项卡按钮,则下拉菜单(这是嵌套在 ControlTemplate 中的 PopUp 控件)似乎不会收到属性更改的通知。这会导致一堆堆叠的下拉菜单保持打开状态,直到用户在屏幕的其他地方进行交互。请参阅下图以获取视觉示例;

您在上面看到的 TrueFalse 文本只是我漂浮在绑定到报告 IsDropDownOpen 属性状态的控件上的 TextBlocks。注意他们中的一些人仍然报告True

最初我试图通过使用LostFocus 事件将IsDropDownOpen 属性翻转回False 来友好地提醒它进行更新。什么样的作品。问题是当它打开时,焦点被转移到嵌套的弹出窗口。所以用户不能用鼠标选择他们的选择,但他们可以用箭头导航到它。这显然不是一个好的解决方法。

我试图从模板级别绑定到它并附加弹出窗口的LostFocus,但我仍然没有得到任何乐趣。

同样,这种行为只有在用户连续按住 Tab 按钮时才会发生,到目前为止,telerik 论坛一直毫无用处。希望一双新鲜的眼睛可以将骨头扔向KeyUp / KeyDown或其他东西之外的另一条路线。有什么想法吗?

编辑 PS:当然这是一个 Telerik 错误,不,我现在不能将他们的东西更新到最新的,是的,在这种情况下,程序集可能有很多版本,只需要弄清楚这一点一个单独的错误。

【问题讨论】:

    标签: c# xaml silverlight telerik silverlight-5.0


    【解决方案1】:

    所以,如果其他人遇到这种情况。这就是我所做的似乎可以解决问题的方法。我以为我已经尝试过了,但显然是第一次捏造了一些拼写哈哈。

    x:Key="EditableComboBox"x:Key="NonEditableComboBox" 的控制模板中,只需将Unfocused VisualState 替换为此即可;

    <VisualState x:Name="Unfocused">
       <Storyboard>
          <ObjectAnimationUsingKeyFrames Storyboard.TargetName="PART_Popup" 
                                         Storyboard.TargetProperty="IsOpen">
             <DiscreteObjectKeyFrame KeyTime="0:0:0">
                <DiscreteObjectKeyFrame.Value>
                   <sys:Boolean>False</sys:Boolean>
                </DiscreteObjectKeyFrame.Value>
             </DiscreteObjectKeyFrame>
          </ObjectAnimationUsingKeyFrames>
       </Storyboard>
    </VisualState>
    

    PART_Popup 是组合的弹出窗口,所以我们只会让 VSM 提醒它在 UnFocused 上滚开。

    【讨论】:

      猜你喜欢
      • 2012-02-29
      • 1970-01-01
      • 1970-01-01
      • 2014-04-09
      • 1970-01-01
      • 2021-07-18
      • 1970-01-01
      • 2021-03-15
      • 2019-10-28
      相关资源
      最近更新 更多