2011-11-09 7 views
2

TextBoxを含むXamlマークアップを含む小さなユーザーコントロールがあります。コントロールが選択されると、TextBoxにフォーカスが自動的に設定されます。ただし、ユーザーが他の要素(罫線など)をクリックすると、フォーカスはTextBoxから削除されます。周囲の要素をクリックするとTextBoxにフォーカスを保持します

例えば、長方形やTextBlockのいずれかをクリックする

<Grid> 
    <Grid.RowDefinitions> 
    <RowDefinition Height="Auto" /> 
    <RowDefinition Height="Auto" /> 
    <RowDefinition Height="Auto" /> 
    </Grid.RowDefinitions> 

    <Rectangle Grid.Row="0" Fill="Blue" IsHitTestVisible="False" /> 
    <TextBox Grid.Row="1" /> 
    <TextBlock Grid.Row="2" Text="Something" IsHitTestVisible="False" /> 
</Grid> 

は、テキストボックスがフォーカスを失うことになります。

TextBlockに焦点を当てる最良の方法は何ですか?私は何かシンプルなものが欠けていると感じている

+1

おそらく、LostFocusイベントを処理して、フォーカスが発生したらそれを呼び出すことができますか?カスタムのTextBoxをお探しですか?もしそうなら、あなたはテンプレートとスタイルを調べるべきです。 –

答えて

0

に背景=「透明」設定してみてくださいテキストボックス。そして、TextBoxがフォーカスを保持していることを確認するために、マウスイベントにハンドラーを配置します。

私は解決策に満足していませんでしたが、他のことは考えられませんでした。

(私はLostFocusイベントを処理しようとしましたが、マウスがユーザーコントロールであるかどうかを判断しましたが、マウスの位置を絶えず追跡しなければならなかったときにそのルートをあきらめました)

0

クリックはおそらくグリッドを通過し、その下にあるものに焦点を当てているでしょう。

は、私が見つけた唯一の解決策は、カスタムコントロールは、私が焦点に影響を与えないように望んでいたすべてのものを組み込むように、問題のコントロールを囲むXAMLを再構築することでした<Grid>

関連する問題