Пример #1
0
        protected override HandleRef BuildWindowCore(HandleRef hwndParent)
        {
            Win32Interop.EnableMouseInPointer();

            // There are several different low-level interfaces available at this time.
            // Use XamlBridge unless you have a known reason to use the others.
            //IntPtr windowHandle = InitializePresenterHwndMode(hwndParent);
            //IntPtr windowHandle = InitializePresenterCoreWindowMode(hwndParent);
            IntPtr windowHandle = InitializeBridge(hwndParent);

            // Uncomment the following lines to create Xaml UI content directly from within this WPF host control.
            // Normally, the user of this control sets a property which is the name of a Xaml UserControl to instantiate.

            Windows.UI.Xaml.Controls.StackPanel panel = new Windows.UI.Xaml.Controls.StackPanel();
            panel.Orientation = Windows.UI.Xaml.Controls.Orientation.Vertical;
            panel.Background  = new Windows.UI.Xaml.Media.SolidColorBrush(Windows.UI.Colors.Red);

            Windows.UI.Xaml.Controls.TextBox textBox = new Windows.UI.Xaml.Controls.TextBox();
            textBox.Text = "XAML TextBox 1";
            panel.Children.Add(textBox);

            Windows.UI.Xaml.Controls.Button button = new Windows.UI.Xaml.Controls.Button();
            button.Content = "XAML Button";
            panel.Children.Add(button);

            textBox      = new Windows.UI.Xaml.Controls.TextBox();
            textBox.Text = "XAML TextBox 2";
            panel.Children.Add(textBox);

            //XamlClassLibrary.TestUserControl testUserControl = new XamlClassLibrary.TestUserControl();
            //panel.Children.Add(testUserControl);

            Windows.UI.Xaml.Window.Current.Content = panel;

            panel.LayoutUpdated += XamlContentLayoutUpdated;


            XamlApplication application        = new XamlApplication();
            String          globalResourceFile = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "globalresources.xbf");

            if (File.Exists(globalResourceFile))
            {
                Windows.UI.Xaml.Application.LoadComponent(application, new Uri("ms-resource:///Files/globalresources.xaml"));
            }

            Windows.UI.Xaml.FrameworkElement contentRoot = panel;
            //var type = Type.GetType(ControlType, true, true);
            //Windows.UI.Xaml.FrameworkElement contentRoot = (Windows.UI.Xaml.FrameworkElement) Activator.CreateInstance("XamlClassLibrary", ControlType).Unwrap();

            Windows.UI.Xaml.Window.Current.Content = contentRoot;

            contentRoot.LayoutUpdated += XamlContentLayoutUpdated;

            return(new HandleRef(this, windowHandle));
        }
Пример #2
0
        private void OnStackPanelChanged(object sender, EventArgs e)
        {
            WindowsXamlHost wxh = (WindowsXamlHost)sender;

            Windows.UI.Xaml.Controls.StackPanel stackPanel = wxh.Child as Windows.UI.Xaml.Controls.StackPanel;
            if (stackPanel != null)
            {
                list = new Windows.UI.Xaml.Controls.ListView();
                list.Items.Add("One");
                list.Items.Add("Two");
                list.Items.Add("Three");
                stackPanel.Children.Add(list);
            }
        }
