packages/MaterialDesignThemes.2.5.1/src/net45/Transitions/TransitioningContentBase.cs

(开头部分) 6KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

using System;
using System.Collections.ObjectModel;
using System.ComponentModel;
using System.Linq;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Media;
using System.Windows.Media.Animation;

namespace MaterialDesignThemes.Wpf.Transitions
{
    public class TransitioningContentBase : ContentControl, ITransitionEffectSubject
    {
        public const string MatrixTransformPartName = "PART_MatrixTransform";
        public const string RotateTransformPartName = "PART_RotateTransform";
        public const string ScaleTransformPartName = "PART_ScaleTransform";
        public const string SkewTransformPartName = "PART_SkewTransform";
        public const string TranslateTransformPartName = "PART_TranslateTransform";

        private MatrixTransform _matrixTransform;
        private RotateTransform _rotateTransform;
        private ScaleTransform _scaleTransform;
        private SkewTransform _skewTransform;
        private TranslateTransform _translateTransform;

        private bool _isOpeningEffectPending;

        static TransitioningContentBase()
        {
            DefaultStyleKeyProperty.OverrideMetadata(typeof(TransitioningContentBase), new FrameworkPropertyMetadata(typeof(TransitioningContentBase)));
        }

        public override void OnApplyTemplate()
        {
            FrameworkElement nameScopeRoot = GetNameScopeRoot();

            _matrixTransform = GetTemplateChild(MatrixTransformPartName) as MatrixTransform;
            _rotateTransform = GetTemplateChild(RotateTransformPartName) as RotateTransform;
            _scaleTransform = GetTemplateChild(ScaleTransformPartName) as ScaleTransform;
            _skewTransform = GetTemplateChild(SkewTransformPartName) as SkewTransform;
            _translateTransform = GetTemplateChild(TranslateTransformPartName) as TranslateTransform;

            UnregisterNames(MatrixTransformPartName, RotateTransformPartName, ScaleTransformPartName, SkewTransformPartName, TranslateTransformPartName);
            if (_matrixTransform != null)
                nameScopeRoot.RegisterName(MatrixTransformPartName, _matrixTransform);
            if (_rotateTransform != null)
                nameScopeRoot.RegisterName(RotateTransformPartName, _rotateTransform);
            if (_scaleTransform != null)
                nameScopeRoot.RegisterName(ScaleTransformPartName, _scaleTransform);
            if (_skewTransform != null)
                nameScopeRoot.RegisterName(SkewTransformPartName, _skewTransform);
            if (_translateTransform != null)
                nameScopeRoot.RegisterName(TranslateTransformPartName, _translateTransform);

            base.OnApplyTemplate();

            RunOpeningEffects();

            void UnregisterNames(params string[] names)
            {
后面还有 87 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明

AI 解读 AI

登录后可用,每次 10 算力,解读结果公开显示在下面。

还没有人解读过这个文件。