wpf converter:设置多个属性

时间:2010-06-16 16:03:09

标签: wpf

我习惯使用每个属性返回值的转换器,例如Foreground颜色。

是否可以使用适用于多个属性的转换器?

例如:前景,背景,字体粗细,字体大小

如何创建一个可以设置多个属性的转换器(或少于4个)?

1 个答案:

答案 0 :(得分:0)

不,转换器不是为此而设计的。您可以根据附加行为路径并根据附加的绑定依赖属性(我假设)设置属性吗?

编辑:行为是Blend 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
    }
}