Преобразовать атрибуты XAML в стиль - PullRequest
2 голосов
/ 01 октября 2011

У меня есть следующий прямоугольник:

<Rectangle x:Name="RefractionLayer" Width="200" Margin="-10,0,-80,0" Opacity=".5" >
    <Rectangle.Fill>
        <RadialGradientBrush GradientOrigin="0.396,1.152">
            <RadialGradientBrush.RelativeTransform>
                <TransformGroup>
                    <ScaleTransform CenterX="0.6" CenterY="0.4" ScaleX="2" ScaleY="-1"/>
                    <TranslateTransform X="0.02" Y="0.01"/>
                </TransformGroup>
            </RadialGradientBrush.RelativeTransform>
            <GradientStop Offset="1" Color="#00000000"/>
            <GradientStop Offset="0.4" Color="#FFFFFFFF"/>
        </RadialGradientBrush>
    </Rectangle.Fill>
</Rectangle>

Который я пытаюсь преобразовать в стиль, чтобы я мог использовать его повторно. Вот что у меня так далеко:

<Style x:Key="RibbonRefractionRectangle" TargetType="{x:Type Rectangle}">
    <Setter Property="Width" Value="200" />
    <Setter Property="Margin" Value="-10,0,-80,0" />
    <Setter Property="Opacity" Value=".5" />
    <Setter Property="Fill" TargetName="GradientOrigin" Value="0.396,1.152">

Кажется, я не могу понять, как преобразовать Fill.

Ben

1 Ответ

3 голосов
/ 01 октября 2011

Вы можете использовать элемент Setter.Value следующим образом:

<Style x:Key="RibbonRefractionRectangle" TargetType="{x:Type Rectangle}">
    <Setter Property="Width" Value="200" />
    <Setter Property="Margin" Value="-10,0,-80,0" />
    <Setter Property="Opacity" Value=".5" />
    <Setter Property="Fill">
        <Setter.Value>
            <RadialGradientBrush GradientOrigin="0.396,1.152">
                <RadialGradientBrush.RelativeTransform>
                    <TransformGroup>
                        <ScaleTransform CenterX="0.6" CenterY="0.4" ScaleX="2" ScaleY="-1"/>
                        <TranslateTransform X="0.02" Y="0.01"/>
                    </TransformGroup>
                </RadialGradientBrush.RelativeTransform>
                <GradientStop Offset="1" Color="#00000000"/>
                <GradientStop Offset="0.4" Color="#FFFFFFFF"/>
            </RadialGradientBrush>
        </Setter.Value>
    </Setter>
</Style>

Остальные свойства стиля такие же, как вы уже реализовали.

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