VisualStateManagerを使用してオブジェクトの外観を変更しようとした時のこと、
ObjectAnimationUsingKeyFramesを用いVisibilityを変更しようとしたのですがエラーを吐いてしまいました
例えば以下のコードを記述したとき
XML
1<Style TargetType="Expander"> 2 <Setter Property="Template"> 3 <Setter.Value> 4 <ControlTemplate TargetType="Expander"> 5 <Border> 6 <TextBlock x:Name="test" Visibility="Visible" Text="Test"/> 7 8 <VisualStateManager.VisualStateGroups> 9 <VisualStateGroup x:Name="ExpansionStates"> 10 <VisualState x:Name="Expanded"/> 11 <VisualState x:Name="Collapsed"> 12 <Storyboard> 13 <ObjectAnimationUsingKeyFrames Storyboard.TargetName="test" Storyboard.TargetProperty="(UIElement.Visibility)"> 14 <DiscreteObjectKeyFrame KeyTime="0" Value="Visible"/> 15 </ObjectAnimationUsingKeyFrames> 16 </Storyboard> 17 </VisualState> 18 </VisualStateGroup> 19 </VisualStateManager.VisualStateGroups> 20 21 </Border> 22 </ControlTemplate> 23 </Setter.Value> 24 </Setter> 25</Style>
このようなエラーが吐かれます
エラー 'Visibility' プロパティに適用されたアニメーションでは、'Visible' の現在値を計算します。この値は、このプロパティに対して有効な値ではありません。
しかしながら
XML
1 <ObjectAnimationUsingKeyFrames Storyboard.TargetName="test" Storyboard.TargetProperty="(UIElement.Visibility)"> 2 <DiscreteObjectKeyFrame KeyTime="0" Value="Visible"/> 3</ObjectAnimationUsingKeyFrames>
を以下のように改変すると問題なく実行されます
XML
1 2<ObjectAnimationUsingKeyFrames Storyboard.TargetName="test" Storyboard.TargetProperty="Text"> 3 <DiscreteObjectKeyFrame KeyTime="0" Value="Changed"/> 4</ObjectAnimationUsingKeyFrames>
VisibilityとTxetの違いを考えてみたらTextBlock内で定義されたDependencyPropertyか、もしくは継承されたDependencyPropertyかの違いがあり、他のクラスにおいても同じようなエラーが確認されました。
継承されたDependencyPropertyのこのコードにおけるアニメーションの指定の何がおかしいのか教えてください。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/12/16 08:15
2015/12/16 08:35
2015/12/16 08:41