2016-08-15 8 views
0

私は、多くのフィールドを持つ複雑なアプリケーションと、与えられたコントロールの入力を正確に記述するラベルのための小さなスペースを持っています。この問題に取り組むために、各コントロールのツールチップを使って要素の説明を試みました。ユーザーが入力を開始すると、それらのツールチップが途切れ途切れているので、私はフォーカスした要素のツールチップを表示するためにアプリケーションの領域を専用にしました。他のコントロールを含むより複雑なコントロールを除いて、これはかなりうまくいく。 DatePickerは、フォーカスされた要素としてDatePickerPARTextBoxになります。 (だけではなくDatePicker、それゆえこのようなすべてのコントロールのために)WPFでフォーカスされた「コンテナコントロール」を取得

<Window 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> 
    <StackPanel> 
    <TextBox ToolTip="TextBox ToolTip" /> 
    <DatePicker ToolTip="DatePicker ToolTip" /> 
    <Label Content="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Window}}, Path=(FocusManager.FocusedElement).ToolTip}" /> 
    </StackPanel> 
</Window> 

この集中問題を解決して、このような「複合」コントロールのツールチップを表示するための一般的なアプローチがあります:ここでは、最小限の例では、その問題を実証していますか?私の頭の上オフ

答えて

0

、私はこのアプローチのために行くだろう:

  1. が添付プロパティクラスでもへの結合を取ることがありますコントロール
  2. の説明テキストを提供しますAttached Propertyを作成します。ラベル/テキストブロックに説明テキスト
  3. バインド説明テキストのviewmodelプロパティのためのあなたのVMのプロパティ
  4. 添付プロパティは、コントロールがフォーカスを取得したときに、その後のために待機し、ちょうど関連結合を更新します。

    <TextBox local:DescriptiveText="This textbox takes some input" local:DescriptiveTarget="{Binding DescriptiveText} /> 
    <Label Content="{Binding DescriptiveText} /> 
    

だから、XAMLで、少なくともそれはこのようなものを見ることができます

関連する問題