0

我有一个类(它将作为我的用户控件的基类),我希望能够通过后面的代码设置工具提示的绑定。我似乎无法弄清楚如何让它正常工作。我想通过从构造函数中调用函数“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 属性,该属性设置为正确的文本。似乎我需要以某种方式绑定到工具提示的内容,而不是它自己的工具提示属性。

4

1 回答 1

0

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

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

我觉得有点奇怪,但在我设置工具提示的工具提示之前。

于 2013-11-02T15:41:50.277 回答