【发布时间】:2014-04-25 16:39:12
【问题描述】:
我有一个包含一些文本块和组合框的数据模板列表框。我想在文本块和组合框上应用一些动画,就像我想在双击时更改文本块颜色一样。 因此,我尝试为此创建故事板彩色动画,但出现以下错误
Cannot resolve all property references in the property path 'Color'.
Verify that applicable objects support the properties.
我的故事板动画代码是这样的:
<Storyboard x:Key="onSubmitAnimation">
<ColorAnimation From="Green" To="Red" Duration="0:0:5"
Storyboard.TargetProperty="Color" />
</Storyboard>
我想知道我的方法是否正确,或者有更好的方法来实现 列表框数据模板内的文本块上的彩色动画? 很想得到所有可能的建议。提前致谢。
编辑: 这是我用来启动情节提要的代码;
ListBoxItem item = (ListBoxItem)sender;
Storyboard sb = this.FindResource("onSubmitAnimation") as Storyboard;
Storyboard.SetTarget(sb, item);
sb.Begin();
我想我应该在 setTarget 函数中传递 textblock 的对象,但我不知道如何在 listboxitem 中获取正确的 textblock 对象。
我的列表框被命名为 Entrylistbox,因此我可以通过它访问列表框的任何项目,但不确定如何访问文本块并在其上应用动画。
编辑 2: 我仍然无法在文本块上应用动画,我收到以下错误
The method or operation is not implemented.
这是我的 DataTemplate 代码
<DataTemplate x:Key="DefaultDataTemplate" >
<Canvas Height="62" Width="600" Background="White" >
<Image Source="{Binding Path=IconBinding, Converter={StaticResource imageConverter} }"
Canvas.Left="100" Canvas.Top="10" Height="35"/>
<TextBlock Name="textblock1" Padding="5" Canvas.Left="20" Canvas.Top="10"
Background="LightGray" VerticalAlignment="Center" Height="35"
Foreground="Gray" TextAlignment="Center" FontSize="16"
FontFamily="/TimeSheet;component/Resources/#Open Sans Extrabold"
Width="60" FontWeight="Bold">
<TextBlock.Text>
<MultiBinding StringFormat="{}{0}H">
<Binding Path="HoursBinding" />
</MultiBinding>
</TextBlock.Text>
</Canvas>
</DataTemplate>
我想改变“textblock1”的背景颜色。
【问题讨论】:
-
TexBlock没有Color属性。它有Background和Foreground画笔。你试过Storyboard.TargetProperty="Foreground.Color"或Storyboard.TargetProperty="Background.Color"吗? -
我尝试了这些属性,虽然它没有给出任何错误但它没有改变 textblock 的颜色。
-
你如何开始你的
Storyboard?目标是什么?您需要发布更多相关代码 -
@dkozl 我已经编辑了这个问题。感谢您的帮助