示例#1
0
        public Calc()

        {
            var layout = new Grid();



            // Rows:

            layout.RowDefinitions.Add(new RowDefinition {
                Height = new GridLength(2, GridUnitType.Star)
            });

            layout.RowDefinitions.Add(new RowDefinition {
                Height = new GridLength(1, GridUnitType.Star)
            });



            // Columns:

            layout.ColumnDefinitions.Add(new ColumnDefinition {
                Width = new GridLength(1, GridUnitType.Star)
            });

            layout.ColumnDefinitions.Add(new ColumnDefinition {
                Width = new GridLength(1, GridUnitType.Star)
            });



            Content = layout;



            displayLabel = new Label {
                Text = ""
            };



            var b0 = new Button {
                Text = "0"
            };

            var b1 = new Button {
                Text = "1"
            };

            var b2 = new Button {
                Text = "2"
            };

            var b3 = new Button {
                Text = "3"
            };

            var b4 = new Button {
                Text = "4"
            };

            var b5 = new Button {
                Text = "5"
            };

            var b6 = new Button {
                Text = "6"
            };

            var b7 = new Button {
                Text = "7"
            };

            var b8 = new Button {
                Text = "8"
            };

            var b9 = new Button {
                Text = "9"
            };

            var bMultiply = new Button {
                Text = "X"
            };

            var bDivide = new Button {
                Text = "/"
            };

            var bAdd = new Button {
                Text = "+"
            };

            var bSubtract = new Button {
                Text = "-"
            };

            var bClear = new Button {
                Text = "Clear"
            };

            var bEquals = new Button {
                Text = "="
            };



            //output

            Grid.SetColumn(displayLabel, 1);

            Grid.SetRow(displayLabel, 0);

            Grid.SetColumnSpan(displayLabel, 4);

            //buttons

            Grid.SetColumn(b0, 1);

            Grid.SetColumn(b1, 2);

            Grid.SetColumn(b2, 3);

            Grid.SetColumn(b3, 1);

            Grid.SetColumn(b4, 2);

            Grid.SetColumn(b5, 3);

            Grid.SetColumn(b6, 1);

            Grid.SetColumn(b7, 2);

            Grid.SetColumn(b8, 3);

            Grid.SetColumn(b9, 1);

            Grid.SetColumn(bEquals, 2);

            Grid.SetColumn(bClear, 3);



            Grid.SetColumn(bAdd, 0);

            Grid.SetColumn(bSubtract, 0);

            Grid.SetColumn(bDivide, 0);

            Grid.SetColumn(bMultiply, 0);



            Grid.SetRow(b0, 4);

            Grid.SetRow(b1, 4);

            Grid.SetRow(b2, 4);

            Grid.SetRow(b3, 3);

            Grid.SetRow(b4, 3);

            Grid.SetRow(b5, 3);

            Grid.SetRow(b6, 2);

            Grid.SetRow(b7, 2);

            Grid.SetRow(b8, 2);

            Grid.SetRow(b9, 1);

            Grid.SetRow(bEquals, 1);

            Grid.SetRow(bClear, 1);

            Grid.SetRow(bAdd, 1);

            Grid.SetRow(bSubtract, 2);

            Grid.SetRow(bDivide, 3);

            Grid.SetRow(bMultiply, 4);



            layout.Children.Add(b0);

            layout.Children.Add(b1);

            layout.Children.Add(b2);

            layout.Children.Add(b3);

            layout.Children.Add(b4);

            layout.Children.Add(b5);

            layout.Children.Add(b6);

            layout.Children.Add(b7);

            layout.Children.Add(b8);

            layout.Children.Add(b9);

            layout.Children.Add(displayLabel);

            layout.Children.Add(bClear);

            layout.Children.Add(bEquals);

            layout.Children.Add(bAdd);

            layout.Children.Add(bSubtract);

            layout.Children.Add(bDivide);

            layout.Children.Add(bMultiply);



            //event handlers

            b0.Clicked += OnNumericButtonClicked;

            b1.Clicked += OnNumericButtonClicked;

            b2.Clicked += OnNumericButtonClicked;

            b3.Clicked += OnNumericButtonClicked;

            b4.Clicked += OnNumericButtonClicked;

            b5.Clicked += OnNumericButtonClicked;

            b6.Clicked += OnNumericButtonClicked;

            b7.Clicked += OnNumericButtonClicked;

            b8.Clicked += OnNumericButtonClicked;

            b9.Clicked += OnNumericButtonClicked;

            bEquals.Clicked += OnEqualButtonClicked;

            bClear.Clicked += OnClearButtonClicked;

            bAdd.Clicked += OnAddButtonClicked;

            bSubtract.Clicked += OnSubtractButtonClicked;

            bDivide.Clicked += OnDivideButtonClicked;

            bMultiply.Clicked += OnMultiplyButtonClicked;
        }
