2013-06-21 22 views
7

Her denetim için tüm araç ipuçlarına uygulanabilecek bir araç ipucu stili yapabilir miyim?WPF'de Sık Kullanılan Araç İpucu stili

Bunu denedim.

<Style TargetType="{x:Type ToolTip}" > 
     <Setter Property="OverridesDefaultStyle" Value="true" /> 
     <Setter Property="HasDropShadow" Value="True" /> 
     <Setter Property="Foreground" Value="White" /> 
     <Setter Property="FontSize" Value="12" /> 
     <Setter Property="Placement" Value="Bottom" /> 
     <Setter Property="VerticalOffset" Value="0" /> 
     <Setter Property="Padding" Value="8" /> 

     <Setter Property="HorizontalContentAlignment" Value="Center" /> 
     <Setter Property="Template"> 
      <Setter.Value> 
       <ControlTemplate TargetType="{x:Type ToolTip}" > 
        <StackPanel Margin="7,1" > 
         <Border Background="#FFF7F7CC" CornerRadius="1" > 
          <TextBlock Margin="1" Foreground="Black" HorizontalAlignment="Center" VerticalAlignment="Top" Text="{TemplateBinding ToolTip}"/> 
         </Border> 
        </StackPanel> 
       </ControlTemplate> 
      </Setter.Value> 
     </Setter> 
    </Style> 
sınırına ipucunu uygulamak için örneğin Kontrolde ayrı Tooltip etiketi koymak zorunda bu stili, kullanımı için

,

<Border> 
    <Border.ToolTip> 
      <ToolTip ToolTip="This is tooltip text" /> 
    </Border.ToolTip> 
........ 
......... 
</Border> 

ama tooltipstyle belirtilen araç ipucu ile tüm kontrolü için geçerlidir herhangi bir yolu yoktur aynı etikette. örn. Daha fazla ayrıntı gerekiyorsa bana bildirin. Beklentilerinizde teşekkürler.

+1

Evet yapabilirsiniz. Peki sorun nedir? İyi bir şekilde görünüyorsun. – DHN

+0

@DHN, İçeriği (Araç ipucu metni) stil almıyorum, araç ipucu – Hardik

cevap

3

Evet Yaklaşımınız çalışacaktır. Ancak, Kontrol Şablonunda küçük bir değişiklik yapılması gerekmektedir. TextBlock'u ContentPresenter ile değiştirin.

   <ControlTemplate TargetType="{x:Type ToolTip}" > 
        <StackPanel Margin="7,1" > 
         <Border Background="#FFF7F7CC" CornerRadius="1" > 
         <ContentPresenter Margin="1" HorizontalAlignment="Center" VerticalAlignment="Top" /> 
         </Border> 
        </StackPanel> 
       </ControlTemplate> 
+1

içinde boş metin gösteriyor Neden bunu yapmalı? Bir 'TextBlock' da kullanılabilir. – DHN

+1

Evet TextBox/TextBlock kullanılabilir. Ancak Content özelliği ToolTip özelliğini değil, bağlı olmalıdır. – Jawahar

+0

@XAMLLover, Çalıştığı için teşekkürler. Ama ben textplock yerine contentpresenter'ın çalışmasını nasıl sağladığını anlayamadım. Biraz anlayış sağlayabilir misiniz lütfen? – Hardik