1

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

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

public MainPage()
{
    InitializeComponent();

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

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

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

1 回答 1

2

解决方案是使用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();
}
于 2012-06-27T14:56:34.600 回答