Silverlight 4.0 在Silverlight中,如何在页面加载时设置控件的焦点?

Silverlight 4.0 在Silverlight中,如何在页面加载时设置控件的焦点?,silverlight-4.0,silverlight-3.0,Silverlight 4.0,Silverlight 3.0,加载Silverlight页面时,我希望将焦点设置在控件上。简单的问题,有一个不太明显的解决方案 我尝试了以下方法,但没有成功。页面已加载,但我的控件没有焦点 public MainPage() { InitializeComponent(); if( !DesignerProperties.IsInDesignTool ) { // some init code goes here... this.Loaded += ( s, e )

加载Silverlight页面时,我希望将焦点设置在控件上。简单的问题,有一个不太明显的解决方案

我尝试了以下方法,但没有成功。页面已加载,但我的控件没有焦点

public MainPage()
{
    InitializeComponent();

    if( !DesignerProperties.IsInDesignTool )
    {
        // some init code goes here...

        this.Loaded += ( s, e ) =>
            {
                this.InitFocus();
            };
    }
}

private void InitFocus()
{
    this.PropNumTextBox.Focus();
}

解决方案是使用
System.Windows.Browser.HtmlPage.Plugin.Focus()
。当我在调用初始控件上的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();
}