内部の DoubleAnimation オブジェクトを介して子をアニメーション化するカスタム パネル クラスがあります。ただし、アニメーションの Duration 依存関係プロパティをパネルのパブリック プロパティとして公開して、ユーザーがパネルを使用するときに XAML で変更できるようにします。しかし、アニメーション オブジェクトの他の部分は公開したくありません。持続時間だけです。
私に提案され続けている最初のことは、PropertyChanged 通知を使用することですが、それはゲッターではなくセッターに対してのみ機能します。また、XAML は .NET プロパティを完全にバイパスするため、単純に .NET プロパティを作成することもできません。
私の同僚は賢い考えを持っていました... 外部プロパティと内部オブジェクトのプロパティの間で双方向のデータ バインディングを使用します。ただし、データバインディングは別として、これを行うための別の/より良い方法はありますか...それを含むオブジェクトのパブリックインターフェイスを介して内部オブジェクトの依存関係プロパティを公開しますか?
更新しました:
双方向の DataBinding が最適だったようです。(@Jeffに感謝します!)そのために、外側のDPをセットアップする最良の方法であることがわかったので、メタデータ、デフォルト、およびすべてが内側のオブジェクトのDPに完全に一致します。次に、Jeff のバインディング トリックを使用すれば完了です。
public Duration Duration {
get { return (Duration)GetValue(DurationProperty); }
set { SetValue(DurationProperty, value); }
}
public static readonly DependencyProperty DurationProperty = DoubleAnimation.DurationProperty.AddOwner(
typeof(SlideContentPanel));