如何设置ToolTip宽度完全像父元素一样?

时间:2018-09-22 20:19:28

标签: wpf

如何设置Tootip宽度完全像设置了工具提示的元素一样?

<Button ToolTipService.ShowOnDisabled="True" Content="Save" IsEnabled="False" Width="150">
    <Button.ToolTip>
        <ToolTip Placement="Top" VerticalOffset="-5">
            <TextBlock>Confirm before save.</TextBlock>
        </ToolTip>
    </Button.ToolTip>
</Button>

现在工具提示的宽度与文本'Confirm before save.'的宽度相对应。

2 个答案:

答案 0 :(得分:1)

Tooltip是包含该元素的元素的属性(并且不是您所说的父元素)

一种快速的解决方法是在窗口/页面中将Width属性定义为资源,然后像这样

在工具提示和包含元素的元素中使用它
    <!--Define a width as resource-->
    <Window.Resources>
             <sys:Double x:Key="WidthOf200">200</sys:Double>
     </Window.Resources>
    <Grid>
        <!--Use the same width in the button and its tooltip-->
        <Button Name="button1" ToolTipService.ShowOnDisabled="True" Content="Save" IsEnabled="False" Height="50"  Width="{StaticResource WidthOf200}">
            <Button.ToolTip>
                <!--Use the same width in the button and its tooltip-->

                <ToolTip Placement="Top" VerticalOffset="-5"  Width="{StaticResource WidthOf200}">
                    <TextBlock  >Confirm before save.</TextBlock>
                </ToolTip>
            </Button.ToolTip>
        </Button>
    </Grid>
</Window>

enter image description here

答案 1 :(得分:1)

您可以在工具提示的PlacementTarget属性上进行绑定,如下所示:

    <Button x:Name="SaveButton" ToolTipService.ShowOnDisabled="True" Content="Save" IsEnabled="False" Width="150">
        <Button.ToolTip>
            <ToolTip Placement="Top" VerticalOffset="-5"  Width="{Binding PlacementTarget.Width, RelativeSource={RelativeSource Self}}">
                <TextBlock>Confirm before save.</TextBlock>
            </ToolTip>
        </Button.ToolTip>
    </Button>