【发布时间】:2016-09-26 03:05:24
【问题描述】:
我在 XAML 应用程序中遇到错误。
我收到的错误是
'[Unknown]' 属性未指向路径中的 DependencyObject '(0).(1)[2].(2)'.
我四处搜索,发现需要在 Page.XAML 中的 <Image.RenderTransform> 标记内放入一些内容以进行 RotateTransform,但我不确定是什么,因为我是 XAML 新手并且仍在学习。
App.XAML
<Storyboard x:Key="spin">
<DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[2].(RotateTransform.Angle)"
Storyboard.TargetName="{Binding}"
RepeatBehavior="Forever">
<EasingDoubleKeyFrame KeyTime="0:0:1"
Value="360"/>
</DoubleAnimationUsingKeyFrames>
</Storyboard>
Page.XAML
<Page.Triggers>
<EventTrigger RoutedEvent="FrameworkElement.Loaded">
<BeginStoryboard Storyboard="{DynamicResource spin}"/>
</EventTrigger>
</Page.Triggers>
<Image x:Name="image1"
Margin="0, 0, 5, 0"
Source="{StaticResource inProcessImage}"
Width="18"
RenderTransformOrigin="0.5,0.5">
<Image.RenderTransform>
<TransformGroup>
<ScaleTransform/>
<SkewTransform/>
<RotateTransform/>
<TranslateTransform/>
</TransformGroup>
</Image.RenderTransform>
</Image>
<Image x:Name="image2"
Margin="0, 0, 5, 0"
Source="{StaticResource inProcessImage}"
Width="18"
RenderTransformOrigin="0.5,0.5">
<Image.RenderTransform>
<TransformGroup>
<ScaleTransform/>
<SkewTransform/>
<RotateTransform/>
<TranslateTransform/>
</TransformGroup>
</Image.RenderTransform>
</Image>
代码背后
startAni("spin", image1.Name);
startAni("spin", image2.Name);
void startAni(string storyboardName, string objectName)
{
Storyboard sb = FindResource(storyboardName) as Storyboard;
foreach (var child in sb.Children)
Storyboard.SetTargetName(child, objectName);
sb.Begin(this); // do not forget the this keyword
}
【问题讨论】:
-
Storyboard.TargetProperty + TargetName 在这里很奇怪。你从哪里得到的?
-
@jHilscher
TargerProperty由混合生成。使用TargetName绑定名称,因为我将在不同的图像上使用它。谢谢
标签: c# wpf xaml storyboard