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 に答える