示例#1
0
        static void Main(string[] args)
        {
            var application = new Application();

            Forms.Init();
            var formsApplicationPage = new FormsApplicationPage();

            formsApplicationPage.LoadApplication(new App());
            application.Run(formsApplicationPage);
        }
示例#2
0
        static void Main(string[] args)
        {
            var application = new Application();

            Forms.Init();
            var formsApplicationPage = new FormsApplicationPage();

            formsApplicationPage.LoadApplication(new XamarinNeller.App());

            Task.Run(() =>
            {
                Task.Delay(1000).Wait();

                application.Dispatcher.InvokeAsync(() =>
                {
                    var window = new Window()
                    {
                        Height = 600,
                        Width  = 600
                    };

                    var viewPage = new ViewPage()
                    {
                        HeightRequest = 500,
                        WidthRequest  = 500
                    };

                    var pageRenderer = new PageRenderer();

                    var mainPage = new MainPage();
                    pageRenderer.SetElement(viewPage);

                    //var formsContentLoader = new FormsContentLoader();
                    //var content = formsContentLoader.LoadContentAsync(window,null, mainPage,new CancellationToken()).Result;

                    var frameworkElement = pageRenderer.GetNativeElement();
                    window.Content       = frameworkElement;
                    window.Show();
                });
            });

            application.Run();
        }
        public static Control ToControl(this Page view)
        {
            if (!Forms.IsInitialized)
            {
                throw new InvalidOperationException("Call Forms.Init() before this");
            }

            if (!(view.RealParent is Application))
            {
                Application app = new DefaultApplication
                {
                    MainPage = view
                };

                var formsApplicationPage = new FormsApplicationPage();
                formsApplicationPage.LoadApplication(app);
                var platform = new Platform(formsApplicationPage);
                platform.SetPage(view);
            }

            IVisualElementRenderer renderer = Platform.GetOrCreateRenderer(view);

            if (renderer == null)
            {
                throw new InvalidOperationException($"Could not find or create a renderer for {view}");
            }

            var Control = renderer.GetNativeElement();

            Control.AttachedToLogicalTree += (sender, e) =>
            {
                view.Layout(new Rectangle(0, 0, Control.Bounds.Width, Control.Bounds.Height));
            };

            return(Control);
        }
示例#4
0
        public static FrameworkElement ToFrameworkElement(this Page view)
        {
            if (!System.Maui.Maui.IsInitialized)
            {
                throw new InvalidOperationException("Call System.Maui.Maui.Init() before this");
            }

            if (!(view.RealParent is Application))
            {
                Application app = new DefaultApplication
                {
                    MainPage = view
                };

                var formsApplicationPage = new FormsApplicationPage();
                formsApplicationPage.LoadApplication(app);
                var platform = new Platform(formsApplicationPage);
                platform.SetPage(view);
            }

            IVisualElementRenderer renderer = Platform.GetOrCreateRenderer(view);

            if (renderer == null)
            {
                throw new InvalidOperationException($"Could not find or create a renderer for {view}");
            }

            var frameworkElement = renderer.GetNativeElement();

            frameworkElement.Loaded += (sender, args) =>
            {
                view.Layout(new Rectangle(0, 0, frameworkElement.ActualWidth, frameworkElement.ActualHeight));
            };

            return(frameworkElement);
        }