我有 WPF 应用程序,其中屏幕层上有一些控件。使用 TAB(键盘)在控件之间导航可以正常工作,我可以看到图像使用 SNOOP 获得焦点。但是 - 单击图像不会将焦点设置在它上面。
如果这很重要 - 我通过(单击和输入)事件处理程序输入了我需要的功能......只是在单击情况下没有收到焦点,这是我无法理解的混乱。
您是否考虑过使用模板按钮来显示您的图像?您将获得单击时的焦点行为,但显示图像:
<Button>
<Button.Template>
<ControlTemplate TargetType="Button">
<Image Source="http://placehold.it/300x500" Stretch="Fill" />
</ControlTemplate>
</Button.Template>
</Button>
默认情况下,当您单击某个Image
元素时,它不会获得焦点。您可以编写一些代码来关注它。只需处理MouseLeftButtonDown
事件:
private void img_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
Image img = sender as Image;
img.Focusable = true;
img.Focus();
}
<Image Source="pic.png" MouseLeftButtonDown="img_MouseLeftButtonDown" />