WPFで使用するクラスを作成し、そのクラスの依存関係プロパティの値にDoubleAnimationから作成したClockを適用したいと思っていますが、ApplyAnimationClockの実装方法で躓きました。
ApplyAnimationClockの実装方法をご存知の方は教えてください。
WPFではアニメーションはstoryboardを使うものが多く、また、自身の検索能力の低さゆえかなかなか必要な情報にたどり着けません。1か月以上思いついたことを試したり、検索方法を変えたりしていますが、解決できていないです。
どなたかヒントだけでも教えていただけるとありがたいです。
今、使用している環境は
.NET Framework 4.8
です。
> IAnimatableのApplyAnimationClockの実装法
phenotypeさんが「IAnimatableインターフェイスを実装したクラスを作っている」という話ではないんですよね?
いやUIElement等の派生クラスかもしれませんが、「ApplyAnimationClockをオーバーライドするような話ではない」が正しいでしょうか^^;
CreateClockでAnimationClockを作って、それを何かのプロパティに適用する(ApplyAnimationClockの使い方の)話ですよね?
[方法: AnimationClock を使用してプロパティをアニメーション化する - WPF .NET Framework | Microsoft Docs](https://docs.microsoft.com/ja-jp/dotnet/desktop/wpf/graphics-multimedia/how-to-animate-a-property-by-using-an-animationclock?view=netframeworkdesktop-4.8
もう少し具体的に
* 何をしようとしているか
* なぜStoryboardではだめなのか
* 何らかの試したxamlやcs
等を追記できませんかね。
IAnimatableインターフェイスを実装したクラスを作っている
という話です。
> IAnimatableインターフェイスを実装したクラスを作っている
[IAnimatable インターフェイス (System.Windows.Media.Animation) | Microsoft Docs](https://docs.microsoft.com/ja-jp/dotnet/api/system.windows.media.animation.ianimatable?redirectedfrom=MSDN&view=netframework-4.8
> この型は、WPF インフラストラクチャをサポートします。コードから直接使用するためのものではありません。 クラスをアニメーション化できるようにするには、UIElement、ContentElement、または Animatable から派生させる必要があります。
通常直接実装することはないんだと思いますが、どういう事情でしょうか?
Reference Sourceで既存実装が見れますが参考になりますか?
[ApplyAnimationClock](https://referencesource.microsoft.com/#PresentationCore/Core/CSharp/System/Windows/Media/Animation/IAnimatable.cs,e0df288b38627c46,references
(左ペインで黄色いApplyAnimationClockの行をクリック)
具体的な話はする気がないと受け取っていいですか?(であるなら撤退します)
> この型は、WPF インフラストラクチャをサポートします。コードから直接使用するためのものではありません。 クラスをアニメーション化できるようにするには、UIElement、ContentElement、または Animatable から派生させる必要があります。
これをきちんと読んでいませんでした。
Animatableから継承すればいいということがわかりました。
ありがとうございました。
回答1件
あなたの回答
tips
プレビュー