变换后应用样式

时间:2013-10-10 12:35:07

标签: wpf

我为添加投影的标签创建了一种样式:

<Style TargetType="Label" x:Key="BigLabel">
    <Setter Property="FontSize" Value="35" />
    <!-- some more... -->
    <Setter Property="Effect">
        <Setter.Value>
            <DropShadowEffect BlurRadius="0" Opacity="0.9" ShadowDepth="5" />
        </Setter.Value>
    </Setter>
</Style>

我想要使用该样式的标签之一是旋转的。现在,当我以这种方式应用这种风格时:

<Label Content="Awesome" Style="{StaticResource BigLabel}" >
    <Label.LayoutTransform>
        <RotateTransform Angle="-90" />
    </Label.LayoutTransform>
</Label>

然后结果是投影仍然从标签的透视图(右下角)观察到相同的方向,但是从用户的角度(右上角)观察到不同的方向。现在因为有多个标签,有些是旋转的而有些则没有,我希望所有阴影都朝着相同的方向从用户的角度看,右下角。

这意味着我必须在旋转的标签上设置不同的Direction,或者告诉WPF在旋转后应用带有阴影的样式。现在我想知道:

有没有办法告诉WPF先旋转然后应用样式?

1 个答案:

答案 0 :(得分:1)

试试这个,使用Direction属性:

    <Style TargetType="Label" x:Key="BigLabel">
        <Setter Property="FontSize" Value="35" />
        <!-- some more... -->
        <Setter Property="Effect">
            <Setter.Value>
                <DropShadowEffect BlurRadius="5" Opacity="0.92" ShadowDepth="3" Direction="225" />
            </Setter.Value>
        </Setter>
    </Style>