public SnookerBreakControl(SnookerMatchMetadata metadata, Label labelPointsLeft, BallsOnTable ballsOnTable, LargeNumberEntry2 entryA, LargeNumberEntry2 entryB) { this.metadata = metadata; this.sbcLabelPointsLeft = labelPointsLeft; this.localBallsOnTable = ballsOnTable; this.framePointsEntryA = entryA; this.framePointsEntryB = entryB; if ((this.framePointsEntryA.Number != null) && (this.framePointsEntryB.Number != null)) { curA = (int)this.framePointsEntryA.Number; curB = (int)this.framePointsEntryB.Number; } else { curA = 0; curB = 0; } updatePointsDiff(); /// pocketed balls /// this.panelPocketedBalls1 = new StackLayout() { HeightRequest = Config.SmallBallSize + (Config.IsTablet ? 5 : 2), Orientation = StackOrientation.Horizontal, VerticalOptions = LayoutOptions.Center, Spacing = Config.IsTablet ? 3 : 1, Padding = new Thickness(0), }; this.panelPocketedBalls2 = new StackLayout() { HeightRequest = Config.SmallBallSize + (Config.IsTablet ? 5 : 2), Orientation = StackOrientation.Horizontal, VerticalOptions = LayoutOptions.Center, Spacing = Config.IsTablet ? 3 : 1, Padding = new Thickness(0), }; this.panelPocketedBalls3 = new StackLayout() { HeightRequest = Config.SmallBallSize + (Config.IsTablet ? 5 : 2), Orientation = StackOrientation.Horizontal, VerticalOptions = LayoutOptions.Center, Spacing = Config.IsTablet ? 3 : 1, Padding = new Thickness(0), }; this.labelPoints = new BybLabel() { Text = "", TextColor = Config.ColorTextOnBackground, VerticalOptions = LayoutOptions.Center, }; this.labelNoPoints = new BybLabel() { IsVisible = true, Text = "Tap on balls, then swipe here to finish break", //Text = "Tap on balls\r\nThen swipe here to assign to a player", //Text = "Tap balls, then swipe here to assign to player", TextColor = Config.ColorGrayTextOnWhite, //FontFamily = Config.FontFamily, //FontSize = Config.DefaultFontSize - 1, VerticalOptions = LayoutOptions.Fill, VerticalTextAlignment = TextAlignment.Center, HorizontalOptions = LayoutOptions.Fill, HorizontalTextAlignment = TextAlignment.Center, }; this.buttonDelete = new BybLabel() { Text = "X", TextColor = Config.ColorTextOnBackground, WidthRequest = Config.IsTablet ? 35 : 25, HeightRequest = Config.IsTablet ? 35 : 30, HorizontalTextAlignment = TextAlignment.Center, VerticalTextAlignment = TextAlignment.Center, }; this.buttonDelete.GestureRecognizers.Add(new TapGestureRecognizer() { Command = new Command(() => { this.buttonDelete_Clicked(this, EventArgs.Empty); }) }); this.foulCheckbox = new CheckBox() { Checked = false, DefaultText = "- tap here if a foul -", UncheckedText = "- tap here if a foul -", CheckedText = "Foul", FontSize = Config.DefaultFontSize, FontName = Config.FontFamily, HorizontalOptions = LayoutOptions.Start, VerticalOptions = LayoutOptions.Center, }; this.foulCheckbox.CheckedChanged += (s1, e1) => { updateFoul(this.foulCheckbox.Checked); }; // container for balls and delete button var panelPocketedBallsActualBallsContainer = new StackLayout() { Orientation = StackOrientation.Horizontal, VerticalOptions = LayoutOptions.FillAndExpand, HorizontalOptions = LayoutOptions.Center, Spacing = 0, Padding = new Thickness(0), //BackgroundColor = Color.Yellow, Children = { this.labelNoPoints, this.labelPoints, new StackLayout() { Orientation = StackOrientation.Vertical, Padding = new Thickness(0), Spacing = 0, HorizontalOptions = LayoutOptions.FillAndExpand, VerticalOptions = LayoutOptions.Center, Children = { this.panelPocketedBalls1, this.panelPocketedBalls2, this.panelPocketedBalls3, } }, this.buttonDelete, this.foulCheckbox } }; /// the panel with pocketed balls and tips /// // draggable panel this.swipePanel = new SwipePanel( panelPocketedBallsActualBallsContainer, "Add to " + (this.metadata.OpponentAthleteName ?? "Opponent"), "Add to " + (this.metadata.PrimaryAthleteName ?? "You"), this.panelPocketedBallsHeight) { Opacity = 0.01, HeightRequest = this.panelPocketedBallsHeight, Padding = new Thickness(0, 0, 0, 0), HorizontalOptions = LayoutOptions.FillAndExpand, VerticalOptions = LayoutOptions.Start, BackgroundColor = Config.ColorBlackBackground, }; this.swipePanel.breakOwnerChanged += swipePanel_breakOwnerChanged; this.swipePanel.DraggedLeft += () => { if (true == this.swipePanel.getIsOpponentBreak()) { // if Swiped left, but was counting for opponent: // - change the break owner first // - and update the frame score this.swipePanel.setIsOpponentBreak(false); updateOwnerChanged(); } localBallsOnTable.breakFinished(); updatePointsDiff(); if (this.DoneLeft != null) { this.DoneLeft(this, EventArgs.Empty); } }; this.swipePanel.DraggedRight += () => { if (false == this.swipePanel.getIsOpponentBreak()) { // if Swiped right, but was counting for "me": // - change the break owner first // - and update the frame score this.swipePanel.setIsOpponentBreak(true); updateOwnerChanged(); } localBallsOnTable.breakFinished(); updatePointsDiff(); if (this.DoneRight != null) { this.DoneRight(this, EventArgs.Empty); } }; /// balls /// buttonsBalls = new List <Button>(); foreach (var color in Config.BallColors) { Color textColor = Color.White; if (Config.BallColors.IndexOf(color) == 0) { textColor = Color.Gray; } if (Config.BallColors.IndexOf(color) == 2) { textColor = Color.Gray; } Color borderColor = Color.Black; if (Config.BallColors.IndexOf(color) == 7) { borderColor = Config.ColorTextOnBackgroundGrayed; } var buttonBall = new BybButton { Text = Config.BallColors.IndexOf(color) == 0 ? "x" : Config.BallColors.IndexOf(color).ToString(), BackgroundColor = color, BorderColor = borderColor, TextColor = textColor, BorderWidth = 1, BorderRadius = (int)(sizeOfBalls / 2), HeightRequest = sizeOfBalls, MinimumHeightRequest = sizeOfBalls, WidthRequest = sizeOfBalls, MinimumWidthRequest = sizeOfBalls, FontFamily = Config.FontFamily, FontSize = Config.LargerFontSize, FontAttributes = Config.BallColors.IndexOf(color) == 1 ? FontAttributes.Bold : FontAttributes.None }; buttonBall.Clicked += buttonBall_Clicked; buttonsBalls.Add(buttonBall); } this.grid = new Grid() { HorizontalOptions = LayoutOptions.Fill, VerticalOptions = LayoutOptions.Fill, ColumnSpacing = 0, RowSpacing = 0, Padding = new Thickness(0, padding, 0, 0), BackgroundColor = Config.ColorBlackBackground, ColumnDefinitions = { //new ColumnDefinition() { Width = new GridLength(90, GridUnitType.Absolute) }, new ColumnDefinition() { Width = new GridLength(1, GridUnitType.Star) }, //new ColumnDefinition() { Width = new GridLength(90, GridUnitType.Absolute) }, }, RowDefinitions = { new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) } }, }; this.buildPanelBalls(); //grid.Children.Add(panelBalls, 0, 0);//1, 0); this.HelpButtonControl = new HelpButtonControl() { HorizontalOptions = LayoutOptions.Start, Padding = new Thickness(0, 0, 0, 0), }; this.label_ballsOnTable = new BybLabel() { Text = "On table", TextColor = Config.ColorGrayTextOnWhite, VerticalOptions = LayoutOptions.Fill, VerticalTextAlignment = TextAlignment.Start, HorizontalOptions = LayoutOptions.Fill, HorizontalTextAlignment = TextAlignment.Start, }; // add a ball this.label_redsOnTable = new BybLabel() { Text = "15", TextColor = Config.ColorTextOnBackground, VerticalOptions = LayoutOptions.Center, }; int ballScore = 1; // or for lowest colored Color color2 = Config.BallColors[ballScore]; Color borderColor2 = color2; Color textColor2 = Color.Black; int ballSizeMedium = (int)(Config.SmallBallSize * 1.5); redBall = new BybButton { IsEnabled = true, Text = "", BackgroundColor = color2, BorderColor = borderColor2, FontFamily = Config.FontFamily, FontSize = Config.LargerFontSize, TextColor = textColor2, BorderWidth = 1, BorderRadius = (int)(ballSizeMedium / 2), HeightRequest = ballSizeMedium, MinimumHeightRequest = ballSizeMedium, WidthRequest = ballSizeMedium, MinimumWidthRequest = ballSizeMedium, VerticalOptions = LayoutOptions.Center, HorizontalOptions = LayoutOptions.Center }; redBall.Clicked += (object sender, EventArgs e) => { Console.WriteLine("Red ball clicked "); pickerReds.IsEnabled = true; pickerReds.Focus(); }; this.pickerReds = new BybNoBorderPicker() { HorizontalOptions = LayoutOptions.FillAndExpand, VerticalOptions = LayoutOptions.Center, IsVisible = false, IsEnabled = false }; this.pickerReds.Items.Add("0"); this.pickerReds.Items.Add("1"); this.pickerReds.Items.Add("2"); this.pickerReds.Items.Add("3"); this.pickerReds.Items.Add("4"); this.pickerReds.Items.Add("5"); this.pickerReds.Items.Add("6"); this.pickerReds.Items.Add("7"); this.pickerReds.Items.Add("8"); this.pickerReds.Items.Add("9"); this.pickerReds.Items.Add("10"); this.pickerReds.Items.Add("11"); this.pickerReds.Items.Add("12"); this.pickerReds.Items.Add("13"); this.pickerReds.Items.Add("14"); this.pickerReds.Items.Add("15"); this.pickerReds.SelectedIndex = 0; this.pickerReds.SelectedIndexChanged += pickerReds_SelectedIndexChanged; this.pickerColors = new BybNoBorderPicker() { HorizontalOptions = LayoutOptions.FillAndExpand, VerticalOptions = LayoutOptions.Center, //HeightRequest = 50 }; this.pickerColors.Items.Add("2"); this.pickerColors.Items.Add("3"); this.pickerColors.Items.Add("4"); this.pickerColors.Items.Add("5"); this.pickerColors.Items.Add("6"); this.pickerColors.Items.Add("7"); this.pickerColors.SelectedIndex = 0; this.pickerColors.SelectedIndexChanged += pickerColors_SelectedIndexChanged; // add colored ball ballScore = 2; // or for lowest colored color2 = Config.BallColors[ballScore]; borderColor2 = color2; textColor2 = Color.Gray; coloredBall = new BybButton { IsEnabled = true, Text = "", BackgroundColor = color2, BorderColor = borderColor2, FontFamily = Config.FontFamily, FontSize = Config.LargerFontSize, TextColor = textColor2, BorderWidth = 1, BorderRadius = (int)(ballSizeMedium / 2), HeightRequest = ballSizeMedium, MinimumHeightRequest = ballSizeMedium, WidthRequest = ballSizeMedium, MinimumWidthRequest = ballSizeMedium, VerticalOptions = LayoutOptions.Center, HorizontalOptions = LayoutOptions.Center }; coloredBall.Clicked += (object sender, EventArgs e) => { if (0 != localBallsOnTable.numberOfReds) { Console.WriteLine("Colored ball clicked: but there are reds on the table, so ignore"); } else { Console.WriteLine("Colored ball clicked "); pickerColors.IsEnabled = true; pickerColors.Focus(); } }; this.stack_ballsOnTable = new StackLayout { Orientation = StackOrientation.Vertical, Padding = new Thickness(Config.IsTablet ? 30 : 15, 0, 0, 0), Spacing = 10, //HorizontalOptions = LayoutOptions.Center, HorizontalOptions = LayoutOptions.Start, VerticalOptions = LayoutOptions.Center, Children = { label_ballsOnTable, new StackLayout { Orientation = StackOrientation.Horizontal, HorizontalOptions = LayoutOptions.Start, Spacing = buttonSpacing, Padding = new Thickness(0), Children = { redBall, label_redsOnTable, pickerReds } }, new StackLayout { Orientation = StackOrientation.Horizontal, HorizontalOptions = LayoutOptions.Start, Spacing = buttonSpacing, Padding = new Thickness(0), Children = { coloredBall, pickerColors } }, } }; this.VoiceButtonControl = new VoiceButtonControl() { HorizontalOptions = LayoutOptions.Start, Padding = new Thickness(0, 0, 0, 0), }; grid.Children.Add(new StackLayout() { Orientation = StackOrientation.Vertical, Padding = new Thickness(Config.IsTablet ? 30 : 15, 0, 0, 0), Spacing = 10, HorizontalOptions = LayoutOptions.Start, VerticalOptions = LayoutOptions.Center, Children = { this.stack_ballsOnTable, (new BoxView() { HeightRequest = 40, BackgroundColor = Config.ColorBlackBackground, }), this.HelpButtonControl, this.VoiceButtonControl, } }, 0, 0); /// content /// this.BackgroundColor = Config.ColorBlackBackground; this.Padding = new Thickness(0); this.Spacing = 0; this.Orientation = StackOrientation.Vertical; this.Children.Add(new BoxView() { HeightRequest = 1, BackgroundColor = Config.ColorBackground, }); this.Children.Add(this.swipePanel); this.Children.Add(new BoxView() { HeightRequest = 1, BackgroundColor = Config.ColorBackground, }); this.Children.Add(grid); this.updateControls(); // update pickers updateBallsOnTable_ballsChanged(); }
void init() { /// top panel /// this.buttonBack = new BybBackButton() { LabelText = Config.App == MobileAppEnum.SnookerForVenues ? "All frames" : "" }; this.buttonBack.Clicked += (s1, e1) => { if (this.UserTappedBack != null) { UserTappedBack(); } }; this.labelTop = new BybLabel() { Text = "Frame " + (MatchScore.FrameScores.IndexOf(CurrentFrameScore) + 1).ToString(), TextColor = Color.White, FontFamily = Config.FontFamily, FontSize = Config.LargerFontSize, HorizontalOptions = LayoutOptions.Center, VerticalOptions = LayoutOptions.Center, }; this.labelDone = new BybLabel() { Text = "Done", TextColor = Color.White, FontFamily = Config.FontFamily, FontSize = Config.LargerFontSize, HorizontalOptions = LayoutOptions.End, VerticalOptions = LayoutOptions.FillAndExpand, HorizontalTextAlignment = TextAlignment.End, VerticalTextAlignment = TextAlignment.Center, }; Grid buttonDone = new Grid() { Padding = new Thickness(0, 0, Config.IsTablet ? 20 : 10, 0), HorizontalOptions = LayoutOptions.FillAndExpand, VerticalOptions = LayoutOptions.FillAndExpand, //HasShadow = false, BackgroundColor = Config.ColorBlackBackground, //Content = this.labelDone, Children = { this.labelDone } }; buttonDone.GestureRecognizers.Add(new TapGestureRecognizer { Command = new Command(() => { if (this.UserTappedDone != null) { UserTappedDone(); } }) }); this.panelTop = new Grid() { BackgroundColor = Config.ColorBlackBackground, HorizontalOptions = LayoutOptions.FillAndExpand, VerticalOptions = LayoutOptions.Fill, Padding = new Thickness(0, 20, 0, 0), ColumnSpacing = 0, RowSpacing = 0, RowDefinitions = { new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) }, }, ColumnDefinitions = { new ColumnDefinition() { Width = new GridLength(Config.App == MobileAppEnum.SnookerForVenues ? 200 : 100, GridUnitType.Absolute) }, new ColumnDefinition() { Width = new GridLength(1, GridUnitType.Star) }, new ColumnDefinition() { Width = new GridLength(Config.App == MobileAppEnum.SnookerForVenues ? 200 : 100, GridUnitType.Absolute) }, } }; panelTop.Children.Add(buttonBack, 0, 0); panelTop.Children.Add(this.labelTop, 1, 0); panelTop.Children.Add(buttonDone, 2, 0); if (Config.App == MobileAppEnum.SnookerForVenues) { // add a horizontal line panelTop.Children.Add(new BoxView() { HeightRequest = 1, BackgroundColor = Config.ColorBackground, HorizontalOptions = LayoutOptions.FillAndExpand, VerticalOptions = LayoutOptions.End, }, 0, 3, 0, 1); } /// panel with the frame score, inside secondPanel /// this.entryCurrentFrameA = new LargeNumberEntry2(Config.ColorBlackBackground) { BackgroundColor = Config.ColorBlackBackground, HorizontalOptions = LayoutOptions.Fill, VerticalOptions = LayoutOptions.FillAndExpand, Padding = new Thickness(0, Config.IsTablet ? 15 : 5, 0, 0), WidthRequest = Config.App == MobileAppEnum.SnookerForVenues ? 200 : (Config.IsTablet ? 70 : 60), TextAlignment = TextAlignment.End, }; this.entryCurrentFrameB = new LargeNumberEntry2(Config.ColorBlackBackground) { BackgroundColor = Config.ColorBlackBackground, HorizontalOptions = LayoutOptions.Fill, VerticalOptions = LayoutOptions.FillAndExpand, Padding = new Thickness(0, Config.IsTablet ? 15 : 5, 0, 0), WidthRequest = Config.App == MobileAppEnum.SnookerForVenues ? 200 : (Config.IsTablet ? 70 : 60), TextAlignment = TextAlignment.Start, }; this.labelMatchScore = new BybLabel() { //Text = "Edit score", Text = "Match score", TextColor = Config.ColorTextOnBackgroundGrayed, HorizontalOptions = LayoutOptions.Center, }; this.labelMatchScoreDigits = new BybLabel() { //Text = "Edit score", Text = (this.MatchScore.MatchScoreA).ToString() + ":" + (this.MatchScore.MatchScoreB).ToString(), TextColor = Config.ColorTextOnBackgroundGrayed, HorizontalOptions = LayoutOptions.Center, }; /* * this.labelTapToEditFrameScore = new BybLabel () * { * //Text = "Edit score", * Text = "Frame score", * TextColor = Config.ColorTextOnBackgroundGrayed, * HorizontalOptions = LayoutOptions.Center, * }; */ this.labelPointsLeft = new BybLabel() { Text = "", TextColor = Config.ColorTextOnBackgroundGrayed, HorizontalOptions = LayoutOptions.Center, VerticalTextAlignment = TextAlignment.Center, }; if (Config.IsTablet) { this.labelPointsLeft.HeightRequest = 40; } this.entryCurrentFrameA.FocusedOnNumber += entryCurrentFrameA_FocusedOnNumber; this.entryCurrentFrameB.FocusedOnNumber += entryCurrentFrameB_FocusedOnNumber; this.entryCurrentFrameA.UnfocusedFromNumber += entryCurrentFrameA_UnfocusedFromNumber; this.entryCurrentFrameB.UnfocusedFromNumber += entryCurrentFrameB_UnfocusedFromNumber; this.entryCurrentFrameA.NumberChanged += entryCurrentFrameA_NumberChanged; this.entryCurrentFrameB.NumberChanged += entryCurrentFrameB_NumberChanged; this.panelFrame = new StackLayout() { IsVisible = true, Orientation = StackOrientation.Vertical, HorizontalOptions = LayoutOptions.Center, VerticalOptions = LayoutOptions.Center, Spacing = 0, Padding = new Thickness(0, 0, 0, 0), //BackgroundColor = Color.Olive, Children = { this.labelMatchScore, this.labelMatchScoreDigits, //this.labelTapToEditFrameScore, new StackLayout() { //BackgroundColor = Color.Red, Orientation = StackOrientation.Horizontal, Spacing = 0, Padding = new Thickness(0, 0, 0, 0), HorizontalOptions = LayoutOptions.Center, Children = { this.entryCurrentFrameA, new BybLabel() { Text = ":", FontSize = Config.App == MobileAppEnum.SnookerForVenues ? 50 : Config.VeryLargeFontSize, TextColor = Config.ColorTextOnBackgroundGrayed, WidthRequest = 15, HeightRequest = Config.App == MobileAppEnum.SnookerForVenues ? 100 : 38, VerticalOptions = LayoutOptions.End, HorizontalTextAlignment = TextAlignment.Center, VerticalTextAlignment = TextAlignment.Center, }, this.entryCurrentFrameB, } }, this.labelPointsLeft, } }; /// second panel /// this.imageYou = new BybPersonImage() { HorizontalOptions = LayoutOptions.Center, VerticalOptions = LayoutOptions.Center, WidthRequest = imageSize, HeightRequest = imageSize, BackgroundColor = Color.Transparent, Background = BackgroundEnum.Black, }; this.imageOpponent = new BybPersonImage() { HorizontalOptions = LayoutOptions.Center, VerticalOptions = LayoutOptions.Center, WidthRequest = imageSize, HeightRequest = imageSize, BackgroundColor = Color.Transparent, Background = BackgroundEnum.Black, }; this.imageYou.GestureRecognizers.Add(new TapGestureRecognizer { Command = new Command(() => { this.imageYou_Clicked(); }), NumberOfTapsRequired = 1 }); this.imageOpponent.GestureRecognizers.Add(new TapGestureRecognizer { Command = new Command(() => { this.imageOpponent_Clicked(); }), NumberOfTapsRequired = 1 }); this.panelSecond = new Grid { BackgroundColor = Config.ColorBlackBackground, HorizontalOptions = LayoutOptions.Fill, VerticalOptions = LayoutOptions.Fill, Padding = new Thickness(15, panelSecondPaddingTop, 15, panelSecondPaddingBottom), ColumnSpacing = 0, RowSpacing = 0, ColumnDefinitions = { new ColumnDefinition { Width = new GridLength(1, GridUnitType.Star) }, new ColumnDefinition { Width = new GridLength(1, GridUnitType.Auto) }, new ColumnDefinition { Width = new GridLength(1, GridUnitType.Star) }, }, RowDefinitions = { new RowDefinition { Height = new GridLength(1, GridUnitType.Star) }, }, }; panelSecond.Children.Add(this.imageYou, 0, 0); panelSecond.Children.Add(this.panelFrame, 1, 0); panelSecond.Children.Add(this.imageOpponent, 2, 0); /// a panel for entering frame score /// this.labelEnteringFrameScore = new BybLabel { Text = "", TextColor = Config.ColorTextOnBackground, HeightRequest = 40, HorizontalOptions = LayoutOptions.Center, HorizontalTextAlignment = TextAlignment.Center, }; panelEnteringFrameScore = new StackLayout() { IsVisible = false, Orientation = StackOrientation.Vertical, HorizontalOptions = LayoutOptions.FillAndExpand, Padding = new Thickness(0, 20, 0, 0), Spacing = 5, BackgroundColor = Config.ColorBlackBackground, Children = { this.labelEnteringFrameScore, new BybLabel { Text = "Tap here when done.", TextColor = Config.ColorTextOnBackground, HorizontalOptions = LayoutOptions.Center, HorizontalTextAlignment = TextAlignment.Center, //VerticalTextAlignment = TextAlignment.Center } } }; /// the current snooker break /// this.snookerBreakControl = new SnookerBreakControl(new MetadataHelper().FromScoreForYou(this.MatchScore), labelPointsLeft, CurrentFrameScore.ballsOnTable, entryCurrentFrameA, entryCurrentFrameB); this.snookerBreakControl.Padding = new Thickness(0, 0, 0, 0); this.snookerBreakControl.VerticalOptions = LayoutOptions.FillAndExpand; this.snookerBreakControl.HorizontalOptions = LayoutOptions.FillAndExpand; this.snookerBreakControl.DoneLeft += snookerBreakControl_DoneLeft; this.snookerBreakControl.DoneRight += snookerBreakControl_DoneRight; this.snookerBreakControl.BallsChanged += snookerBreakControl_BallsChanged; /// list of past breaks /// this.listOfBreaksInMatchControl = new ListOfBreaksInMatchControl(); this.listOfBreaksInMatchControl.Padding = new Thickness(Config.IsTablet ? 15 : 0, 0, Config.IsTablet ? 15 : 0, 0); this.listOfBreaksInMatchControl.UserTappedOnBreak += this.listOfBreaksInMatchControl_UserTappedOnBreak; this.labelPastBreaks = new SimpleButtonWithLittleDownArrow(false) { Text = "Show previous", IsBold = false, //IsSmallerFont = true, HeightRequest = heightOfLabelPastBreaks, HorizontalOptions = LayoutOptions.Center, VerticalOptions = LayoutOptions.Center, IsVisible = Config.App != MobileAppEnum.SnookerForVenues, }; this.labelPastBreaks2 = new BybLabel() { IsVisible = false, Text = "", TextColor = Config.ColorTextOnBackgroundGrayed, HeightRequest = heightOfLabelPastBreaks, HorizontalOptions = LayoutOptions.Center, VerticalOptions = LayoutOptions.Center, }; this.panelPastBreaks = new StackLayout() { Orientation = StackOrientation.Vertical, HorizontalOptions = LayoutOptions.Fill, VerticalOptions = LayoutOptions.Start, Spacing = 0, BackgroundColor = Config.ColorBackground,//Color.Black, Children = { new BoxView() { HeightRequest = 1, BackgroundColor = Config.ColorBackground, }, this.labelPastBreaks, // new Frame // { // IsVisible = Config.App != MobileAppEnum.SnookerForVenues, // HeightRequest = heightOfLabelPastBreaks, // Padding = new Thickness(0), // HorizontalOptions = LayoutOptions.Center, // VerticalOptions = LayoutOptions.Start, // HasShadow = false, // BackgroundColor = Color.Transparent, // Content = this.labelPastBreaks, // }, this.labelPastBreaks2, this.listOfBreaksInMatchControl, } }; this.labelPastBreaks.Clicked += (s1, e1) => { this.panelPastBreaksTapped(); }; this.panelPastBreaks.GestureRecognizers.Add(new TapGestureRecognizer() { Command = new Command(() => { this.panelPastBreaksTapped(); }) }); /// content /// this.absoluteLayout = new AbsoluteLayout() { VerticalOptions = LayoutOptions.FillAndExpand, }; this.absoluteLayout.Children.Add(this.panelTop); this.absoluteLayout.Children.Add(this.panelSecond); this.absoluteLayout.Children.Add(this.snookerBreakControl); this.absoluteLayout.Children.Add(this.panelPastBreaks); this.absoluteLayout.Children.Add(this.panelEnteringFrameScore); Content = this.absoluteLayout; this.Padding = new Thickness(0, 0, 0, 0); this.BackgroundColor = Color.Black; this.snookerBreakControl.VoiceButtonControl.PageTopLevelLayout = absoluteLayout; this.snookerBreakControl.HelpButtonControl.PageTopLevelLayout = absoluteLayout; }