在
《在ViewModel里设置Textbox焦点(focus)》一文中记录了如何在VM中设置对象焦点的过程,但今天发现Focus在ChildWindow子窗体里面不起作用,经过测试,此问题可通过重载ChildWindow的OnOpened事件来解决,因为ChildWindow的加载执行顺序是:
Initialized –
Loaded –
Opened(包括动画执行),所以只要在ChildWindow的xaml.cs里面重载即可。
以下是一个重载的例子:
protected override void OnOpened()
{
base.OnOpened();
if (String.IsNullOrEmpty(tbUserName.Text))
{
tbUserName.Focus();
}
else
{
if (tbPassword.IsEnabled) tbPassword.Focus();
}
}
原文参考:http://www.cnblogs.com/Mainz/archive/2011/10/25/2224144.html