public FrameworkPropertyMetadata(object defaultValue, FrameworkPropertyMetadataOptions options,
                                  PropertyInvalidatedCallback propertyInvalidatedCallback,
                                  GetValueOverride getValueOverride, SetValueOverride setValueOverride)
   : base(defaultValue, propertyInvalidatedCallback, getValueOverride, setValueOverride)
 {
   _options = new BitVector32((int)options);
 }
 public FrameworkPropertyMetadata(
             object defaultValue,
             FrameworkPropertyMetadataOptions flags)
             : base(defaultValue)
 {
     this.LoadFlags(flags);
 }
 public FrameworkPropertyMetadata(
             object defaultValue,
             FrameworkPropertyMetadataOptions flags,
             PropertyChangedCallback propertyChangedCallback)
             : base(defaultValue, propertyChangedCallback)
 {
     this.LoadFlags(flags);
 }
Beispiel #4
0
 protected static DependencyProperty CreateDoubleDP(
     string name,
     double defaultValue,
     FrameworkPropertyMetadataOptions metadataOptions,
     double minValue,
     double maxValue,
     bool attached)
 {
     return CreateDoubleDP(name, defaultValue, metadataOptions, minValue, false, maxValue, false, attached);
 }
 public FrameworkPropertyMetadata(Object defaultValue, FrameworkPropertyMetadataOptions flags)
 {
 }
Beispiel #6
0
        protected static DependencyProperty CreateDoubleDP(
            string name,
            double defaultValue,
            FrameworkPropertyMetadataOptions metadataOptions,
            double minValue,
            bool includeMin,
            double maxValue,
            bool includeMax,
            bool attached)
        {
            if (double.IsNaN(minValue)) {
            Util.RequireArgument(double.IsNaN(maxValue), "maxValue", "If minValue is NaN, then maxValue must be.");

            if (attached) {
              return DependencyProperty.RegisterAttached(
              name,
              typeof(double),
              typeof(AnimatingTilePanel),
              new FrameworkPropertyMetadata(defaultValue, metadataOptions));
            }
            else {
              return DependencyProperty.Register(
              name,
              typeof(double),
              typeof(AnimatingTilePanel),
              new FrameworkPropertyMetadata(defaultValue, metadataOptions));
            }
              }
              else {
            Util.RequireArgument(!double.IsNaN(maxValue), "maxValue");
            Util.RequireArgument(maxValue >= minValue, "maxValue");

            ValidateValueCallback validateValueCallback = delegate(object objValue) {
              double value = (double)objValue;

              if (includeMin) {
            if (value < minValue) {
              return false;
            }
              }
              else {
            if (value <= minValue) {
              return false;
            }
              }
              if (includeMax) {
            if (value > maxValue) {
              return false;
            }
              }
              else {
            if (value >= maxValue) {
              return false;
            }
              }

              return true;
            };

            if (attached) {
              return DependencyProperty.RegisterAttached(
              name,
              typeof(double),
              typeof(AnimatingTilePanel),
              new FrameworkPropertyMetadata(defaultValue, metadataOptions), validateValueCallback);
            }
            else {
              return DependencyProperty.Register(
              name,
              typeof(double),
              typeof(AnimatingTilePanel),
              new FrameworkPropertyMetadata(defaultValue, metadataOptions), validateValueCallback);
            }
              }
        }
		public FrameworkPropertyMetadata (
			object defaultValue, PropertyChangedCallback callback, FrameworkPropertyMetadataOptions options, UpdateSourceTrigger defaultUpdateSourceTrigger ) : this (defaultValue, callback, options) {
			this.DefaultUpdateSourceTrigger = defaultUpdateSourceTrigger;
        }
 public FrameworkPropertyMetadata(Object defaultValue, FrameworkPropertyMetadataOptions flags, PropertyChangedCallback propertyChangedCallback, CoerceValueCallback coerceValueCallback, bool isAnimationProhibited, System.Windows.Data.UpdateSourceTrigger defaultUpdateSourceTrigger)
 {
 }
