触发嵌套元素

时间:2013-03-05 19:33:44

标签: c# wpf triggers label tooltip

<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。如果Trigger文本为空或为空,如何创建ToolTip以阻止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>

但是我仍然需要进入最深的堆栈才能获得正确的文本更改目标。您可以帮忙添加更多步骤来完成这项工作吗?

1 个答案:

答案 0 :(得分:0)

您可以StyleLabel ToolTip使用AttachedProperty ToolTipService.IsEnabled

停用<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>

示例:

ToolTip

当标签LabelContentNull

时,这会隐藏Empty {{1}}