示例#2
0
        public MainPage()
        {
            Grid layout = new Grid {
                Padding         = new Thickness(5, 0),
                RowSpacing      = 1,
                ColumnSpacing   = 1,
                BackgroundColor = Color.Black,
            };

            // Setup the grid 4x6
            layout.RowDefinitions.Add(new RowDefinition {
                Height = new GridLength(2, GridUnitType.Star)
            });
            layout.RowDefinitions.Add(new RowDefinition {
                Height = new GridLength(1, GridUnitType.Star)
            });
            layout.RowDefinitions.Add(new RowDefinition {
                Height = new GridLength(1, GridUnitType.Star)
            });
            layout.RowDefinitions.Add(new RowDefinition {
                Height = new GridLength(1, GridUnitType.Star)
            });
            layout.RowDefinitions.Add(new RowDefinition {
                Height = new GridLength(1, GridUnitType.Star)
            });
            layout.RowDefinitions.Add(new RowDefinition {
                Height = new GridLength(1, GridUnitType.Star)
            });

            layout.ColumnDefinitions.Add(new ColumnDefinition {
                Width = new GridLength(1, GridUnitType.Star)
            });
            layout.ColumnDefinitions.Add(new ColumnDefinition {
                Width = new GridLength(1, GridUnitType.Star)
            });
            layout.ColumnDefinitions.Add(new ColumnDefinition {
                Width = new GridLength(1, GridUnitType.Star)
            });
            layout.ColumnDefinitions.Add(new ColumnDefinition {
                Width = new GridLength(1, GridUnitType.Star)
            });

            this.resultText = new Label {
                FontSize                = 48,
                FontAttributes          = FontAttributes.Bold,
                BackgroundColor         = Color.Black,
                TextColor               = Color.White,
                HorizontalTextAlignment = TextAlignment.End,
                VerticalTextAlignment   = TextAlignment.Center,
                LineBreakMode           = LineBreakMode.NoWrap,
            };
            Grid.SetColumnSpan(this.resultText, 4);
            layout.Children.Add(this.resultText);

            // Create the numbers.
            layout.Children.Add(CreateNumberButton("7", 1, 0));
            layout.Children.Add(CreateNumberButton("8", 1, 1));
            layout.Children.Add(CreateNumberButton("9", 1, 2));
            layout.Children.Add(CreateNumberButton("4", 2, 0));
            layout.Children.Add(CreateNumberButton("5", 2, 1));
            layout.Children.Add(CreateNumberButton("6", 2, 2));
            layout.Children.Add(CreateNumberButton("1", 3, 0));
            layout.Children.Add(CreateNumberButton("2", 3, 1));
            layout.Children.Add(CreateNumberButton("3", 3, 2));
            Button zero = CreateNumberButton("0", 4, 0);

            Grid.SetColumnSpan(zero, 3);
            layout.Children.Add(zero);

            // Create the operators
            layout.Children.Add(CreateOperatorButton("/", 1));
            layout.Children.Add(CreateOperatorButton("X", 2));
            layout.Children.Add(CreateOperatorButton("-", 3));
            layout.Children.Add(CreateOperatorButton("+", 4));

            // Create the clear button.
            Button clear = new Button()
            {
                Text            = "C",
                BackgroundColor = Color.FromRgb(0x80, 0x80, 0x80),
                TextColor       = Color.White,
                Font            = Font.SystemFontOfSize(36),
                BorderRadius    = 0,
            };

            Grid.SetRow(clear, 5);
            clear.Clicked += OnClear;
            layout.Children.Add(clear);

            // And the equals.
            Button equals = new Button()
            {
                Text            = "=",
                BackgroundColor = Color.FromHex("#FFA500"),
                TextColor       = Color.White,
                Font            = Font.SystemFontOfSize(36),
                BorderRadius    = 0,
            };

            Grid.SetRow(equals, 5);
            Grid.SetColumn(equals, 1);
            Grid.SetColumnSpan(equals, 3);
            equals.Clicked += OnCalculate;
            layout.Children.Add(equals);

            OnClear(null, EventArgs.Empty);
            Content = layout;
        }