Пример #3
0
        private void Form1_Load(object sender, EventArgs e)
        {
            inkCanvas1.InkPresenter.InputDeviceTypes = CoreInputDeviceTypes.Pen | CoreInputDeviceTypes.Mouse | CoreInputDeviceTypes.Touch;

            var stackPanel = new Windows.UI.Xaml.Controls.StackPanel()
            {
                Background = new Windows.UI.Xaml.Media.SolidColorBrush(Windows.UI.Colors.Black),
            };

            stackPanel.Children.Add(new Windows.UI.Xaml.Shapes.Rectangle()
            {
                Width  = 50,
                Height = 75,
                Fill   = new Windows.UI.Xaml.Media.SolidColorBrush(Windows.UI.Colors.Blue),
            });

            stackPanel.Children.Add(new Windows.UI.Xaml.Shapes.Rectangle()
            {
                Width  = 200,
                Height = 30,
                Fill   = new Windows.UI.Xaml.Media.SolidColorBrush(Windows.UI.Colors.Red),
            });

            stackPanel.Children.Add(new Windows.UI.Xaml.Controls.Button()
            {
                Width  = 160,
                Height = 60,
                HorizontalAlignment = Windows.UI.Xaml.HorizontalAlignment.Center,
                Content             = "This is a UWP Button",
            });

            stackPanel.Children.Add(new Windows.UI.Xaml.Shapes.Rectangle()
            {
                Width  = 25,
                Height = 100,
                Fill   = new Windows.UI.Xaml.Media.SolidColorBrush(Windows.UI.Colors.Green),
            });

            stackPanel.Children.Add(new Windows.UI.Xaml.Controls.Button()
            {
                Width  = 300,
                Height = 40,
                HorizontalAlignment = Windows.UI.Xaml.HorizontalAlignment.Center,
                Content             = "Another long UWP Button",
            });

            windowsXamlHost.Child = stackPanel;
        }
        protected override void OnElementChanged(ElementChangedEventArgs<Page> e)
        {
            base.OnElementChanged(e);

            var page = e.NewElement as MySecondPage;

            stackPanel = new Windows.UI.Xaml.Controls.StackPanel();
            stackPanel.Orientation = Windows.UI.Xaml.Controls.Orientation.Horizontal;

            var label = new Windows.UI.Xaml.Controls.TextBlock
            {
                Text = "2" + page.Heading
            };

            stackPanel.Children.Add(label);
            this.Children.Add(stackPanel);
        }
        protected override void OnElementChanged(ElementChangedEventArgs <Page> e)
        {
            base.OnElementChanged(e);

            var page = e.NewElement as MySecondPage;

            stackPanel             = new Windows.UI.Xaml.Controls.StackPanel();
            stackPanel.Orientation = Windows.UI.Xaml.Controls.Orientation.Horizontal;

            var label = new Windows.UI.Xaml.Controls.TextBlock
            {
                Text = "2" + page.Heading
            };

            stackPanel.Children.Add(label);
            this.Children.Add(stackPanel);
        }
Пример #6
0
        /// <summary>
        /// This method is used to wrap the Windows.UI.Xaml control in a new instance of a WindowsXamlHost.
        /// </summary>
        /// <param name="windowsXamlHost"></param>
        /// <param name="control"></param>
        /// <returns>Control</returns>
        internal Control WrapInXamlHost(WindowsXamlHost windowsXamlHost, WUX.Controls.Control control)
        {
            windowsXamlHost.AutoSizeMode    = System.Windows.Forms.AutoSizeMode.GrowOnly;
            windowsXamlHost.InitialTypeName = null;
            windowsXamlHost.Padding         = new Padding(5);

            WUX.Controls.StackPanel stackPanel = new WUX.Controls.StackPanel()
            {
                HorizontalAlignment = WUX.HorizontalAlignment.Stretch
            };


            stackPanel.Children.Add(control);
            windowsXamlHost.Child = stackPanel;
            if (windowsXamlHost.Width == 0)
            {
                windowsXamlHost.Height = ((int)control.Height > 0) ? (int)control.Height + 100 : 80;
                windowsXamlHost.Width  = ((int)control.Width > 0) ? (int)control.Width + 220 : 500;
            }
            return(windowsXamlHost);
        }
