2011-12-16 23 views
2

私は次のように私のツールチップをオーバーライドしています:ツールチップのドロップシャドウを太くするにはどうすればよいですか?

<Style x:Key="{x:Type ToolTip}" TargetType="ToolTip"> 
    <Setter Property="OverridesDefaultStyle" Value="True"/> 
    <Setter Property="Template"> 
     <Setter.Value> 
      <ControlTemplate TargetType="ToolTip"> 
       <Grid> 
        <Grid.Background> 
         <SolidColorBrush /> 
        </Grid.Background> 
        <mwt:SystemDropShadowChrome Color="#00FFFFFF" CornerRadius="5" Name="Shdw" SnapsToDevicePixels="True"> 
         <Border CornerRadius="5"> 
          <StackPanel> 
           <ContentPresenter TextBlock.Foreground="Black" /> 
          </StackPanel> 
         </Border> 
        </mwt:SystemDropShadowChrome> 
       </Grid> 

マージンのための厚さ値は5の最大値を持っているようですか?

   <ControlTemplate.Triggers> 
        <Trigger Property="ToolTipService.HasDropShadow"> 
         <Setter Property="FrameworkElement.Margin" TargetName="Shdw"> 
          <Setter.Value> 
           <Thickness>0,0,5,5</Thickness> 
          </Setter.Value> 
         </Setter> 
         <Trigger.Value> 
          <sys:Boolean>True</sys:Boolean> 
         </Trigger.Value> 
        </Trigger> 
       </ControlTemplate.Triggers> 
      </ControlTemplate> 
     </Setter.Value> 
    </Setter> 
</Style> 

さらに多くのドロップシャドウを見ることができたらうれしいです。

私のコードをすべて掲載していないと悪いです。ここでは、icebatからの応答に基づいて編集している:

<Style x:Key="{x:Type ToolTip}" TargetType="ToolTip"> 
    <Setter Property="OverridesDefaultStyle" Value="True"/> 
    <Setter Property="Template"> 
     <Setter.Value> 
      <ControlTemplate TargetType="ToolTip"> 
       <Grid> 
        <Grid.Background> 
         <SolidColorBrush /> 
        </Grid.Background> 
        <mwt:SystemDropShadowChrome Color="#71000000" CornerRadius="5" Name="Shdw" SnapsToDevicePixels="True"> 
         <Border CornerRadius="5"> 
          <StackPanel> 
           <ContentPresenter TextOptions.TextRenderingMode="ClearType" TextOptions.TextFormattingMode="Display" TextBlock.FontFamily="Segoe UI" TextBlock.FontStretch="Normal" TextBlock.FontWeight="Normal" TextBlock.Foreground="Black" TextBlock.FontSize="13" Margin="18,8,16,4" HorizontalAlignment="Left" VerticalAlignment="Top" /> 
           <Border HorizontalAlignment="Stretch" BorderThickness="0,1,0,0" BorderBrush="Gray" Margin="10,5,10,5" Grid.Column="0" Grid.Row="0" Grid.ColumnSpan="2"> 
            <TextBlock Margin="8,4,0,0" FontWeight="Bold" Text="{x:Static res:AppStrings.Help_0_Footer}" FontSize="13" Foreground="#E3000000" /> 
           </Border> 
          </StackPanel> 
          <Border.Background> 
           <LinearGradientBrush> 
            <LinearGradientBrush.StartPoint> 
             <Point X=".5" Y="0"/> 
            </LinearGradientBrush.StartPoint> 
            <LinearGradientBrush.EndPoint> 
             <Point X=".5" Y="1"/> 
            </LinearGradientBrush.EndPoint> 
            <LinearGradientBrush.GradientStops> 
             <GradientStop Color="#FFFFA200" Offset="1"/> 
             <GradientStop Color="White" Offset="0.305"/> 
            </LinearGradientBrush.GradientStops> 
           </LinearGradientBrush> 
          </Border.Background> 
         </Border> 
        </mwt:SystemDropShadowChrome> 
       </Grid> 
       <ControlTemplate.Triggers> 
        <Trigger Property="ToolTipService.HasDropShadow" Value="True"> 
         <Setter Property="Margin" TargetName="Shdw" Value="0,0,5,5"/> 
        </Trigger> 
       </ControlTemplate.Triggers> 
      </ControlTemplate> 
     </Setter.Value> 
    </Setter> 
</Style> 

私はまだ証拠が限定されないが、5

+0

問題を解決しましたか? – icebat

+0

いいえ、上記のコードをあなたの提案とともに投稿しましたが、余白はまだ5を超えていません。ヘルプに感謝します。 –

答えて

2

より大きなマージンのための厚いドロップシャドウを得ることはありません。影の詳細を参照するには、ないSystemDropShadowChromeデコレータ自体ではなく、そのコンテンツにマージンを適用する必要があります。

<mwt:SystemDropShadowChrome Name="Shdw" CornerRadius="5"> 
    <Border Name="shdwContent" CornerRadius="5"> 
     <StackPanel> 
      <ContentPresenter TextBlock.Foreground="Black" /> 
     </StackPanel> 
    </Border> 
</mwt:SystemDropShadowChrome> 
... 
<ControlTemplate.Triggers> 
    <Trigger Property="ToolTipService.HasDropShadow" Value="True"> 
     <Setter Property="Margin" TargetName="ShdwContent" Value="0,0,5,5"> 
    </Trigger> 
</ControlTemplate.Triggers> 

そして、サイドノートとして、今あなたが影の色(#00FFFFFF)のような透明色を使用しています。もしそれがいくつかのトリガーや他の手段で変更されていないなら、あなたはどんな影も見ません。

関連する問題