Beispiel #9
0
 public FrameworkPropertyMetadata(object defaultValue, FrameworkPropertyMetadataOptions flags)
 {
 }
 public FrameworkPropertyMetadata (object defaultValue, FrameworkPropertyMetadataOptions options ) : base(defaultValue) {
     SetOptions(options);
 }
Beispiel #11
0
 /// <summary>
 /// Determines if the specified options have the <see cref="FrameworkPropertyMetadataOptions.Inherits"/> set.
 /// </summary>
 /// <param name="options"></param>
 /// <returns></returns>
 public static bool HasInherits(this FrameworkPropertyMetadataOptions options)
 => (options & FrameworkPropertyMetadataOptions.Inherits) != 0;
 private static bool IsFlagSet(FrameworkPropertyMetadataOptions flag, FrameworkPropertyMetadataOptions flags)
 {
     return (flags & flag) != 0;
 }
 private void LoadFlags(FrameworkPropertyMetadataOptions flags)
 {
     this.AffectsArrange = (flags & FrameworkPropertyMetadataOptions.AffectsArrange) != 0;
     this.AffectsMeasure = (flags & FrameworkPropertyMetadataOptions.AffectsMeasure) != 0;
     this.AffectsParentArrange = (flags & FrameworkPropertyMetadataOptions.AffectsParentArrange) != 0;
     this.AffectsParentMeasure = (flags & FrameworkPropertyMetadataOptions.AffectsParentMeasure) != 0;
     this.AffectsRender = (flags & FrameworkPropertyMetadataOptions.AffectsRender) != 0;
     this.BindsTwoWayByDefault = (flags & FrameworkPropertyMetadataOptions.BindsTwoWayByDefault) != 0;
     this.Inherits = (flags & FrameworkPropertyMetadataOptions.Inherits) != 0;
     this.IsNotDataBindable = (flags & FrameworkPropertyMetadataOptions.NotDataBindable) != 0;
     this.Journal = (flags & FrameworkPropertyMetadataOptions.Journal) != 0;
     this.OverridesInheritanceBehavior = (flags & FrameworkPropertyMetadataOptions.OverridesInheritanceBehavior) != 0;
     this.SubPropertiesDoNotAffectRender = (flags & FrameworkPropertyMetadataOptions.SubPropertiesDoNotAffectRender) != 0;
 }
Beispiel #14
0
 public FrameworkPropertyMetadata(object defaultValue, FrameworkPropertyMetadataOptions flags, PropertyChangedCallback propertyChangedCallback)
 {
 }
 public FrameworkPropertyMetadata(
             object defaultValue,
             FrameworkPropertyMetadataOptions flags,
             PropertyChangedCallback propertyChangedCallback,
             CoerceValueCallback coerceValueCallback,
             bool isAnimationProhibited,
             UpdateSourceTrigger defaultUpdateSourceTrigger)
             : base(defaultValue, propertyChangedCallback, coerceValueCallback, isAnimationProhibited)
 {
     this.DefaultUpdateSourceTrigger = defaultUpdateSourceTrigger;
     this.LoadFlags(flags);
 }
Beispiel #16
0
 public static DependencyProperty RegisterWithOptions <TProp>(string propertyName, FrameworkPropertyMetadataOptions options,
                                                              TProp defaultValue = default(TProp), PropertyChangedCallback propertyChangedCallback = null)
 {
     return(DependencyProperty.Register(propertyName, typeof(TProp), GetOwnerType(), new FrameworkPropertyMetadata(defaultValue, options, propertyChangedCallback)));
 }
