我使用两种文本颜色ColorA和ColorB创建自定义控件。 ColorA连接到控件的Foreground
属性,并将ColorB连线到名为ForegroundAlt
的自定义依赖项属性。这两个属性都是Brush
对象。该控件的XAML获得使用该标记的属性值:XAML:将笔刷转换为颜色?
<SolidColorBrush x:Key="BrushA" Color="{Binding Path=Foreground, RelativeSource={RelativeSource TemplatedParent}}" />
<SolidColorBrush x:Key="BrushB" Color="{Binding Path=ForegroundAlt, RelativeSource={RelativeSource TemplatedParent}}" />
我需要动画两种颜色间的中小企业的文本在控制模板,这就是我遇到的问题。
通常情况下,我会简单地创建一个数据绑定到每个Brush.Color财产,像这样:
To="{Binding Source={StaticResource BrushB}, Path=Color}"
但是,这不会在这里工作。事实证明,you can't use bindings on an animation inside a control template。
作为一种变通方法,我想打造一双Color
资源使用画笔资源附和:
<Color x:Key="ColorA" ??? />
<Color x:Key="ColorB" ??? />
每个Color
资源应该有其相应的画笔的颜色。然后,我可以将这些颜色作为静态资源引用,并避免在动画中绑定数据。
所以,这里是我的问题:
- 我怎么会宣布Color
资源?
- 有没有简单的方法来完成工作?
感谢您的帮助。
我认为它会工作,只要我不在动画中使用数据绑定。但我正在研究一种避免第二对资源的更好方法。如果它有效,我会在这里发布。 – 2011-02-03 16:05:31