1

这个问题可能听起来有点令人困惑,但我目前面临的问题是:

<Button x:Class="sandbox.BtnLabel"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
        x:Name="this">
    <Button.ToolTip>
        <TextBlock Background="Yellow" Text="{Binding ElementName=this, Path=LabelText}"/>
    </Button.ToolTip>
    <TextBlock Background="Yellow" Text="{Binding ElementName=this, Path=LabelText}"/>
</Button>

只有第二个绑定有效,它设置了按钮的内容。第一个,我想用来设置按钮工具提示的内容(通过 LabelText 依赖属性)不起作用。

是否可以使第一个绑定工作?谢谢。

4

1 回答 1

4

尝试这个:

<Button x:Class="sandbox.BtnLabel"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        x:Name="this">
  <Button.ToolTip>
    <ToolTip DataContext="{Binding Path=PlacementTarget, RelativeSource={RelativeSource Self}}">
      <TextBlock Background="Yellow"
                 Text="{Binding LabelText}" />
    </ToolTip>
  </Button.ToolTip>
  <TextBlock Background="Yellow"
             Text="{Binding ElementName=this,
                            Path=LabelText}" />
</Button>

我们添加一个ToolTip元素并按DataContext原样分配它PlacementTarget,然后它应该到达TextBlock

于 2013-06-04T18:48:41.020 回答