TryRemove <T>(IDependencyValueProvider provider, DependencyProperty <T> key, out IEffectiveValue <T> value)
        {
            var             storage  = GetStorage(provider, key);
            var             priority = provider.Priority;
            IEffectiveValue eValue;

            if (storage.TryGetValue(priority, out eValue))
            {
                value = (IEffectiveValue <T>)eValue;
                var index = storage.IndexOfKey(priority);
                storage.RemoveAt(index);
#if ECS_SERVER
                return(OnEffectiveValueCleared(index, key, value.Value)
                       .ContinueWith(t => true));
#else
                OnEffectiveValueCleared(index, key, value.Value);
                return(true);
#endif
            }

            value = null;
#if ECS_SERVER
            return(Task.FromResult(false));
#else
            return(false);
#endif
        }
 public bool TryGetCurrentEffectiveValue(DependencyProperty key, out IEffectiveValue value)
 {
     if (_parent != null && _inheritProperties.Contains(key))
     {
         return(_parent.ValueStorage.TryGetCurrentEffectiveValue(key, out value));
     }
     value = null;
     return(false);
 }
示例#3
0
文件: Style.cs 项目: qcjxberin/MPF
            public bool TryGetCurrentEffectiveValue <T>(DependencyProperty <T> key, out IEffectiveValue <T> value)
            {
                IEffectiveValue eValue;

                if (TryGetCurrentEffectiveValue(key, out eValue))
                {
                    value = (IEffectiveValue <T>)eValue;
                    return(true);
                }
                value = null;
                return(false);
            }
示例#4
0
 internal bool TryGetCurrentEffectiveValue(DependencyProperty key, out IEffectiveValue value)
 {
     foreach (var storage in _storages.Values)
     {
         if (storage.TryGetCurrentEffectiveValue(key, out value))
         {
             return(true);
         }
     }
     value = null;
     return(false);
 }
示例#5
0
        public bool TryGetCurrentEffectiveValue(DependencyProperty key, out IEffectiveValue value)
        {
            SortedList <float, IEffectiveValue> list;

            if (_dict.TryGetValue(key, out list) && list.Count > 0)
            {
                value = list.Values[0];
                return(true);
            }
            value = null;
            return(false);
        }
示例#6
0
文件: Style.cs 项目: qcjxberin/MPF
            public bool TryGetCurrentEffectiveValue(DependencyProperty key, out IEffectiveValue value)
            {
                if (_values.TryGetValue(key, out value))
                {
                    return(true);
                }

                _style.Seal();
                IEffectiveValueProvider provider;

                if (_style._values.TryGetValue(key, out provider))
                {
                    if (!_values.TryGetValue(key, out value))
                    {
                        var effectiveValue = provider.ProviderValue(_d);
                        effectiveValue.ValueChanged = (s, e) => OnEffectiveValueChanged(key, e.OldValue, e.NewValue);
                        value = effectiveValue;
                    }
                    return(true);
                }
                value = null;
                return(false);
            }
示例#7
0
        public bool TryRemove <T>(IDependencyValueProvider provider, DependencyProperty <T> key, out IEffectiveValue <T> value)
        {
            var             storage  = GetStorage(provider, key);
            var             priority = provider.Priority;
            IEffectiveValue eValue;

            if (storage.TryGetValue(priority, out eValue))
            {
                value = (IEffectiveValue <T>)eValue;
                var index = storage.IndexOfKey(priority);
                storage.RemoveAt(index);
                OnEffectiveValueCleared(index, key, value.Value);
                return(true);
            }

            value = null;
            return(false);
        }
示例#8
0
        public bool TryGetValue <T>(IDependencyValueProvider provider, DependencyProperty <T> key, out IEffectiveValue <T> value)
        {
            var             storage = GetStorage(provider, key);
            IEffectiveValue eValue;

            if (storage.TryGetValue(provider.Priority, out eValue))
            {
                value = (IEffectiveValue <T>)eValue;
                return(true);
            }

            value = null;
            return(false);
        }
示例#9
0
 public object GetValue(IEffectiveValue effectiveValue)
 {
     return(((IEffectiveValue <T>)effectiveValue).Value);
 }
示例#10
0
文件: Style.cs 项目: qcjxberin/MPF
 public bool TryRemove <T>(IDependencyValueProvider provider, DependencyProperty <T> key, out IEffectiveValue <T> value)
 {
     throw new NotSupportedException();
 }
示例#11
0
 private bool TryGetCurrentEffectiveValueExcept(DependencyProperty key, IDependencyValueStorage except, out IEffectiveValue value)
 {
     foreach (var storage in _storages.Values)
     {
         if (storage == except)
         {
             continue;
         }
         if (storage.TryGetCurrentEffectiveValue(key, out value))
         {
             return(true);
         }
     }
     value = null;
     return(false);
 }
示例#12
0
 public bool EqualsEffectiveValue(IEffectiveValue a, IEffectiveValue b)
 {
     return(EqualityComparer <T> .Default.Equals(((IEffectiveValue <T>)a).Value, ((IEffectiveValue <T>)b).Value));
 }
示例#13
0
 public object GetEffectiveValue(IEffectiveValue value)
 {
     return(((IEffectiveValue <T>)value).Value);
 }