当我的Silverlight页面加载时,我想将焦点设置在一个控件上。一个不那么明显的解决方案的简单问题。
我试了以下没有运气。页面加载但我的控件没有焦点。
public MainPage()
{
InitializeComponent();
if( !DesignerProperties.IsInDesignTool )
{
// some init code goes here...
this.Loaded += ( s, e ) =>
{
this.InitFocus();
};
}
}
private void InitFocus()
{
this.PropNumTextBox.Focus();
}
答案 0 :(得分:2)
解决方案是使用System.Windows.Browser.HtmlPage.Plugin.Focus()
。当我在调用我的初始控件之前调用它时,它按预期工作。正确的代码如下所示:
public MainPage()
{
InitializeComponent();
if( !DesignerProperties.IsInDesignTool )
{
// init code here...
this.Loaded += ( s, e ) =>
{
this.InitFocus();
};
}
}
private void InitFocus()
{
// this call is necessary to initialize focus on page load
System.Windows.Browser.HtmlPage.Plugin.Focus();
this.PropNumTextBox.Focus();
}