Beispiel #17
0
        protected static DependencyProperty CreateDoubleDP(
            string name,
            double defaultValue,
            FrameworkPropertyMetadataOptions metadataOptions,
            double minValue,
            bool includeMin,
            double maxValue,
            bool includeMax,
            bool attached)
        {
            Contract.Requires(!double.IsNaN(minValue));
            Contract.Requires(!double.IsNaN(maxValue));
            Contract.Requires(maxValue >= minValue);

            ValidateValueCallback validateValueCallback = delegate(object objValue)
            {
                double value = (double)objValue;

                if (includeMin)
                {
                    if (value < minValue)
                    {
                        return(false);
                    }
                }
                else
                {
                    if (value <= minValue)
                    {
                        return(false);
                    }
                }
                if (includeMax)
                {
                    if (value > maxValue)
                    {
                        return(false);
                    }
                }
                else
                {
                    if (value >= maxValue)
                    {
                        return(false);
                    }
                }

                return(true);
            };

            if (attached)
            {
                return(DependencyProperty.RegisterAttached(
                           name,
                           typeof(double),
                           typeof(AnimatingTilePanel),
                           new FrameworkPropertyMetadata(defaultValue, metadataOptions), validateValueCallback));
            }
            else
            {
                return(DependencyProperty.Register(
                           name,
                           typeof(double),
                           typeof(AnimatingTilePanel),
                           new FrameworkPropertyMetadata(defaultValue, metadataOptions), validateValueCallback));
            }
        }
Beispiel #18
0
        protected static DependencyProperty CreateDoubleDP(
            string name,
            double defaultValue,
            FrameworkPropertyMetadataOptions metadataOptions,
            double minValue,
            bool includeMin,
            double maxValue,
            bool includeMax,
            bool attached)
        {
            Contract.Requires(!double.IsNaN(minValue));
            Contract.Requires(!double.IsNaN(maxValue));
            Contract.Requires(maxValue >= minValue);

            ValidateValueCallback validateValueCallback = delegate(object objValue)
                {
                    var value = (double)objValue;

                    if (includeMin)
                    {
                        if (value < minValue)
                        {
                            return false;
                        }
                    }
                    else
                    {
                        if (value <= minValue)
                        {
                            return false;
                        }
                    }
                    if (includeMax)
                    {
                        if (value > maxValue)
                        {
                            return false;
                        }
                    }
                    else
                    {
                        if (value >= maxValue)
                        {
                            return false;
                        }
                    }

                    return true;
                };

            if (attached)
            {
                return DependencyProperty.RegisterAttached(
                    name,
                    typeof(double),
                    typeof(AnimatingPanel),
                    new FrameworkPropertyMetadata(defaultValue, metadataOptions), validateValueCallback);
            }
            else
            {
                return DependencyProperty.Register(
                    name,
                    typeof(double),
                    typeof(AnimatingPanel),
                    new FrameworkPropertyMetadata(defaultValue, metadataOptions), validateValueCallback);
            }
        }
Beispiel #19
0
 /// <summary>
 /// Determines if the specified options have the <see cref="FrameworkPropertyMetadataOptions.ValueDoesNotInheritDataContext"/> set.
 /// </summary>
 /// <param name="options"></param>
 /// <returns></returns>
 public static bool HasValueDoesNotInheritDataContext(this FrameworkPropertyMetadataOptions options)
 => (options & FrameworkPropertyMetadataOptions.ValueDoesNotInheritDataContext) != 0;
 public FrameworkPropertyMetadata(object defaultValue,
                                  FrameworkPropertyMetadataOptions flags,
                                  PropertyChangedCallback propertyChangedCallback,
                                  CoerceValueCallback coerceValueCallback,
                                  bool isAnimationProhibited) :
     base(defaultValue, propertyChangedCallback, coerceValueCallback, isAnimationProhibited)
 {
     TranslateFlags(flags);
 }
Beispiel #21
0
 /// <summary>
 /// Determines if the specified options have <see cref="FrameworkPropertyMetadataOptions.AffectsMeasure"/> set.
 /// </summary>
 public static bool HasAffectsMeasure(this FrameworkPropertyMetadataOptions options)
 => (options & FrameworkPropertyMetadataOptions.AffectsMeasure) != 0;
 /// <summary>
 /// Registers a Dependeny Property for the application
 /// </summary>
 /// <typeparam name="T">The datatype of the property</typeparam>
 /// <param name="Property">The wrapper property that reads and writes the dependency property</param>
 /// <param name="DependencyProperty">The actual dependency property</param>
 /// <param name="DefaultValue">The default value for the property</param>
 /// <param name="Flags">The flags that describe the property behavior</param>
 /// <param name="PropertyChangedCallback">The method that should be executed when the value of the property has changed</param>
 public DependencyPropertyRegistrator <TOwner> Register <T>(Expression <Func <TOwner, T> > Property, out DependencyProperty DependencyProperty, T DefaultValue, FrameworkPropertyMetadataOptions Flags, Action <TOwner, T, T> PropertyChangedCallback)
 {
     DependencyProperty = DependencyProperty.Register((Property.Body as MemberExpression)?.Member.Name ?? Property.ToString(), typeof(T), typeof(TOwner), new FrameworkPropertyMetadata(DefaultValue, Flags, ActionToCallback(PropertyChangedCallback)));
     return(this);
 }
 public FrameworkPropertyMetadata(object defaultValue, FrameworkPropertyMetadataOptions options) : base(defaultValue)
 {
   _options = new BitVector32((int)options);
 }
