Silverlight フォームのコントロールに初期フォーカスを設定しようとしています。XAML ファイルでフォーカスを指定できるように、添付プロパティを使用しようとしています。コントロールがフォーカスを受け入れる準備が整う前に、フォーカスが設定されていると思われます。誰でもこれを確認したり、この手法をどのように機能させるかを提案したりできますか?
TextBox の XAML コードは次のとおりです。
<TextBox x:Name="SearchCriteria" MinWidth="200" Margin ="2,2,6,2" local:AttachedProperties.InitialFocus="True"></TextBox>
プロパティは AttachedProperties.cs で定義されています。
public static DependencyProperty InitialFocusProperty =
DependencyProperty.RegisterAttached("InitialFocus", typeof(bool), typeof(AttachedProperties), null);
public static void SetInitialFocus(UIElement element, bool value)
{
Control c = element as Control;
if (c != null && value)
c.Focus();
}
public static bool GetInitialFocus(UIElement element)
{
return false;
}
SetInitialFocus メソッドにブレークポイントを設定すると、ブレークポイントが起動し、コントロールは目的の TextBox になり、Focus が呼び出されます。
このタスクを達成するために他の人が動作などを作成したことは知っていますが、なぜこれが機能しないのか疑問に思っています。