Как получить более толстую тень на моей подсказке? - PullRequest
2 голосов
/ 16 декабря 2011

Я переопределяю мои всплывающие подсказки следующим образом:

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

Было бы неплохочтобы увидеть больше теней.

Мне плохо, что я не публикую весь свой код.Вот это с правкой, основанной на ответе ледяной летучей мыши:

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

1 Ответ

2 голосов
/ 16 декабря 2011

Маржа не ограничена.Чтобы увидеть больше тени, вам нужно применить поле не к самому 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).Если это не изменилось с помощью каких-либо триггеров или другими способами, вы не увидите никакой тени.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...