Beispiel #24
0
 /// <summary>
 /// Determines if the conversion of a set value to the type of a <see cref="DependencyProperty"/> should be performed.
 /// </summary>
 public static bool HasAutoConvert(this FrameworkPropertyMetadataOptions options)
 => (options & FrameworkPropertyMetadataOptions.AutoConvert) != 0;
Beispiel #25
0
        /// <summary>
        /// Gets the dependencies properties for the specified type with specific Framework metadata options
        /// </summary>
        /// <param name="type">A dependency object</param>
        /// <param name="options">A set of flags that must be set</param>
        /// <returns>An array of Dependency Properties.</returns>
        internal static DependencyProperty[] GetFrameworkPropertiesForType(Type type, FrameworkPropertyMetadataOptions options)
        {
            DependencyProperty[] result = null;
            var key = CachedTuple.Create(type, options);

            if (!_getFrameworkPropertiesForType.TryGetValue(key, out result))
            {
                _getFrameworkPropertiesForType.Add(key, result = InternalGetFrameworkPropertiesForType(type, options));
            }

            return(result);
        }
Beispiel #26
0
 /// <summary>
 /// Determines if the specified options have <see cref="FrameworkPropertyMetadataOptions.AffectsRender"/> set.
 /// </summary>
 public static bool HasAffectsRender(this FrameworkPropertyMetadataOptions options)
 => (options & FrameworkPropertyMetadataOptions.AffectsRender) != 0;
Beispiel #27
0
        private static DependencyProperty[] InternalGetFrameworkPropertiesForType(Type type, FrameworkPropertyMetadataOptions options)
        {
            var output = new List <DependencyProperty>();

            foreach (var prop in GetPropertiesForType(type))
            {
                var propertyOptions = (prop.GetMetadata(type) as FrameworkPropertyMetadata)?.Options;

                if (propertyOptions != null && (propertyOptions & options) != 0)
                {
                    output.Add(prop);
                }
            }

            return(output.ToArray());
        }
 void SetOptions (FrameworkPropertyMetadataOptions options) {
     this.AffectsArrange = options.IsFlagSet(FrameworkPropertyMetadataOptions.AffectsArrange);
     this.AffectsMeasure = options.IsFlagSet(FrameworkPropertyMetadataOptions.AffectsMeasure);
     this.AffectsParentArrange = options.IsFlagSet(FrameworkPropertyMetadataOptions.AffectsParentArrange);
     this.AffectsParentMeasure = options.IsFlagSet(FrameworkPropertyMetadataOptions.AffectsParentMeasure);
     this.AffectsRender = options.IsFlagSet(FrameworkPropertyMetadataOptions.AffectsRender);
     this.BindsTwoWayByDefault = options.IsFlagSet(FrameworkPropertyMetadataOptions.BindsTwoWayByDefault);
     this.Inherits = options.IsFlagSet(FrameworkPropertyMetadataOptions.Inherits);
     this.Journal = options.IsFlagSet(FrameworkPropertyMetadataOptions.Journal);
     this.IsNotDataBindable = options.IsFlagSet(FrameworkPropertyMetadataOptions.NotDataBindable);
     this.OverridesInheritanceBehavior = options.IsFlagSet(FrameworkPropertyMetadataOptions.OverridesInheritanceBehavior);
     this.SubPropertiesDoNotAffectRender = options.IsFlagSet(FrameworkPropertyMetadataOptions.SubPropertiesDoNotAffectRender);
 }
