2012-07-12 10 views
17

Chcę kształtować moje WPF podpowiedź jak na obrazku poniżej:Jak stylizować etykietę narzędziową WPF jak dymek?

enter image description here

Jak to osiągnąć?

+0

natknąłem się na podobny problem niedawno i wyprodukował dwa posty, że wierzę, może pomóc: http://pmichaels.net/2016/04/01/tooltip-speech-bubbles/ i http: // pmichaels.net/2016/04/08/creating-a-speech-bubble-withround_corners/ –

Odpowiedz

42

użyć tego kodu:

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

to pacz, teraz trzeba grać z nim ... cieszyć!

enter image description here

+0

dziękuję harry. Mam inne pytanie: czy powinienem dodać zespół dla xmlns: ed = "http://schemas.microsoft.com/expression/2010/drawing"? –

+7

Tak, dodaj zestaw Microsoft.Expression.Drawing. – Harry

+0

Awesome! Wspaniała praca, zdecydowanie GŁOSUJ –

0

możesz utworzyć nową etykietę narzędzi control template.

+0

Czy możesz zamieścić działającą próbkę? Byłoby interesujące zobaczyć alternatywne wdrożenie. – Tim

Powiązane problemy