WPF的ItemsControl将显示一个焦点矩形,当它认为它有焦点,用户按Tab或Alt。
但我最近有一个ItemsControl显示一个焦点矩形,即使它没有焦点--它的父母之一也有。ItemsControl在一个UserControl中,它在另一个有焦点的UserControl中。就像这样:
<!-- UserControl1.xaml; this is the control that has focus -->
<UserControl x:Class="UserControl1" Focusable="True" ...>
我已经将我的问题简化为下面的代码,它可以简单地放到LinqPad中运行。
问题是当我通过托管在WinForms MDI子框中的WPF控件时-焦点在文本框之间移动,直到最后一点焦点跳到第二个MDI子(在我的示例中,这是所有WinForms,文本框之间的选项卡在那里工作得很好)。
如何防止WPF选项卡从一个MDI子框切换到另一个MDI子程序,并将焦点保留在WPF文本框中。(如果WinForms控件出现在ElementHost之前/之后,那么理想情况下,焦点将从WinForms转移到WPF到WinForms,然后返回到第一个WinForms。)
var mdiParent = new Form();
我正在尝试针对对象验证WPF表单。当我在文本框中键入内容,失去焦点,返回到文本框,然后删除我写的所有内容时,验证就会触发。但是,如果我只是加载WPF应用程序并按tab键离开文本框,而没有从文本框中写入和擦除任何内容,那么它就不会被触发。
下面是Customer.cs类:
public class Customer : IDataErrorInfo
{
public string FirstName { get; set; }
public string LastName { get; set; }
public string Error