从一个RadialGradientBrush继承属性到另一个

时间:2017-02-04 14:12:17

标签: wpf xaml

问题

我正在尝试为应用程序编写样式/主题 这是基于mergedResourceDisctionary 我的目的是从相同类型的现有Base Dynamic资源继承动态资源,在本例中为

STAC_RGrad_Status_Base

在下面的例子中,我有2个其他RadialGradientBrushes,它们共享完全相同的属性,除了GradientStops

我已经在某种程度上继承了,(参见STAC_RGrad_Status_Green)然而,有一种比这更简单的方法,我可以将所有4个Binding语句替换为" One Liner"声明被解释为

属性=" {Binding Propterties,Source = {DynamicResource STAC_RGrad_Status_Base}}除了GradientStops"

如果我需要在

中定义的资源树中添加其他属性,那么将来可以进行验证

所以不要像我在示例中那样为每个属性创建绑定 它被一个"一个衬里取代"

现有代码

  <RadialGradientBrush x:Key="STAC_RGrad_Status_Base"
        GradientOrigin="0.5,0.5" 
        Center="0.5,0.5"
        RadiusX="0.5" 
        RadiusY="0.5"
        GradientStops="{DynamicResource STAC_Grad_Status_Disabled}" 
     />



  <RadialGradientBrush x:Key="STAC_RGrad_Status_Red"
        GradientOrigin="0.5,0.5" 
        Center="0.5,0.5"
        RadiusX="0.5" 
        RadiusY="0.5"
        GradientStops="{DynamicResource STAC_Grad_Status_Red}" 
     />

  <RadialGradientBrush x:Key="STAC_RGrad_Status_Green"
        GradientOrigin="{Binding GradientOrigin, Source={DynamicResource STAC_RGrad_Status_Base}}"
        Center="{Binding Center, Source={DynamicResource STAC_RGrad_Status_Base}}"
        RadiusX="{Binding RadiusX, Source={DynamicResource STAC_RGrad_Status_Base}}"
        RadiusY="{Binding RadiusY, Source={DynamicResource STAC_RGrad_Status_Base}}"
        GradientStops="{DynamicResource STAC_Grad_Status_Green}" 
 />

0 个答案:

没有答案