2011-03-18 45 views
3
<TextBlock Text="Hi I am Parent Tooltip" Grid.Row="2" > 
     <TextBlock.ToolTip> 
      <ToolTip > 
       <!--<TextBlock x:Name="test" Text="{Binding RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type TextBlock},AncestorLevel=2},Path=Name}"> </TextBlock>--> 
       <TextBlock Text="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type TextBlock},AncestorLevel=2},Path=Text}"></TextBlock> 
      </ToolTip> 
     </TextBlock.ToolTip> 
    </TextBlock> 
+1

我有一種感覺,如果我沒有記錯工具提示之外的對象來實現,它是連接FindAncestor不會因爲工作到,所以你可能找不到你的TextBlock。如何命名它? – 2011-03-18 10:17:18

+0

試過也..沒有希望.. – 2011-03-18 10:21:20

回答

4
 <TextBlock Text="Hi I am Parent Tooltip" Grid.Row="2" > 
     <TextBlock.ToolTip> 
      <ToolTip DataContext="{Binding Path=PlacementTarget, RelativeSource={x:Static RelativeSource.Self}}"> 
       <TextBlock TextWrapping="Wrap" Text="{Binding Text}"/> <!-- tooltip content --> 
      </ToolTip> 
     </TextBlock.ToolTip> 
    </TextBlock> 
0

你能說出你的文本框,並使用的ElementName

,你也可以讓一個DataContext設置爲一個對象帶有這個文本的屬性(MVVM是你的朋友?)

1
<TextBlock x:Name="textBlock" Text="Hi I am Parent Tooltip" Grid.Row="2" > 
     <TextBlock.ToolTip> 
      <ToolTip > 
       <TextBlock x:Name="toolTip" Text="{Binding Path=Text, ElementName=textBlock}"></TextBlock> 
      </ToolTip> 
     </TextBlock.ToolTip> 
    </TextBlock> 
綁定

編輯:在上面的工具提示TextBlock中添加了一個名稱。然後將下面的代碼添加到您的代碼中(構造函數中):

NameScope.SetNameScope(toolTip, NameScope.GetNameScope(this)); 

這應該有效。

+0

沒有..它不工作... – 2011-03-19 03:56:52

0

這可能是新的.NET 4.0,但是這對我的作品:

<TextBox Text="{Binding SelectedHour}" ToolTip="{Binding Path=Text, RelativeSource={x:Static RelativeSource.Self}}" /> 
相關問題