2010-06-16 83 views
1

我习惯于使用每个属性返回一个值的转换器,例如前景色。wpf转换器:设置多个属性

是否有可能有一个转换器与多个属性一起工作?

如:前景,背景,字体重量,字体大小

我怎样才能创建一个转换器(或小于4),可以设置多个属性?

回答

0

不,转换器不是为此设计的。你可能会沿着附加的行为路由并根据绑定的依赖属性(我假设)来设置属性?

编辑:行为是混合SDK的一部分,你想要什么的基本结构是:

public class MyBehavior : Behavior<TextBlock> 
{ 
    //// <-- Dependency property here 

    protected override void OnAttached() 
    { 
     base.OnAttached(); 

     this.AssociatedObject.Foreground = CalculateForeground(); 
     this.AssociatedObject.Background = CalculateBackground(); 
     // etc.. 
    } 

    private Brush CalculateForeground() 
    { 
     // Do some calculations based on the dependency property 
    } 

    private Brush CalculateBackground() 
    { 
     // Do some calculations based on the dependency property 
    } 

    protected override void OnDetaching() 
    { 
     base.OnDetaching(); 

     // You might want to reset to default here, or just do nothing 
    } 
} 
+0

附加的行为路线? ..也许你可以详细说明:) – 2010-06-16 17:08:18