读书人

XAML自定义属性显示有关问题

发布时间: 2012-04-25 19:32:32 作者: rapoo

XAML自定义属性显示问题
自定义控件的Style,希望通过用户自定义属性UserDefineProperty值的不同改变控件外观。
具体就是,如果UserDefineProperty取1,则画一个圆,如果取2则画一条线。UserDefinePropertyToTemplateConv
转换器负责吧1转换成字符串"Status1",把2转换成字符串"Status2"。
下列xaml文件为何总是报错?
<ControlTemplate x:Key="Status1">
<Grid Height="20" Width="20" IsHitTestVisible="False">
<Ellipse .../>
</Grid>
</ControlTemplate>
<ControlTemplate x:Key="Status2">
<Line ... />
</ControlTemplate>

<Style TargetType="{x:Type s:Class1}">
<Setter Property="Template" Value="{Binding Source={StaticResource ResourceKey={Binding RelativeSource={RelativeSource Mode=Self}, Path=UserDefineProperty, Converter=conv:UserDefinePropertyToTemplateConv}}}" >
</Setter>
</Style>


[解决办法]

探讨
引用:

这种问题不用这么做吧,在模板中先画好圆和直线, 用Trigger或视图状态来控制圆和直线的显示;你可以看看Silverlight Toolkit的源码,通常这种问题都是这么处理的

我发现Trigger之支持从Control继承来的属性,我自定义的属性不支持……

读书人网 >CAD教程

热点推荐