1

我有一个如下所示的附加属性:

<Button Styles:ToolTip.Title="The Title"/>

我设置了一个样式来访问它,如下所示:

<TextBlock Text="{Binding Path=(Styles:ToolTip.Title), 
   RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Button}}}"/>

这个绑定的问题是它只能在我的属性位于按钮上时工作。

我正在制作自定义工具提示功能,因此我希望它可以在通常显示工具提示的任何控件上工作。

通常我只会绑定到 TemplatedParent。但那是 ContentPresenter。

如何获得指向具有附加属性的对象的源(而不是在代码中静态引用它)?

这是我的完整风格,以备不时之需。

更新:

这就是它所做的。我将 RegisterAttached 方法的最后一个参数更改为:

new FrameworkPropertyMetadata(default(string), 
                              FrameworkPropertyMetadataOptions.Inherits)
4

1 回答 1

2

您可以尝试使该属性成为继承的依赖属性。然后在父 Button 上设置值会导致子 TextBlock 继承该值

于 2012-11-10T00:06:17.670 回答