wpf - 将 XAML 属性转换为样式

标签 wpf coding-style

我有以下矩形:

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

我似乎不知道如何转换填充。

最佳答案

您可以这样使用 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>

其余的样式属性是您已经实现的。

关于wpf - 将 XAML 属性转换为样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7618106/

相关文章:

c# - 跨线程操作WPF控件报错: cannot

c# - 命令绑定(bind)的多个参数

c# - 如何使用资源构建独立的exe?

c++ - 在引用 (T&) 和常量指针 (T* const) 之间进行选择

java - TreeMap 的先决条件

javascript - 等待多个非嵌套回调

c# - MVVM UI 使用 WPF 控制用户依赖的可见性

c# - 私有(private)方法和属性的 ReSharper C# 命名风格

c++ - 函数返回类型样式

wpf - 检查绑定(bind)属性是否存在