private void RenderHud()
        {
            var hudContainer = new Windows.UI.Xaml.Controls.Grid();

            hudContainer.Width  = 640;
            hudContainer.Height = 480;



            _artificialHorizon = new Controls.ArtificialHorizon();
            hudContainer.Children.Add(_artificialHorizon);

            _video = new Controls.VideoControl();
            hudContainer.Children.Add(_video);

            _pitchTransform = new TranslateTransform()
            {
                Y = 0
            };
            _rollTransform = new RotateTransform()
            {
                Angle = 0, CenterX = 240, CenterY = 240,
            };

            _compass = new Controls.Compass();
            _compass.VerticalAlignment = VerticalAlignment.Top;
            hudContainer.Children.Add(_compass);

            _altitudeIndicator = new Controls.AltitudeIndicator();
            _altitudeIndicator.HorizontalAlignment = HorizontalAlignment.Right;
            _altitudeIndicator.VerticalAlignment   = VerticalAlignment.Center;
            hudContainer.Children.Add(_altitudeIndicator);

            _systemStatus                     = new Controls.SystemStatus();
            _systemStatus.Margin              = new Thickness(0, 0, 0, 60);
            _systemStatus.VerticalAlignment   = VerticalAlignment.Bottom;
            _systemStatus.HorizontalAlignment = HorizontalAlignment.Left;
            hudContainer.Children.Add(_systemStatus);

            _aoaCircle = new Controls.AoACircle();
            hudContainer.Children.Add(_aoaCircle);

            _gpsStatus = new Controls.GPSStatus
            {
                VerticalAlignment   = VerticalAlignment.Bottom,
                HorizontalAlignment = HorizontalAlignment.Right
            };
            hudContainer.Children.Add(_gpsStatus);

            hudContainer.SetValue(Windows.UI.Xaml.Controls.Grid.RowProperty, 0);
            hudContainer.SetValue(Windows.UI.Xaml.Controls.Grid.ColumnProperty, 1);

            Children.Add(hudContainer);
        }
예제 #2
0
        private void WindowsXamlHost_ChildChanged(object sender, EventArgs e)
        {
            var grid = (sender as WindowsXamlHost).Child as Windows.UI.Xaml.Controls.Grid;

            if (grid == null)
            {
                return;
            }

            var gridInkCanvas = new Windows.UI.Xaml.Controls.Grid();

            gridInkCanvas.Background = new Windows.UI.Xaml.Media.SolidColorBrush(Windows.UI.Colors.White);
            var inkCanvas = new Windows.UI.Xaml.Controls.InkCanvas();

            gridInkCanvas.Children.Add(inkCanvas);
            gridInkCanvas.SetValue(Windows.UI.Xaml.Controls.Grid.RowProperty, 1);
            inkCanvas.InkPresenter.InputDeviceTypes = CoreInputDeviceTypes.Mouse | CoreInputDeviceTypes.Pen | CoreInputDeviceTypes.Touch;


            var inkToolbar = new Windows.UI.Xaml.Controls.InkToolbar();

            inkToolbar.TargetInkCanvas = inkCanvas;
            inkToolbar.SetValue(Windows.UI.Xaml.Controls.Grid.RowProperty, 0);

            var firstRow = new Windows.UI.Xaml.Controls.RowDefinition();

            firstRow.Height = new Windows.UI.Xaml.GridLength(1, Windows.UI.Xaml.GridUnitType.Auto);
            var secondRow = new Windows.UI.Xaml.Controls.RowDefinition();

            secondRow.Height = new Windows.UI.Xaml.GridLength(1, Windows.UI.Xaml.GridUnitType.Star);
            grid.RowDefinitions.Add(firstRow);
            grid.RowDefinitions.Add(secondRow);

            grid.Children.Add(gridInkCanvas);
            grid.Children.Add(inkToolbar);
        }