我需要像excel查找和替换对话框中的行为,这就是我这样问的原因。在此图像中,您可以看到FindNext始终是专注的
我可以将焦点设置为单个元素,即Textbox或Button。但我的要求始终是我需要将焦点设置为Button,即使我点击窗口中的其他一些控件。
答案 0 :(得分:1)
正如我在评论中所说,只需为您的按钮设置IsDefault="True"
即可在您发布的图片中获得所需的结果。
e.g。
<Button Content="Button" IsDefault="True" />
结果:
即使用户输入文本框,您也可以看到按钮突出显示。
答案 1 :(得分:0)
不确定为什么要这样做。但是您始终可以在窗口上设置PreviewMouseLeftButtonDown
,并检查e.OriginalSource
属性以查看它是否是您想要关注的控件。如果您不想关注,只需将e.Handled
设置为true
。
但是,严肃地说,为什么要这样做仍然很奇怪。
&#34;查找下一个&#34;按钮只在视觉上看起来集中仍然关注搜索TextBox
或替换TextBox
。当您点击&#34;输入&#34;时,TextBox
处理KeyEvent
,并执行与&#34;查找下一个&#34;相同的Command
。按钮。
如果你想做类似的事情,你可能会考虑这个:
bool ShouldButtonLookFocused
)ShouldButtonLookFocused
属性的按钮中设置数据触发器,将触发器值设置为true(例如<DataTrigger Binding="{Binding Path=ShouldButtonLookFocused}" Value="True">
TextBox
控件的绑定,这些控件在聚焦时,您希望按钮能够显示焦点&#34;。绑定应该是此ShouldButtonLookFocused
属性,并且很可能您需要使用Converter
。示例:
<Style TargetType="Button">
<Style.Triggers>
<DataTrigger Binding="{Binding Path=ShouldButtonLookFocused}" Value="True">
<!-- Whatever visual thing you can think of -->
<Setter Property="Border" Value="Red" />
</DataTrigger>
</Style.Triggers>
</Style>
public static readonly DependencyProperty ShouldButtonLookFocusedProperty =
DependencyProperty.Register("ShouldButtonLookFocused",
typeof(bool),
typeof(WhicheverClassThisIsIn));
public bool ShouldButtonLookFocused
{
get
{
return (bool)GetValue(ShouldButtonLookFocusedProperty);
}
set
{
SetValue(ShouldButtonLookFocusedProperty, value);
}
}
<TextBox Name="SearchBox"
IsFocused="{Binding Path=ShouldButtonLookFocused,
Converter={StaticResource MyConverter}"
/>
我没有测试过这个,也许你可以尝试一下然后告诉我它是怎么回事。