質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
WPF

Windows Presentation Foundation (WPF) は、魅力的な外観のユーザー エクスペリエンスを持つ Windows クライアント アプリケーションを作成するための次世代プレゼンテーション システムです

Q&A

解決済

1回答

5830閲覧

WPFのアニメーションについて

defnishbash

総合スコア22

WPF

Windows Presentation Foundation (WPF) は、魅力的な外観のユーザー エクスペリエンスを持つ Windows クライアント アプリケーションを作成するための次世代プレゼンテーション システムです

1グッド

1クリップ

投稿2015/12/16 07:38

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のこのコードにおけるアニメーションの指定の何がおかしいのか教えてください。

Tak1wa👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

こんにちは。

以下のように直してみてください。

XML

1<ObjectAnimationUsingKeyFrames Storyboard.TargetName="test" Storyboard.TargetProperty="(UIElement.Visibility)"> 2 <DiscreteObjectKeyFrame KeyTime="0" Value="{x:Static Visibility.Visible}"/> 3</ObjectAnimationUsingKeyFrames>

投稿2015/12/16 08:00

daichan

総合スコア225

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

daichan

2015/12/16 08:35

DiscreteObjectKeyFrameクラスのValueプロパティがobject型だからかと思います。
defnishbash

2015/12/16 08:41

ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問