Пример #7
0
        /*
         * This method takes an ElementChangedEventArgs parameter that contains OldElement and NewElement properties.
         * These properties represent the Xamarin.Forms element that the renderer was attached to,
         * and the Xamarin.Forms element that the renderer is attached to, respectively.
         * In the sample application the OldElement property will be null
         * and the NewElement property will contain a reference to the CameraPage instance.
         */
        protected override void OnElementChanged(ElementChangedEventArgs <Page> e)
        {
            base.OnElementChanged(e);
            Debug.Write(e.OldElement == null);
            Debug.Write(e.NewElement == null);
            if (e.OldElement != null || Element == null)
            {
                return;
            }
            Windows.UI.Xaml.Controls.Image image = new Windows.UI.Xaml.Controls.Image()
            {
                Width  = 100,
                Height = 100,
                HorizontalAlignment = Windows.UI.Xaml.HorizontalAlignment.Left
            };
            BitmapImage bitmapImage = new BitmapImage(new Uri("ms-appx://XamarinCustomContentPage.UWP/Assets/picture.png"));

            image.Source = bitmapImage;

            sta = new Windows.UI.Xaml.Controls.StackPanel();

            bt            = new Windows.UI.Xaml.Controls.Button();
            bt.Content    = "hello , my custom page";
            bt.Background = new Windows.UI.Xaml.Media.SolidColorBrush(Windows.UI.Color.FromArgb(25, 0, 0, 255));
            bt.Click     += OnClicked;
            sta.Children.Add(image);
            sta.Children.Add(bt);

            //instantiate a page
            page = new Windows.UI.Xaml.Controls.Page();
            //add content to a page
            page.Content = sta;

            //put this page to this custom render as a children
            //must add content to the renderer,the content can be a stackpanel or the page or the image

            //a control only can be add into a contain control such as,if the image control add to the stackpanel ,
            //it can not be added to page.content or this render.content
            this.Children.Add(page);
        }
        private void WindowsXamlHost_Loaded(object sender, RoutedEventArgs e)
        {
            windows.UI.Xaml.Controls.StackPanel stackPanel = new windows.UI.Xaml.Controls.StackPanel()
            {
                Background = new windows.UI.Xaml.Media.SolidColorBrush(windows.UI.Colors.Black),
            };

            stackPanel.Children.Add(new windows.UI.Xaml.Shapes.Rectangle()
            {
                Width  = 50,
                Height = 75,
                Fill   = new windows.UI.Xaml.Media.SolidColorBrush(windows.UI.Colors.Blue),
            });

            stackPanel.Children.Add(new windows.UI.Xaml.Shapes.Rectangle()
            {
                Width  = 200,
                Height = 30,
                Fill   = new windows.UI.Xaml.Media.SolidColorBrush(windows.UI.Colors.Red),
            });

            var button = new windows.UI.Xaml.Controls.Button()
            {
                Width  = 160,
                Height = 60,
                HorizontalAlignment = windows.UI.Xaml.HorizontalAlignment.Center,
                Content             = "ContentDialog UWP Button",
            };

            button.Tapped += Button_Tapped;
            stackPanel.Children.Add(button);

            stackPanel.Children.Add(new windows.UI.Xaml.Shapes.Rectangle()
            {
                Width  = 25,
                Height = 100,
                Fill   = new windows.UI.Xaml.Media.SolidColorBrush(windows.UI.Colors.Green),
            });

            windows.UI.Xaml.Controls.Flyout flyout = new windows.UI.Xaml.Controls.Flyout();
            flyout.Content = new windows.UI.Xaml.Controls.TextBlock()
            {
                Text = "Flyout content",
            };

            var button2 = new windows.UI.Xaml.Controls.Button()
            {
                Width  = 300,
                Height = 40,
                HorizontalAlignment = windows.UI.Xaml.HorizontalAlignment.Center,
                Content             = "Long UWP Button with Flyout",
                Flyout = flyout,
            };

            stackPanel.Children.Add(button2);

            var comboBox = new windows.UI.Xaml.Controls.ComboBox()
            {
                HorizontalAlignment = windows.UI.Xaml.HorizontalAlignment.Center,
            };

            comboBox.Items.Add("One");
            comboBox.Items.Add("Two");
            comboBox.Items.Add("Three");
            comboBox.Items.Add("Four");
            stackPanel.Children.Add(comboBox);

            windows.UI.Xaml.Controls.Grid grid = new windows.UI.Xaml.Controls.Grid();
            stackPanel.Children.Add(grid);

            _contentDialog         = new windows.UI.Xaml.Controls.ContentDialog();
            _contentDialog.Content = new windows.UI.Xaml.Controls.TextBlock()
            {
                Text = "ContentDialog content",
            };
            stackPanel.Children.Add(_contentDialog);

            var popup = new windows.UI.Xaml.Controls.Primitives.Popup()
            {
                Width  = 50,
                Height = 50,
                ShouldConstrainToRootBounds = false,
                Child = new windows.UI.Xaml.Controls.TextBlock()
                {
                    Text = "Popup child",
                },
            };

            grid.Children.Add(popup);

            windowsXamlHost.Child = stackPanel;
            popup.IsOpen          = true;
        }
