2017-06-20 2 views
0

を配置します。表示と私はいくつかのSQLデータベース(グラフ表現)内のオブジェクト間の依存関係を表すために使用yFiles.Netコンポーネントで働いていますツールチップ.NET

は、私はいくつかのオブジェクトの上にカーソルをポイントすると表示されるツールチップを作成する必要があります。そのツールチップにはテキストだけが含まれていません。画像も含まれています。私は、デフォルトのTooltipクラスを拡張するカスタムクラスを作成する方法を知っているし、カスタムツールチップを描画するメソッドをオーバーライドする方法を知っています。私は知らない何

は、私は、グラフ上のいくつかのオブジェクトをポイントしたときにツールチップを表示する方法である、と私は、グラフ上のオブジェクトからカーソルを移動すると、それを配置する方法?誰かが私を助けてくれますか?

+0

yWorksを評価している限り、yWorksが無料でサポートする権利があります。私たちの一部は、同様にスタックオーバーフローを入り浸りている間(yFilesは、人々が尋ねるので、質問はここに多くの時間未解決のままする傾向があるyFiles他のライブラリよりもずっと小さい主な理由)、それが支援を行うための好ましい方法ではないまま。ここで質問するのは間違いありませんが、それが私たちのサポートを求めるほど役に立たないかもしれないことを知っています。 – Joey

答えて

0
private CustomTooltip m_tooltip; 
private MouseHoverInputMode m_mouseHoverMode; 

private void SetupToolTips(GraphEditorInputMode mode) 
    { 

     m_tooltip = new CustomTooltip(m_model.TooltipImages); 

     ItemHoverInputMode itemHoverMode = new ItemHoverInputMode(); 
     itemHoverMode.HoverItems = GraphItemTypes.Node | GraphItemTypes.Edge; 
     mode.ItemHoverInputMode = itemHoverMode; 

     m_mouseHoverMode = new MouseHoverInputMode(m_tooltip, textProvider); 
     mode.MouseHoverInputMode = m_mouseHoverMode; 
     mode.ItemHoverInputMode.HoveredItemChanged += new EventHandler<HoveredItemChangedEventArgs>(ToolTipEvent); 
    } 

    private void ToolTipEvent(object sender, HoveredItemChangedEventArgs e) 
    { 
     m_tooltip.Item = e.Item; 
    } 

    private void textProvider(object sender, ToolTipQueryEventArgs e) 
    { 
     if (m_tooltip.Item is INode || m_tooltip.Item is IEdge) 
     { 
      e.ToolTip = " "; 
     } 
    } 

public class CustomTooltip : ToolTip 
    { 
    private void OnPopup(object sender, PopupEventArgs e) 
    { 
    } 
    private void OnDraw(object sender, DrawToolTipEventArgs e) 
    { 
    } 
    } 
0

私が正しくあなたを理解していれば、あなたは ItemHoverInputMode.HoveredItemChanged Eventをインターセプトします。

私はこれをテストしたりする前に、yFilesで働いたが、documentationによると、これは動作するはずですしていない。

// 'gc' is of type yWorks.yFiles.UI.GraphControl. 

var ihim = new ItemHoverInputMode(); 
ihim.HoveredItemChanged += YourEvenHandler; 
gc.InputModes.Add(ihim); 

はその後、イベントハンドラ内の要素をチェックして、ツールチップを表示または非表示にします。

+0

私は質問を投稿する前にそのように正確に使用しましたが、それは私のために働いていませんでした。私は答えがMouseHoverInputModeを使用していると信じています – Essien

+0

既に試したことがある場合は、この情報をあなたの質問に含めることができます。私。 "あなたは何を期待しましたか?実際の行動はどうでしたか?" – spmdc

+0

はい、それは私の悪いです、私は私の質問にその情報を含める必要があります。私はオブジェクトをホバーするとツールチップが表示されることを期待し、オブジェクトをクリックしたときのみツールチップを表示します。私は、HoveredItemChangedイベントは、ホバリングされたアイテムの一部が変更(クリック)されたときにのみ呼び出されると信じています。 – Essien

関連する問題