示例#3
0
        public App()
        {
            InitializeComponent();

            #region Button styles

            var numButton = new Style(typeof(Button))
            {
                Setters =
                {
                    new Setter {
                        Property = Button.BackgroundColorProperty, Value = Color.White
                    },
                    new Setter {
                        Property = Button.FontSizeProperty, Value = 32
                    },
                    new Setter {
                        Property = Button.CornerRadiusProperty, Value = 0
                    }
                }
            };

            var functionButton = new Style(typeof(Button))
            {
                Setters =
                {
                    new Setter {
                        Property = Button.BackgroundColorProperty, Value = Color.Orange
                    },
                    new Setter {
                        Property = Button.FontSizeProperty, Value = 32
                    },
                    new Setter {
                        Property = Button.CornerRadiusProperty, Value = 0
                    }
                }
            };

            var darkerButton = new Style(typeof(Button))
            {
                Setters =
                {
                    new Setter {
                        Property = Button.BackgroundColorProperty, Value = Color.DarkGray
                    },
                    new Setter {
                        Property = Button.FontSizeProperty, Value = 32
                    },
                    new Setter {
                        Property = Button.CornerRadiusProperty, Value = 0
                    }
                }
            };

            #endregion

            #region Grid Setup
            var grid = new Grid {
                RowSpacing = 1, ColumnSpacing = 1, BackgroundColor = Color.Black
            };
            grid.RowDefinitions.Add(new RowDefinition {
                Height = new GridLength(1, GridUnitType.Star)
            });
            grid.RowDefinitions.Add(new RowDefinition {
                Height = new GridLength(1, GridUnitType.Star)
            });
            grid.RowDefinitions.Add(new RowDefinition {
                Height = new GridLength(1, GridUnitType.Star)
            });
            grid.RowDefinitions.Add(new RowDefinition {
                Height = new GridLength(1, GridUnitType.Star)
            });
            grid.RowDefinitions.Add(new RowDefinition {
                Height = new GridLength(1, GridUnitType.Star)
            });
            grid.ColumnDefinitions.Add(new ColumnDefinition {
                Width = new GridLength(1, GridUnitType.Star)
            });
            grid.ColumnDefinitions.Add(new ColumnDefinition {
                Width = new GridLength(1, GridUnitType.Star)
            });
            grid.ColumnDefinitions.Add(new ColumnDefinition {
                Width = new GridLength(1, GridUnitType.Star)
            });
            grid.ColumnDefinitions.Add(new ColumnDefinition {
                Width = new GridLength(1, GridUnitType.Star)
            });


            _calculationLabel = new Label
            {
                BackgroundColor         = Color.Transparent,
                Text                    = "0",
                TextColor               = Color.White,
                HorizontalTextAlignment = TextAlignment.End,
                VerticalTextAlignment   = TextAlignment.Center,
                FontSize                = 50,
                LineBreakMode           = LineBreakMode.HeadTruncation
            };

            grid.Children.Add(_calculationLabel, 0, 0);
            Grid.SetColumnSpan(_calculationLabel, 4);

            var sevenButton = new Button {
                Text = "7", Style = numButton
            };
            sevenButton.Clicked += (s, e) => AppendNum("7");
            grid.Children.Add(sevenButton, 0, 1);
            var eightButton = new Button {
                Text = "8", Style = numButton
            };
            eightButton.Clicked += (s, e) => AppendNum("8");
            grid.Children.Add(eightButton, 1, 1);
            var nineButton = new Button {
                Text = "9", Style = numButton
            };
            nineButton.Clicked += (s, e) => AppendNum("9");
            grid.Children.Add(nineButton, 2, 1);
            var divideButton = new Button {
                Text = "/", Style = functionButton
            };
            divideButton.Clicked += (s, e) => AddToEquation("/");
            grid.Children.Add(divideButton, 3, 1);

            var fourButton = new Button {
                Text = "4", Style = numButton
            };
            fourButton.Clicked += (s, e) => AppendNum("4");
            grid.Children.Add(fourButton, 0, 2);
            var fiveButton = new Button {
                Text = "5", Style = numButton
            };
            fiveButton.Clicked += (s, e) => AppendNum("5");
            grid.Children.Add(fiveButton, 1, 2);
            var sixButton = new Button {
                Text = "6", Style = numButton
            };
            sixButton.Clicked += (s, e) => AppendNum("6");
            grid.Children.Add(sixButton, 2, 2);
            var multiplyButton = new Button {
                Text = "*", Style = functionButton
            };
            multiplyButton.Clicked += (s, e) => AddToEquation("*");
            grid.Children.Add(multiplyButton, 3, 2);

            var oneButton = new Button {
                Text = "1", Style = numButton
            };
            oneButton.Clicked += (s, e) => AppendNum("1");
            grid.Children.Add(oneButton, 0, 3);
            var twoButton = new Button {
                Text = "2", Style = numButton
            };
            twoButton.Clicked += (s, e) => AppendNum("2");
            grid.Children.Add(twoButton, 1, 3);
            var threeButton = new Button {
                Text = "3", Style = numButton
            };
            threeButton.Clicked += (s, e) => AppendNum("3");
            grid.Children.Add(threeButton, 2, 3);
            var minusButton = new Button {
                Text = "-", Style = functionButton
            };
            minusButton.Clicked += (s, e) => AddToEquation("-");
            grid.Children.Add(minusButton, 3, 3);

            var zeroButton = new Button {
                Text = "0", Style = numButton
            };
            zeroButton.Clicked += (s, e) => AppendNum("0");
            grid.Children.Add(zeroButton, 0, 4);
            Grid.SetColumnSpan(zeroButton, 3);
            var plusButton = new Button {
                Text = "+", Style = functionButton
            };
            plusButton.Clicked += (s, e) => AddToEquation("+");
            grid.Children.Add(plusButton, 3, 4);


            var clearButton = new Button {
                Text = "C", Style = darkerButton
            };
            clearButton.Clicked += DeleteNum;
            grid.Children.Add(clearButton, 0, 5);
            var equalsButton = new Button {
                Text = "=", Style = functionButton
            };
            equalsButton.Clicked += Equate;
            grid.Children.Add(equalsButton, 1, 5);
            Grid.SetColumnSpan(equalsButton, 3);

            #endregion

            MainPage = new ContentPage
            {
                Content = grid
            };
        }