Пример #9
0
        // Create constructor public MainPage.
        public MainPage()
        {
            // Necessary to instantiate this Page, add a stackPanel to this Page, et cetera.
            this.InitializeComponent();

            // Find width of app in view pixels and height between bottom of app and bottom of title bar in view pixels.
            double widthOfAppInViewPixels = Windows.UI.ViewManagement.ApplicationView.PreferredLaunchViewSize.Width;
            double heightBetweenBottomOfAppAndBottomOfTitleBarInViewPixels = Windows.UI.ViewManagement.ApplicationView.PreferredLaunchViewSize.Height;

            // Create a stackPanel.
            Windows.UI.Xaml.Controls.StackPanel stackPanel = new Windows.UI.Xaml.Controls.StackPanel();

            // Create a toolbar with width equal to the width of the app, height equal to 50 view pixels, and background color of light blue that has one row and three columns.
            Windows.UI.Xaml.Controls.Grid toolbar = new Windows.UI.Xaml.Controls.Grid();
            toolbar.Width      = widthOfAppInViewPixels;
            toolbar.Height     = 50;
            toolbar.Background = new Windows.UI.Xaml.Media.SolidColorBrush(Windows.UI.Colors.AliceBlue);
            Windows.UI.Xaml.Controls.RowDefinition row = new Windows.UI.Xaml.Controls.RowDefinition();
            toolbar.RowDefinitions.Add(row);
            Windows.UI.Xaml.Controls.ColumnDefinition columnForOpenImageButton         = new Windows.UI.Xaml.Controls.ColumnDefinition();
            Windows.UI.Xaml.Controls.ColumnDefinition columnForLoadBoundingBoxesButton = new Windows.UI.Xaml.Controls.ColumnDefinition();
            Windows.UI.Xaml.Controls.ColumnDefinition columnForTextboxForClassIndex    = new Windows.UI.Xaml.Controls.ColumnDefinition();
            Windows.UI.Xaml.Controls.ColumnDefinition columnForSaveLabeledImageButton  = new Windows.UI.Xaml.Controls.ColumnDefinition();
            Windows.UI.Xaml.Controls.ColumnDefinition columnForSaveLabelFileButton     = new Windows.UI.Xaml.Controls.ColumnDefinition();
            columnForOpenImageButton.Width         = new Windows.UI.Xaml.GridLength(widthOfAppInViewPixels * 3 / 7 / 2);
            columnForLoadBoundingBoxesButton.Width = new Windows.UI.Xaml.GridLength(widthOfAppInViewPixels * 3 / 7 / 2);
            columnForTextboxForClassIndex.Width    = new Windows.UI.Xaml.GridLength(widthOfAppInViewPixels / 7);
            columnForSaveLabeledImageButton.Width  = new Windows.UI.Xaml.GridLength(widthOfAppInViewPixels * 3 / 7 / 2);
            columnForSaveLabelFileButton.Width     = new Windows.UI.Xaml.GridLength(widthOfAppInViewPixels * 3 / 7 / 2);
            toolbar.ColumnDefinitions.Add(columnForOpenImageButton);
            toolbar.ColumnDefinitions.Add(columnForLoadBoundingBoxesButton);
            toolbar.ColumnDefinitions.Add(columnForTextboxForClassIndex);
            toolbar.ColumnDefinitions.Add(columnForSaveLabeledImageButton);
            toolbar.ColumnDefinitions.Add(columnForSaveLabelFileButton);

            // Add to toolbar's columnForOpenImageButton an "Open Image" button.
            Windows.UI.Xaml.Controls.Button openImageButton = new Windows.UI.Xaml.Controls.Button();
            openImageButton.Content = "Open Image";
            openImageButton.Height  = 40;
            Windows.UI.Xaml.Controls.Grid.SetRow(openImageButton, 0);
            Windows.UI.Xaml.Controls.Grid.SetColumn(openImageButton, 0);
            openImageButton.HorizontalAlignment = Windows.UI.Xaml.HorizontalAlignment.Center;
            openImageButton.Click += OpenImageButton_Click;
            toolbar.Children.Add(openImageButton);

            // Add to the toolbar's columnForLoadBoundingBoxesButton a "Load Bounding Boxes" button.
            Windows.UI.Xaml.Controls.Button loadBoundingBoxesButton = new Windows.UI.Xaml.Controls.Button();
            loadBoundingBoxesButton.Content = "Load Bounding Boxes";
            loadBoundingBoxesButton.Height  = 40;
            Windows.UI.Xaml.Controls.Grid.SetRow(loadBoundingBoxesButton, 0);
            Windows.UI.Xaml.Controls.Grid.SetColumn(loadBoundingBoxesButton, 1);
            loadBoundingBoxesButton.HorizontalAlignment = Windows.UI.Xaml.HorizontalAlignment.Center;
            loadBoundingBoxesButton.Click += LoadBoundingBoxesButton_Click;
            toolbar.Children.Add(loadBoundingBoxesButton);

            // Add to toolbar's columnForTextboxForClassIndex a labeled text box to store a user's choice of class index for an object they are about to bound.
            Windows.UI.Xaml.Controls.TextBlock textblockForClassIndex = new Windows.UI.Xaml.Controls.TextBlock();
            textblockForClassIndex.Text   = "Class Index: ";
            textblockForClassIndex.Height = 20;
            Windows.UI.Xaml.Controls.Grid.SetRow(textblockForClassIndex, 0);
            Windows.UI.Xaml.Controls.Grid.SetColumn(textblockForClassIndex, 2);
            toolbar.Children.Add(textblockForClassIndex);
            this.TextBoxForClassIndex        = new Windows.UI.Xaml.Controls.TextBox();
            this.TextBoxForClassIndex.Text   = "0";
            this.TextBoxForClassIndex.Width  = 40;
            this.TextBoxForClassIndex.Height = 40;
            Windows.UI.Xaml.Controls.Grid.SetRow(this.TextBoxForClassIndex, 0);
            Windows.UI.Xaml.Controls.Grid.SetColumn(this.TextBoxForClassIndex, 2);
            this.TextBoxForClassIndex.TextChanged += TextBoxForClassIndex_TextChanged;
            toolbar.Children.Add(this.TextBoxForClassIndex);

            // Add to toolbar's columnForSaveLabeledImageButton a "Save Labeled Image" button.
            Windows.UI.Xaml.Controls.Button saveLabeledImageButton = new Windows.UI.Xaml.Controls.Button();
            saveLabeledImageButton.Content = "Save Labeled Image";
            saveLabeledImageButton.Height  = 40;
            Windows.UI.Xaml.Controls.Grid.SetRow(saveLabeledImageButton, 0);
            Windows.UI.Xaml.Controls.Grid.SetColumn(saveLabeledImageButton, 3);
            saveLabeledImageButton.HorizontalAlignment = Windows.UI.Xaml.HorizontalAlignment.Center;
            saveLabeledImageButton.Click += SaveLabeledImageButton_Click;
            toolbar.Children.Add(saveLabeledImageButton);

            // Add to toolbar's columnForSaveLabelFileButton a "Save Label File" button.
            Windows.UI.Xaml.Controls.Button saveLabelFileButton = new Windows.UI.Xaml.Controls.Button();
            saveLabelFileButton.Content = "Save Label File";
            saveLabelFileButton.Height  = 40;
            Windows.UI.Xaml.Controls.Grid.SetRow(saveLabelFileButton, 0);
            Windows.UI.Xaml.Controls.Grid.SetColumn(saveLabelFileButton, 4);
            saveLabelFileButton.HorizontalAlignment = Windows.UI.Xaml.HorizontalAlignment.Center;
            saveLabelFileButton.Click += SaveLabelFileButton_Click;
            toolbar.Children.Add(saveLabelFileButton);

            // Add grid to the top of our stackPanel.
            stackPanel.Children.Add(toolbar);

            this.ImageCanvas                 = new Windows.UI.Xaml.Controls.Canvas();
            this.ImageCanvas.Width           = widthOfAppInViewPixels;
            this.ImageCanvas.Height          = heightBetweenBottomOfAppAndBottomOfTitleBarInViewPixels - toolbar.Height;
            this.ImageCanvas.PointerMoved   += new Windows.UI.Xaml.Input.PointerEventHandler(ImageCanvas_PointerMoved);
            this.ImageCanvas.PointerPressed += new Windows.UI.Xaml.Input.PointerEventHandler(ImageCanvas_PointerPressed);
            this.ImageCanvas.PointerExited  += new Windows.UI.Xaml.Input.PointerEventHandler(ImageCanvas_PointerExited);
            stackPanel.Children.Add(this.ImageCanvas);

            // Add stackPanel to the page defined in MainPage.xaml.
            page.Content = stackPanel;
        } // public MainPage