public PropertyMetadataXm(object defaultValue, FrameworkPropertyMetadataOptionsXm flags, PropertyChangedCallback propertyChangedCallback, CoerceValueCallback coerceValueCallback) : base(defaultValue, WrapCoerceCallback(WrapFrameworkFlagsCallback(propertyChangedCallback, flags), coerceValueCallback)) { }
public PropertyMetadataXm(object defaultValue, FrameworkPropertyMetadataOptionsXm flags) : this(defaultValue, flags, null, null) { }
public PropertyMetadataXm(object defaultValue, FrameworkPropertyMetadataOptionsXm flags, PropertyChangedCallback propertyChangedCallback) : this(defaultValue, flags, propertyChangedCallback, null) { }
private static PropertyChangedCallback WrapFrameworkFlagsCallback(PropertyChangedCallback propertyChangedCallback, FrameworkPropertyMetadataOptionsXm flags) { return(delegate(DependencyObject o, DependencyPropertyChangedEventArgs args) { if (o is UIElement uie) { if ((flags & FrameworkPropertyMetadataOptionsXm.AffectsMeasure) != 0) { uie.InvalidateMeasure(); } if ((flags & FrameworkPropertyMetadataOptionsXm.AffectsArrange) != 0) { uie.InvalidateArrange(); } if (VisualTreeHelper.GetParent(uie) is UIElement parent) { if ((flags & FrameworkPropertyMetadataOptionsXm.AffectsParentMeasure) != 0) { parent.InvalidateMeasure(); } if ((flags & FrameworkPropertyMetadataOptionsXm.AffectsParentArrange) != 0) { parent.InvalidateArrange(); } } } propertyChangedCallback?.Invoke(o, args); }); }