2012-07-12 21 views
17

Tôi muốn hình tooltip WPF của tôi như hình dưới đây:Cách tạo kiểu công cụ WPF như bong bóng thoại?

enter image description here

Làm thế nào để đạt được điều này?

+0

tôi tình cờ gặp một vấn đề tương tự gần đây và tạo ra hai bài viết mà tôi tin rằng có thể giúp: http://pmichaels.net/2016/04/01/tooltip-speech-bubbles/ và http: // pmichaels.net/2016/04/08/creating-a-speech-bubble-with-rounded-corners/ –

Trả lời

42

Sử dụng Bộ luật này:

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

đây là sự khởi đầu, bây giờ bạn có để chơi với nó ... tận hưởng!

enter image description here

+0

cảm ơn bạn harry. tôi có một câu hỏi: tôi nên thêm một hội đồng cho xmlns: ed = "http://schemas.microsoft.com/expression/2010/drawing"? –

+7

Có, thêm Microsoft.Expression.Drawing assembly. – Harry

+0

Tuyệt vời! Làm việc rực rỡ, chắc chắn là một VOTE UP –

0

bạn có thể tạo chú giải công cụ mới control template.

+0

Bạn có thể đăng một mẫu đang hoạt động không? Sẽ rất thú vị để xem triển khai thay thế. – Tim