CarouselView.FormsPlugin.UWP.FormsViewToNativeUWP.ConvertFormsToNative C# (CSharp) Method

ConvertFormsToNative() public static method

public static ConvertFormsToNative ( Xamarin view, Rectangle size ) : FrameworkElement
view Xamarin
size Rectangle
return Windows.UI.Xaml.FrameworkElement
        public static FrameworkElement ConvertFormsToNative(Xamarin.Forms.View view, Rectangle size)
        {
            //var vRenderer = RendererFactory.GetRenderer (view);

            if (Platform.GetRenderer(view) == null)
                Platform.SetRenderer(view, Platform.CreateRenderer(view));

            var vRenderer = Platform.GetRenderer(view);

            view.Layout(new Rectangle(0, 0, size.Width, size.Height));

            //vRenderer.ContainerElement.Arrange(new Rect(0, 0, size.Width, size.Height));

            return vRenderer.ContainerElement;
        }
    }

Usage Example

Example #1
0
        FrameworkElement CreateView(object item)
        {
            Xamarin.Forms.View formsView = null;
            var bindingContext           = item;

            var dt = bindingContext as Xamarin.Forms.DataTemplate;

            // Support for List<DataTemplate> as ItemsSource
            if (dt != null)
            {
                formsView = (Xamarin.Forms.View)dt.CreateContent();
            }
            else
            {
                var selector = Element.ItemTemplate as Xamarin.Forms.DataTemplateSelector;
                if (selector != null)
                {
                    formsView = (Xamarin.Forms.View)selector.SelectTemplate(bindingContext, Element).CreateContent();
                }
                else
                {
                    formsView = (Xamarin.Forms.View)Element.ItemTemplate.CreateContent();
                }

                formsView.BindingContext = bindingContext;
            }

            formsView.Parent = this.Element;

            var element = FormsViewToNativeUWP.ConvertFormsToNative(formsView, new Xamarin.Forms.Rectangle(0, 0, ElementWidth, ElementHeight));

            return(element);
        }
FormsViewToNativeUWP