开发者

Convert XAML attributes to Style

开发者 https://www.devze.com 2023-04-10 12:07 出处:网络
I have the following Rectangle: <Rectangle x:Name=\"RefractionLayer\" Width=\"200\" Margin=\"-10,0,-80,0\" Opacity=\".5\" >

I have the following Rectangle:

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

Which I am trying to convert to a Style so I can reuse it. Here is what I have so far:

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

I cant seem to figure out how to get the Fill converted.

Ben


You can use the Setter.Value element as such:

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

The rest of the style properties is as you already implemented.

0

精彩评论

暂无评论...
验证码 换一张
取 消