什么是DynamicResource和基于元素的画笔的Silverlight 3替代品?

时间:2009-07-12 19:31:06

标签: silverlight xaml silverlight-3.0 resources imaging

我需要一个可以更改的自定义UI元素,例如应用程序中使用的颜色和文本,但作为资源 - 在WPF中,我可以使用DynamicResource来分配画笔,字符串等,但是我需要实现这在Silverlight 3中 - 我怎么能这样做,因为StaticResource不会这样做,而作为另一个问题,我有一个资源,由其他UI元素,如矩形。请参阅我现有的ResourceDictionary中的示例:

    <VisualBrush x:Key="Device" Stretch="Uniform">
    <VisualBrush.Visual>
        <Canvas Width="20" Height="36">
            <Rectangle Height="36" Width="20" Fill="{DynamicResource ZuneColour}" Canvas.Left="0" Canvas.Top="0" RadiusX="1" RadiusY="1">
                <Rectangle.BitmapEffect>
                    <OuterGlowBitmapEffect GlowColor="Black" GlowSize="2" />
                </Rectangle.BitmapEffect>
            </Rectangle>
            <Rectangle Fill="{DynamicResource ZuneScreen}" Canvas.Left="1" Canvas.Top="1" Height="24" Stroke="#191616" Width="18"/>
            <Rectangle Canvas.Left="5.5" Canvas.Top="25" Height="9" Width="9" RadiusX="3" RadiusY="3" Fill="{DynamicResource ZunePad}" Stroke="{DynamicResource ZunePadOuter}"/>
        </Canvas>
    </VisualBrush.Visual>
</VisualBrush>

我也遇到了复制OuterGlowEffect的问题,但至少可以使用已编译的DirectX效果来完成,因此可以在需要时将其保留。


我认为数据绑定将是动态内容的一个很好的解决方案,因为可以创建一个类 存储我需要的可视数据,这可以是一个单向绑定来更新UI - 希望这可能对有相同问题的其他人有用。
仍需要将VisualBrush功能替换为适用于给定示例的Silverlight中的功能。

0 个答案:

没有答案