Ejemplo n.º 1
0
        public AbsoluteModeEditor()
        {
            this.Content = new StackLayout
            {
                HorizontalContentAlignment = HorizontalAlignment.Stretch,
                Items =
                {
                    new StackLayoutItem
                    {
                        Expand  = true,
                        Control = new Group
                        {
                            Text    = "Display",
                            Content = displayAreaEditor = new DisplayAreaEditor
                            {
                                Unit = "px"
                            }
                        }
                    },
                    new StackLayoutItem
                    {
                        Expand  = true,
                        Control = new Group
                        {
                            Text    = "Tablet",
                            Content = tabletAreaEditor = new TabletAreaEditor
                            {
                                InvalidBackgroundError = "No tablet detected.",
                                Unit = "mm"
                            }
                        }
                    }
                }
            };

            displayAreaEditor.AreaBinding.Bind(SettingsBinding.Child(c => c.Display));
            displayAreaEditor.LockToUsableAreaBinding.Bind(App.Current, c => c.Settings.LockUsableAreaDisplay);

            tabletAreaEditor.AreaBinding.Bind(SettingsBinding.Child(c => c.Tablet));
            tabletAreaEditor.LockToUsableAreaBinding.Bind(App.Current, c => c.Settings.LockUsableAreaTablet);

            tabletAreaEditor.LockAspectRatioBinding.Bind(SettingsBinding.Child(c => c.LockAspectRatio));
            tabletAreaEditor.AreaClippingBinding.Bind(SettingsBinding.Child(c => c.EnableClipping));
            tabletAreaEditor.IgnoreOutsideAreaBinding.Bind(SettingsBinding.Child(c => c.EnableAreaLimiting));

            displayWidth  = SettingsBinding.Child(c => c.Display.Width);
            displayHeight = SettingsBinding.Child(c => c.Display.Height);
            tabletWidth   = SettingsBinding.Child(c => c.Tablet.Width);
            tabletHeight  = SettingsBinding.Child(c => c.Tablet.Height);
            tabletWidth.DataValueChanged   += HandleTabletAreaConstraint;
            tabletHeight.DataValueChanged  += HandleTabletAreaConstraint;
            displayWidth.DataValueChanged  += HandleDisplayAreaConstraint;
            displayHeight.DataValueChanged += HandleDisplayAreaConstraint;

            tabletAreaEditor.LockAspectRatioChanged += HookAspectRatioLock;
            HookAspectRatioLock(tabletAreaEditor, EventArgs.Empty);
        }
Ejemplo n.º 2
0
        public AbsoluteModeEditor()
        {
            this.Content = new StackLayout
            {
                HorizontalContentAlignment = HorizontalAlignment.Stretch,
                Items =
                {
                    new StackLayoutItem
                    {
                        Expand  = true,
                        Control = new Group
                        {
                            Text    = "Display",
                            Content = displayAreaEditor = new DisplayAreaEditor
                            {
                                Unit = "px"
                            }
                        }
                    },
                    new StackLayoutItem
                    {
                        Expand  = true,
                        Control = new Group
                        {
                            Text    = "Tablet",
                            Content = tabletAreaEditor = new TabletAreaEditor
                            {
                                InvalidBackgroundError = "No tablet detected.",
                                Unit = "mm"
                            }
                        }
                    }
                }
            };

            displayAreaEditor.AreaWidthBinding.BindDataContext <App>(c => c.Settings.DisplayWidth);
            displayAreaEditor.AreaHeightBinding.BindDataContext <App>(c => c.Settings.DisplayHeight);
            displayAreaEditor.AreaXOffsetBinding.BindDataContext <App>(c => c.Settings.DisplayX);
            displayAreaEditor.AreaYOffsetBinding.BindDataContext <App>(c => c.Settings.DisplayY);
            displayAreaEditor.LockToUsableAreaBinding.BindDataContext <App>(c => c.Settings.LockUsableAreaDisplay);

            tabletAreaEditor.AreaWidthBinding.BindDataContext <App>(c => c.Settings.TabletWidth);
            tabletAreaEditor.AreaHeightBinding.BindDataContext <App>(c => c.Settings.TabletHeight);
            tabletAreaEditor.AreaXOffsetBinding.BindDataContext <App>(c => c.Settings.TabletX);
            tabletAreaEditor.AreaYOffsetBinding.BindDataContext <App>(c => c.Settings.TabletY);
            tabletAreaEditor.AreaRotationBinding.BindDataContext <App>(c => c.Settings.TabletRotation);
            tabletAreaEditor.LockToUsableAreaBinding.BindDataContext <App>(c => c.Settings.LockUsableAreaTablet);
            tabletAreaEditor.LockAspectRatioBinding.BindDataContext <App>(c => c.Settings.LockAspectRatio);
            tabletAreaEditor.AreaClippingBinding.BindDataContext <App>(c => c.Settings.EnableClipping);
            tabletAreaEditor.IgnoreOutsideAreaBinding.BindDataContext <App>(c => c.Settings.EnableAreaLimiting);
        }