繁体   English   中英

绑定交互触发焦点边框

[英]Binding Interaction Trigger focus border

我有一个ListBox,用户可以在其中选择一个项目,一旦按下向右箭头,该项目就会移到另一个面板。

当我使用按钮引发命令时,一切正常。 但是,当我有该项目并按向右箭头时,即会添加该项目,但下一个项目的焦点设置不正确,我的意思是,边框已聚焦,而不是另一个项目。

我已经在ListBox上设置了IsTabStop="False"

这就是绑定交互触发器的方式:

<i:Interaction.Triggers>
    <i:EventTrigger EventName="KeyDown">
        <cal:ActionMessage MethodName="WasPressed">
            <cal:Parameter Value="$eventArgs"/>
        </cal:ActionMessage>
    </i:EventTrigger>
</i:Interaction.Triggers>

这就是我如何管理引发命令的触发器:

public void WasPressed(KeyEventArgs e)
{
    if (SelectedItem != null && e.Key == Key.Right)
    {
        MoveItem();
    }
}

这就是我按下向右箭头后的样子(并添加了该项目,因此可以正常工作)。 注意出现的边框:

后

许多WPF元素在IsFocused属性上都有一个触发器,该触发器在其周围添加了一个虚线边框。 看来这正在发生。

ListBox没有这样的触发器,因此您应该调查父元素。

最简单的方法是使用Blend编辑模板的现有副本。

单击元素,然后转到对象->编辑样式->编辑副本

然后Blend明确定义了模板,您可以查找定义虚线边框的触发器。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM