2009-05-06 18 views
3

私はクラスを持つメソッドを持っていToolTipProvider のUIElement自体の特性ともに見上げ含む様々な要因に基づいて、指定したUIElementのための特定のツールチップを返します WPF - 動的ツールヒント

string GetToolTip(UIElement element) 

動的に変更可能なドキュメント。フォームが最初に起動すると、ツールチップはビジュアルスタジオの[ドキュメントキャッシュがまだ構築中]のようなものになり、その後バックグラウンドで表示されます。

これは、開発者の努力を最小限に抑えて、どのwpf形式でも使用できるようにしたいと考えています。基本的にはObjectDataProviderリソースをWindow.Resourcesに挿入してToolTipProviderオブジェクトをラップしたいと思ったら、そのツールチップを必要とするすべての要素について、そのObjectDataProviderを参照するリソースにツールチップ(例:MyToolTipProvider)を作成する必要があると思いますToolTip="{StaticResource MyToolTipProvider}" ですが、実際のelemnt自体をobjectdataproviderのMethodParametersにバインドする方法、またはb)ツールチップを開くたびにメソッドを強制的に呼び出す方法はありません。

私が必要とする一般的なパターンのアイデア/ポインターはありますか?完全な解決策を探しているのではなく、経験豊かな人たちからのちょっとしたアイデア

答えて

0

自分自身を専門家と呼んではいませんが、これはUIの任意の要素にアタッチすることができ、アタッチされるオブジェクトへのアクセスを取得するイベントハンドラと、アタッチされたプロパティに渡される値を指定できます。アタッチされたプロパティがアタッチされた要素への参照を保持することができ、必要に応じていつでもツールチップを変更することができます。

+0

Iそのように、私はPropertyChangedCallbackをアタッチされたプロパティで登録しているので、プロパティの設定に合わせてすべての要素を追跡できます。 –

1
  1. ツールチップビューファクトリとして機能する新しいユーザーコントロールを作成します。

  2. (例えばデータ、含むコントロール、...)あなたが結合使って制御する工場のために必要なすべてのデータを渡し、ツールチップとして、あなたのコントロールを使用し

 
<AnyControl> 
    <AnyControl.ToolTip> 
     <YourToolTipControl Content="{Binding}" /> 
    </AnyControl.ToolTip> 
</AnyControl>