日期:2014-05-16  浏览次数:20934 次

求解决,类型转换对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 作为基类,二者不可得兼。
求高手赐教。

------解决方案--------------------
引用:
类型不对加ValueConverter


是这样的。

其实在Wpf/Silverlight中,你可以是当地“少用继承”,而直截了当地使用组合部件。

例如你的 DataContext 是某个业务类型,例如叫做“FilmInfo”,你希望根据其“Classification”属性而动态改变Brush颜色,那么就把你的UI的Brush属性直接跟Classification属性绑定就行了,只要绑定同时提供一个Converter属性就行了。用不着定义一个MyBrush对象。