問題タブ [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.

0 投票する
0 に答える
53 参照

c# - Freezableから継承せずに関数を緩和しますか?

IEasingFunction基本的に他のラッパーのカスタムを実装しようとしてIEasingFunctionいますが、アニメーションの最初と最後に一時停止が追加されます。EasingFunctionBasePausingEasingFunction に EasingMode を設定するのは無意味なので、継承したくありません。一時停止は、使用するモードに関係なく同じであり、ラップされたものは独自にモードを指定できます。

これがどのように見えるかです: PausingEasingFunction.cs

問題は、次の xaml を使用してアニメーションで使用しようとしたときです (local:を含む clr 名前空間を指す xmlns を参照しますPausingEasingFunction)。

InvalidOperationException がスローされ、Freezable を凍結できないことが通知されます。ただし、PausingEasingFunction.csを継承するFreezable代わりにDependencyObjectCreateInstanceCore を次のように実装するように変更すると、次のようになります。

例外はスローされなくなりました。調査の結果、CanFreeze = false であっても WPF がまだフリーズしようとしていることがわかりましたが、それが本当に問題なのかどうかはわかりません...

それはWPFのバグですか?私は何か間違ったことをしていますか?または、なぜ Freezable から継承せざるを得ないのですか?