[英]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.