2013-06-21 16 views
7

すべてのコントロールのすべてのツールチップに適用できるツールチップスタイルを作成できますか?WPFの共通ツールチップスタイル

私はこれを試しました。

<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> 
国境にツールチップを適用するために例えば、私がコントロールに別々のツールチップのタグを配置する必要があり、このスタイルを使用するための

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

しかしtooltipstyleが言及したツールチップを持つすべてのコントロールに適用されますどのような方法があります同じタグで例えば、 。

<Border BorderBrush="Transparent" Background="Transparent" Cursor="Help" ToolTip="This is Tooltip" > 
..... 
..... 
</Border> 

詳細が必要な場合はお知らせください。 Anticipationに感謝します。

+1

はいできます。では、問題は何ですか?あなたは良い方法でいるようです。 – DHN

+0

@DHN、コンテンツ(ツールヒントのテキスト)をスタイルで取得できません。ツールチップに空のテキストを表示しています – Hardik

答えて

3

はいアプローチは機能します。しかし、コントロールテンプレートには小さな変更が必要です。 TextBlockをContentPresenterに置き換えます。

   <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

なぜ彼はそれを行うべきですか? 'TextBlock'も使用できます。 – DHN

+1

はいTextBox/TextBlockを使用できます。しかし、Contentプロパティはバインドする必要があり、ToolTipプロパティはバインドしないでください。 – Jawahar

+0

@ XAMLLover、ありがとうございます。しかし、私は、テキストブロックの代わりにcontentpresenterを置くことで、それを動作させる方法を理解できませんでした。いくつかご理解いただけますか? – Hardik