Exemplo n.º 1
0
		void PushRenderer(IVisualElementRenderer renderer)
		{
			Type rendererType = renderer.GetType();

			Stack<IVisualElementRenderer> renderers;
			if (!_freeRenderers.TryGetValue(rendererType, out renderers))
				_freeRenderers[rendererType] = renderers = new Stack<IVisualElementRenderer>();

			renderers.Push(renderer);
		}
Exemplo n.º 2
0
        private void PushRenderer(IVisualElementRenderer renderer)
        {
            Type type = renderer.GetType();
            Stack <IVisualElementRenderer> stack;

            if (!this.freeRenderers.TryGetValue(type, out stack))
            {
                this.freeRenderers[type] = stack = new Stack <IVisualElementRenderer>();
            }
            stack.Push(renderer);
        }
Exemplo n.º 3
0
        void PushRenderer(IVisualElementRenderer renderer)
        {
            var rendererType = renderer.GetType();

            Stack <IVisualElementRenderer> renderers;

            if (!_freeRenderers.TryGetValue(rendererType, out renderers))
            {
                _freeRenderers[rendererType] = renderers = new Stack <IVisualElementRenderer>();
            }

            renderers.Push(renderer);
        }
Exemplo n.º 4
0
        protected virtual FrameworkElement GetNativeView([NotNull] Element element)
        {
            var view = element as VisualElement;

            if (view == null)
            {
                return(null);
            }

            //Listen renderer change.
            ServiceProvider
            .AttachedValueProvider
            .GetOrAdd(element, "~~#@rendereListener", (el, o) =>
            {
                BindingServiceProvider.WeakEventManager.Subscribe(el, "Renderer", (IEventListener)o);
                return((object)null);
            }, this);
            IVisualElementRenderer renderer = view.GetRenderer();

            if (renderer == null)
            {
                return(null);
            }
            var entryRenderer = renderer as EntryRenderer;

            if (entryRenderer != null)
            {
                if (entryRenderer.Element.IsPassword)
                {
                    return(entryRenderer.Control.Children.OfType <PasswordBox>().FirstOrDefault());
                }
                return(entryRenderer.Control.Children.OfType <PhoneTextBox>().FirstOrDefault());
            }

            var member = BindingServiceProvider.MemberProvider.GetBindingMember(renderer.GetType(), "Control", true, false);

            if (member == null || !member.CanRead)
            {
                return(null);
            }
            return(member.GetValue(renderer, null) as FrameworkElement);
        }
        void PushRenderer(IVisualElementRenderer renderer)
        {
            var reflectableType = renderer as System.Reflection.IReflectableType;
            var rendererType    = reflectableType != null?reflectableType.GetTypeInfo().AsType() : renderer.GetType();

            if (!_freeRenderers.TryGetValue(rendererType, out Stack <IVisualElementRenderer> renderers))
            {
                _freeRenderers[rendererType] = renderers = new Stack <IVisualElementRenderer>();
            }

            renderers.Push(renderer);
        }