Beispiel #29
0
 private static DependencyProperty Register <T>(string name, T defaultValue, PropertyChangedCallback callback, FrameworkPropertyMetadataOptions fpmo = FrameworkPropertyMetadataOptions.None)
 {
     if (callback != null)
     {
         return(DependencyProperty.Register(
                    name,
                    typeof(T),
                    typeof(NicoChromiumWindow),
                    new FrameworkPropertyMetadata(defaultValue, FrameworkPropertyMetadataOptions.BindsTwoWayByDefault, callback)
                    ));
     }
     else
     {
         return(DependencyProperty.Register(
                    name,
                    typeof(T),
                    typeof(NicoChromiumWindow),
                    new FrameworkPropertyMetadata(defaultValue, fpmo)
                    ));
     }
 }
 public FrameworkPropertyMetadata (object defaultValue, PropertyChangedCallback callback, FrameworkPropertyMetadataOptions options ) : base(defaultValue, callback) {
     SetOptions(options);
 }
 public FrameworkPropertyMetadata(object defaultValue, FrameworkPropertyMetadataOptions flags) :
     this(defaultValue)
 {
     this.TranslateFlags(flags);
 }
 public FrameworkPropertyMetadata(Object defaultValue, FrameworkPropertyMetadataOptions flags, PropertyChangedCallback propertyChangedCallback, CoerceValueCallback coerceValueCallback, bool isAnimationProhibited)
 {
 }
 public FrameworkPropertyMetadata(object defaultValue, FrameworkPropertyMetadataOptions flags, PropertyChangedCallback propertyChangedCallback) :
     this(defaultValue, flags)
 {
     this.PropertyChangedCallback = propertyChangedCallback;
 }
 public FrameworkPropertyMetadata(Object defaultValue, FrameworkPropertyMetadataOptions flags, PropertyChangedCallback propertyChangedCallback, CoerceValueCallback coerceValueCallback)
 {
 }
 public FrameworkPropertyMetadata(object defaultValue, FrameworkPropertyMetadataOptions flags, PropertyChangedCallback propertyChangedCallback, CoerceValueCallback coerceValueCallback) :
     this(defaultValue, flags, propertyChangedCallback)
 {
     this.CoerceValueCallback = coerceValueCallback;
 }
 private static bool HasSupportedFlags(FrameworkPropertyMetadataOptions flags)
 {
     return PropertyMetadata.IsFlagSet(FrameworkPropertyMetadataOptions.AffectsMeasure, flags)
         || PropertyMetadata.IsFlagSet(FrameworkPropertyMetadataOptions.AffectsArrange, flags)
         || PropertyMetadata.IsFlagSet(FrameworkPropertyMetadataOptions.AffectsParentMeasure, flags)
         || PropertyMetadata.IsFlagSet(FrameworkPropertyMetadataOptions.AffectsParentArrange, flags);
 }
 public FrameworkPropertyMetadata(object defaultValue, FrameworkPropertyMetadataOptions flags, PropertyChangedCallback propertyChangedCallback, CoerceValueCallback coerceValueCallback, bool isAnimationProhibited) :
     this(defaultValue, flags, propertyChangedCallback, coerceValueCallback)
 {
 }
 public FrameworkPropertyMetadata(object defaultValue, FrameworkPropertyMetadataOptions flags, PropertyChangedCallback propertyChangedCallback, CoerceValueCallback coerceValueCallback, bool isAnimationProhibited, UpdateSourceTrigger defaultUpdateSourceTrigger) :
     this(defaultValue, flags, propertyChangedCallback, coerceValueCallback)
 {
     this.DefaultUpdateSourceTrigger = defaultUpdateSourceTrigger;
 }
 public FrameworkPropertyMetadata(
     object defaultValue,
     FrameworkPropertyMetadataOptions flags)
     : base(defaultValue, new PropertyChangedCallback(new PropertyChangeHook(flags, null, null).OnPropertyChanged))
 {
 }
 public FrameworkPropertyMetadata(object defaultValue, FrameworkPropertyMetadataOptions flags) :
     base(defaultValue)
 {
     TranslateFlags(flags);
 }
 private static bool IsFlagSet(FrameworkPropertyMetadataOptions flag, FrameworkPropertyMetadataOptions flags)
 {
     return((flags & flag) != 0);
 }
        public FrameworkPropertyMetadata(object defaultValue,
                                         FrameworkPropertyMetadataOptions flags,
                                         PropertyChangedCallback propertyChangedCallback,
                                         CoerceValueCallback coerceValueCallback,
                                         bool isAnimationProhibited,
                                         UpdateSourceTrigger defaultUpdateSourceTrigger) :
            base(defaultValue, propertyChangedCallback, coerceValueCallback, isAnimationProhibited)
        {
            if (!BindingOperations.IsValidUpdateSourceTrigger(defaultUpdateSourceTrigger))
                throw new InvalidEnumArgumentException("defaultUpdateSourceTrigger", (int) defaultUpdateSourceTrigger, typeof(UpdateSourceTrigger));
            if (defaultUpdateSourceTrigger == UpdateSourceTrigger.Default)
                throw new ArgumentException(SR.Get(SRID.NoDefaultUpdateSourceTrigger), "defaultUpdateSourceTrigger");

            TranslateFlags(flags);
            DefaultUpdateSourceTrigger = defaultUpdateSourceTrigger;
        }
 private bool ReadFlag(FrameworkPropertyMetadataOptions id)
 {
     return((id & _flags) != 0);
 }
        private void TranslateFlags(FrameworkPropertyMetadataOptions flags)
        {
            Initialize();
            
            // Convert flags to state sets. If a flag is set, then,
            // the value is set on the respective property. Otherwise,
            // the state remains unset

            // This means that state is cumulative across base classes
            // on a merge where appropriate

            if (IsFlagSet(FrameworkPropertyMetadataOptions.AffectsMeasure, flags))
            {
                AffectsMeasure = true;
            }

            if (IsFlagSet(FrameworkPropertyMetadataOptions.AffectsArrange, flags))
            {
                AffectsArrange = true;
            }

            if (IsFlagSet(FrameworkPropertyMetadataOptions.AffectsParentMeasure, flags))
            {
                AffectsParentMeasure = true;
            }

            if (IsFlagSet(FrameworkPropertyMetadataOptions.AffectsParentArrange, flags))
            {
                AffectsParentArrange = true;
            }

            if (IsFlagSet(FrameworkPropertyMetadataOptions.AffectsRender, flags))
            {
                AffectsRender = true;
            }

            if (IsFlagSet(FrameworkPropertyMetadataOptions.Inherits, flags))
            {
                IsInherited = true;
            }

            if (IsFlagSet(FrameworkPropertyMetadataOptions.OverridesInheritanceBehavior, flags))
            {
                OverridesInheritanceBehavior = true;
            }

            if (IsFlagSet(FrameworkPropertyMetadataOptions.NotDataBindable, flags))
            {
                IsNotDataBindable = true;
            }

            if (IsFlagSet(FrameworkPropertyMetadataOptions.BindsTwoWayByDefault, flags))
            {
                BindsTwoWayByDefault = true;
            }

            if (IsFlagSet(FrameworkPropertyMetadataOptions.Journal, flags))
            {
                Journal = true;
            }

            if (IsFlagSet(FrameworkPropertyMetadataOptions.SubPropertiesDoNotAffectRender, flags))
            {
                SubPropertiesDoNotAffectRender = true;
            }
        }
 /// <summary>
 /// Registers a Dependeny Property for the application
 /// </summary>
 /// <typeparam name="T">The datatype of the property</typeparam>
 /// <param name="Property">The wrapper property that reads and writes the dependency property</param>
 /// <param name="DependencyProperty">The actual dependency property</param>
 /// <param name="DefaultValue">The default value for the property</param>
 /// <param name="Flags">The flags that describe the property behavior</param>
 public DependencyPropertyRegistrator <TOwner> Register <T>(Expression <Func <TOwner, T> > Property, out DependencyProperty DependencyProperty, T DefaultValue, FrameworkPropertyMetadataOptions Flags)
 {
     return(Register(Property, out DependencyProperty, DefaultValue, Flags, null));
 }