2013-03-05 75 views
0
<Label.ToolTip> 
    <StackPanel Name="tTipTxt">          
     <StackPanel HorizontalAlignment="Left" VerticalAlignment="Top" Orientation="Horizontal"> 
      <TextBlock TextWrapping="Wrap" FontFamily="Times New Roman" FontSize="15" Foreground="Black" TextAlignment="Left" VerticalAlignment="Top" HorizontalAlignment="Left"> 
       <Run Text="" Name="tTipBody"/> 
      </TextBlock> 
     </StackPanel> 
    </StackPanel> 
</Label.ToolTip> 

這是ToolTip當我的鼠標超過Label時,我想顯示這個值。如果ToolTip文本爲空或空,我如何創建Trigger以阻止ToolTip顯示自身?嵌套元素的觸發器

我已經試過這件XAML:

<Style TargetType="ToolTip"> 
    <Style.Triggers> 
     <Trigger Property="Content" 
       Value="{x:Static sys:String.Empty}"> 
      <Setter Property="Visibility" 
        Value="Collapsed" /> 
     </Trigger> 
     <Trigger Property="Content" 
       Value="{x:Null}"> 
      <Setter Property="Visibility" 
        Value="Collapsed" /> 
     </Trigger> 
    </Style.Triggers> 
</Style> 

但我仍然需要進入最深的堆棧,以獲得正確的目標文本變化。你能幫助添加一些更多的步驟爲我完成這件事嗎?

+3

您需要爲'ToolTip'使用'ControlTemplate',然後你可以使用'SourceName's和你的'Setter'''使用'TargetName'設置你的'Triggers'。 – 2013-03-05 19:37:24

+1

或者您可以使用'DataTrigger'並使用'ElementName'綁定綁定到目標 – 2013-03-05 19:44:05

回答

0

,您可以撥打StyleLabel,使用AttachedPropertyToolTipService.IsEnabled

例禁用ToolTip

<Style TargetType="Label"> 
    <Setter Property="ToolTipService.IsEnabled" Value="True" /> 
    <Style.Triggers> 
     <Trigger Property="Content" Value=""> 
      <Setter Property="ToolTipService.IsEnabled" Value="False" /> 
     </Trigger> 
     <Trigger Property="Content" Value="{x:Null}"> 
      <Setter Property="ToolTipService.IsEnabled" Value="False" /> 
     </Trigger> 
    </Style.Triggers> 
</Style> 

這將隱藏在LabelToolTip當標籤ContentNullEmpty