如何在代码中绑定Tooltip?

时间:2013-11-02 15:24:39

标签: wpf vb.net data-binding binding

我有一个类(它将作为我的用户控件的基类),我希望能够通过后面的代码设置工具提示的绑定。我似乎无法弄清楚如何使其正常工作。我想通过从构造函数中调用函数“SetToolTip”来将绑定设置为名为“ToolTipText”的属性。

这是我到目前为止所做的:

Public MyBaseClass
Inherits UserControl
Private _ToolTipText As String = "This is the default text!!"
Public Property ToolTipText As String
    Get
        Return _ToolTipText
    End Get
    Set(value As String)
        _ToolTipText = value

    End Set
End Property

Private Sub SetToolTip()
    Me.ToolTip = New ToolTip With {.MinHeight = 30, .MinWidth = 150, .FontSize = 16, .Foreground = Brushes.White}

    Dim ToolTipBinding As Binding = New Binding
    ToolTipBinding.Source = Me
    ToolTipBinding.Path = New PropertyPath("ToolTipText")
    ToolTipBinding.Mode = BindingMode.OneWay
    ToolTipBinding.UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged

    BindingOperations.SetBinding(Me.ToolTip, ToolTipService.ToolTipProperty, ToolTipBinding)
End Sub

Public Sub New()
    SetToolTip()
End Sub
End Class

然而,当我鼠标悬停时,我只得到一个空的工具提示(没有文字)。我使用snoop(如果其他人熟悉该工具),并且它没有为我的类'tooltip属性列出任何绑定。但奇怪的是,如果我深入研究tooltip属性,我会发现工具提示有自己的tooltip属性,该属性设置为正确的文本。我似乎需要绑定到工具提示的内容而不是它自己的tooltip属性。

1 个答案:

答案 0 :(得分:0)

所以我只想出来了。设置绑定的行应为:

BindingOperations.SetBinding(Me.ToolTip, ContentControl.ContentProperty, ToolTipBinding)

我想起来有点奇怪,但在我设置工具提示的工具提示之前。