Esempio n. 1
0
        private static void ExtendDefaultGen(SolidProperty property, Func <Style, object> getValue)
        {
            // Overrides the property defaults of some properties so the style can define the default value.
            var prevGen = property.Metadata.DefaultGenerator;

            property.Metadata.DefaultGenerator = (obj, prop) =>
            {
                if (obj is State)
                {
                    var state = (State)obj;
                    return(getValue(state.style));
                }
                return(prevGen(obj, prop));
            };
        }
Esempio n. 2
0
        protected static void ExtendDefaultGen(SolidProperty property, Func <State, object> getValue)
        {
            // Overrides the property defaults of some properties so the style can define the default value.
            var prevGen = property.Metadata.DefaultGenerator;

            property.Metadata.DefaultGenerator = (obj, prop) =>
            {
                if (obj is UIWidget)
                {
                    var widget = (UIWidget)obj;
                    var state  = widget?.Style?.GetState(widget.GetCurrentStyleKey());
                    if (state != null)
                    {
                        return(getValue(state));
                    }
                }
                return(prevGen(obj, prop));
            };
        }
Esempio n. 3
0
        protected override void SetProperty(T obj, MarkupProperty markupProperty)
        {
            var property = SolidProperty.GetProperty(obj.GetType(), markupProperty.Name);

            if (property == null)
            {
                base.SetProperty(obj, markupProperty);
                return;
            }

            if (markupProperty.Type == MarkupPropertyType.Binding)
            {
                SolidProperty.Bind(property, obj, markupProperty.Value);
                return;
            }

            if (property.Metadata.IsExported == false)
            {
                throw new NotSupportedException("Setting a non-exported property is not supported.");
            }

            property.SetValue(obj, ConvertPropertyType(property.PropertyType, markupProperty));
        }