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

时间:2012-06-27 14:56:34

标签: silverlight-4.0 silverlight-3.0

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

我试了以下没有运气。页面加载但我的控件没有焦点。

public MainPage()
{
    InitializeComponent();

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

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

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

1 个答案:

答案 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();
}