我习惯使用每个属性返回值的转换器,例如Foreground颜色。
是否可以使用适用于多个属性的转换器?
例如:前景,背景,字体粗细,字体大小
如何创建一个可以设置多个属性的转换器(或少于4个)?
答案 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
}
}