アニメーションを行う場合、Storyboardを使用すると思うのですが、外部リソースを使いたいときにはまってしまったので備忘録として書いておきます。
アニメーションについてはこちらの記事でも紹介しています。
https://lifetime-engineer.com/wpf-prism-screendisplay/
変更前(エラーがでます)
<Resources>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/リソースDLL名;component/Themes/Generic.xaml" />
</ResourceDictionary.MergedDictionaries>
<Storyboard x:Key="Storyboard">
<ObjectAnimationUsingKeyFrames
Storyboard.TargetName="main"
Storyboard.TargetProperty="(Image.Source)"
AutoReverse="False"
Duration="0:0:2.5"
RepeatBehavior="Forever">
<DiscreteObjectKeyFrame Value="{StaticResource sample1}" />
<DiscreteObjectKeyFrame Value="{StaticResource sample2}" />
<DiscreteObjectKeyFrame Value="{StaticResource sample3}" />
<DiscreteObjectKeyFrame Value="{StaticResource sample4}" />
</ObjectAnimationUsingKeyFrames>
</Storyboard>
</Resources>
変更後
<Resources>
<ResourceDictionary> <!--こちらを追加!!-->
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/リソースDLL名;component/Themes/Generic.xaml" />
</ResourceDictionary.MergedDictionaries>
<Storyboard x:Key="Storyboard">
<ObjectAnimationUsingKeyFrames
Storyboard.TargetName="main"
Storyboard.TargetProperty="(Image.Source)"
AutoReverse="False"
Duration="0:0:2.5"
RepeatBehavior="Forever">
<DiscreteObjectKeyFrame Value="{StaticResource sample1}" />
<DiscreteObjectKeyFrame Value="{StaticResource sample2}" />
<DiscreteObjectKeyFrame Value="{StaticResource sample3}" />
<DiscreteObjectKeyFrame Value="{StaticResource sample4}" />
</ObjectAnimationUsingKeyFrames>
</Storyboard>
</ResourceDictionary>
</Resources>
変更前の記述だと、StoryboardとResourceDictionaryが一緒に書けませんでした。
変更後はResourceDictionary内にStoryboardとResourceDictionaryがいます。エラーも出ません。
ResourceDictionaryの要素にResourceDictionary.MergedDictionariesがいるので分かればなんてことはないのですが、わかるまでが長かった。。。