問題タブ [freezable]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - Freezableから継承せずに関数を緩和しますか?
IEasingFunction
基本的に他のラッパーのカスタムを実装しようとしてIEasingFunction
いますが、アニメーションの最初と最後に一時停止が追加されます。EasingFunctionBase
PausingEasingFunction に EasingMode を設定するのは無意味なので、継承したくありません。一時停止は、使用するモードに関係なく同じであり、ラップされたものは独自にモードを指定できます。
これがどのように見えるかです: PausingEasingFunction.cs
問題は、次の xaml を使用してアニメーションで使用しようとしたときです (local:
を含む clr 名前空間を指す xmlns を参照しますPausingEasingFunction
)。
InvalidOperationException がスローされ、Freezable を凍結できないことが通知されます。ただし、PausingEasingFunction.csを継承するFreezable
代わりにDependencyObject
CreateInstanceCore を次のように実装するように変更すると、次のようになります。
例外はスローされなくなりました。調査の結果、CanFreeze = false であっても WPF がまだフリーズしようとしていることがわかりましたが、それが本当に問題なのかどうかはわかりません...
それはWPFのバグですか?私は何か間違ったことをしていますか?または、なぜ Freezable から継承せざるを得ないのですか?