求解决,类型转换对XAML没有效果
class MyBrush : DependencyObject
{
private Brush realBrush;
...
public static implicit operator Brush(MyBrush mb)
{
return mb.realBrush;
}
...
}
...
<TabPanel Grid.Row="3">
<TabPanel.Background>
<local:MyBrush .../>
</TabPanel.Background>
</TabPanel>
...
问题如上,转换对XMAL不起效,于是我就解决不了了。
起因是DependencyObject、Brush 作为基类,二者不可得兼。
求高手赐教。
------解决方案--------------------
是这样的。
其实在Wpf/Silverlight中,你可以是当地“少用继承”,而直截了当地使用组合部件。
例如你的 DataContext 是某个业务类型,例如叫做“FilmInfo”,你希望根据其“Classification”属性而动态改变Brush颜色,那么就把你的UI的Brush属性直接跟Classification属性绑定就行了,只要绑定同时提供一个Converter属性就行了。用不着定义一个MyBrush对象。