Как стилизовать подсказку WPF как речевой пузырь?

17

Я хочу создать свою всплывающую подсказку WPF, как показано ниже:

Как мне это достичь?

    
задан Mohammad Zare 12.07.2012 в 08:38
источник
  • Недавно я столкнулся с подобной проблемой и создал две должности, которые, я считаю, могут помочь: pmichaels.net/2016/04/01/tooltip-speech-bubbles и pmichaels.net/2016/04/08/... –  pm_2 19.04.2016 в 22:02

2 ответа

42

Используйте этот код:

<Window x:Class="WpfApplication2.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:ed="http://schemas.microsoft.com/expression/2010/drawing"
    x:Name="Window"
    Title="MainWindow"
    Width="640"
    Height="480">

<Window.Resources>

    <Style x:Key="{x:Type ToolTip}" TargetType="ToolTip">
        <Setter Property="OverridesDefaultStyle" Value="true" />
        <Setter Property="HasDropShadow" Value="True" />
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="ToolTip">
                    <ed:Callout Name="Border"
                                Width="{TemplateBinding Width}"
                                Height="{TemplateBinding Height}"
                                MinWidth="100"
                                MinHeight="30"
                                Margin="0,0,0,50"
                                AnchorPoint="0,1.5"
                                Background="{StaticResource LightBrush}"
                                BorderBrush="{StaticResource SolidBorderBrush}"
                                BorderThickness="1"
                                CalloutStyle="RoundedRectangle"
                                Fill="#FFF4F4F5"
                                FontSize="14.667"
                                Stroke="Black">
                        <ContentPresenter Margin="4"
                                          HorizontalAlignment="Left"
                                          VerticalAlignment="Top" />
                    </ed:Callout>

                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>

</Window.Resources>
<Grid>
    <Button ToolTip="Hello" />
</Grid>

Это начало, теперь вам нужно играть с ним ... наслаждайтесь!

    

ответ дан Harry 12.07.2012 в 09:11
  • спасибо, Гарри. У меня есть другой вопрос: следует ли добавить сборку для xmlns: ed="schemas.microsoft.com/expression/2010/drawing&quot ;? –  Mohammad Zare 12.07.2012 в 11:37
  • Да, добавьте сборку Microsoft.Expression.Drawing. –  Harry 12.07.2012 в 11:46
  • Удивительный! Блестящая работа, безусловно, ГОЛОСОВАНИЕ –  Jason Ebersey 02.08.2012 в 21:04
  • Этот подсказку показан ниже элемента управления! Как показать это над кнопкой? –  SepehrM 11.06.2014 в 09:15
  • Чтобы показать это ниже элемента управления, просто добавьте: <Setter Property="Placement" Value="Top" /> –  SepehrM 11.06.2014 в 12:09
0

вы можете создать новую подсказку шаблон управления .     

ответ дан blindmeis 12.07.2012 в 08:44
  • Можете ли вы опубликовать рабочий образец? Было бы интересно увидеть альтернативную реализацию. –  Tim 11.10.2013 в 12:27