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); }
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); }
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); }
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); }