3

この問題に対するコードの解決策しか見たことがありません。XAML ベースのソリューションを探していますが、XAML の UI 要素にフォーカスを設定できないことに驚いています。

この古い MSDN の投稿を見つけました: http://social.msdn.microsoft.com/Forums/en/wpf/thread/09dc837d-4485-4966-b45b-266727bbb90c

それは私が求めた解決策を持っていました(これは私が推測するWPFのみです)

<Grid FocusManager.FocusedElement="{Binding ElementName=listBox1}">

Silverlight 4 XAMLで TextBox/ListBox にフォーカスを設定することはできませんか?

4

2 に答える 2

7

十分に努力すれば、XAML には常に方法があります。:) 必要なのはTrigger、Blend SDK の です。

public class FocusTrigger : TargetedTriggerAction<Control>
{
   protected override void Invoke(object parameter)
   {
      if (Target == null)
         return;

      Target.Focus();
   }
}

次に、次のように使用します。

<Button Content="Move focus">
  <i:Interaction.Triggers>
    <i:EventTrigger EventName="Click">
      <local:FocusTrigger TargetName="TheTextBox"/>
    </i:EventTrigger>
  </i:Interaction.Triggers>
</Button>
<TextBox x:Name="TheTextBox"/>

本当に凝ったものにしたい場合は、トリガーに条件を適用して、XAML であらゆる種類のクレイジーなことを行うことができます。でも、この種のものが組み込まれていないことに驚いています。

于 2011-10-25T02:22:44.967 に答える
1

私の知る限り、いいえ、XAML で要素のフォーカスを設定する方法はありません。あなたが参照したようなものに頼る必要があります。FocusManagerアタッチされた動作 (と同様) が最適なルートだと思います。

于 2011-02-09T01:34:48.237 に答える