Как установить ширину 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.'.

wpf
1
Sonny D 22 Сен 2018 в 23:19

2 ответа

Лучший ответ

Вы можете сделать привязку к свойству 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>
1
Alexandre Asselin 22 Сен 2018 в 21:21

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
Bakri Bitar 22 Сен 2018 в 21:36