Exemplo n.º 1
0
        private void InitializeGrid(Rect rect)
        {
            Console.WriteLine($"Size {rect.Size}");
            if (rect.Size.Width <= 0)
            {
                Console.WriteLine($"ColumnDefinitions {ColumnDefinitions}");
                Console.WriteLine($"RowDefinitions {RowDefinitions}");
                return;
            }

            double twoColumnsTriggerWidth = 500;
            double aspectRatio            = 0.5;

            if (rect.Size.Width < twoColumnsTriggerWidth)
            {
                var columnDefinitionsStr = "1*,1*";

                var columnWidth       = rect.Size.Width / 2;
                var itemHeight        = columnWidth * aspectRatio;
                var rowDefinitionsStr = $"{ToString(itemHeight)},{ToString(itemHeight)}";

                ColumnDefinitions = ColumnDefinitions.Parse(columnDefinitionsStr);
                RowDefinitions    = RowDefinitions.Parse(rowDefinitionsStr);
                //var columnDefinitions = ColumnDefinitions.Parse(columnDefinitionsStr);
                //var rowDefinitions = RowDefinitions.Parse(rowDefinitionsStr);
                //SetColumnDefinitions(columnDefinitions);
                //SetRowDefinitions(rowDefinitions);
                //InvalidateMeasure();

                Console.WriteLine($"ColumnDefinitions {columnDefinitionsStr}");
                Console.WriteLine($"RowDefinitions {rowDefinitionsStr}");
            }
            else
            {
                var columnDefinitionsStr = "1*,1*,1*";

                var columnWidth       = rect.Size.Width / 3;
                var itemHeight        = columnWidth * aspectRatio;
                var rowDefinitionsStr = $"{ToString(itemHeight)},{ToString(itemHeight)}";

                ColumnDefinitions = ColumnDefinitions.Parse(columnDefinitionsStr);
                RowDefinitions    = RowDefinitions.Parse(rowDefinitionsStr);
                //var columnDefinitions = ColumnDefinitions.Parse(columnDefinitionsStr);
                //var rowDefinitions = RowDefinitions.Parse(rowDefinitionsStr);
                //SetColumnDefinitions(columnDefinitions);
                //SetRowDefinitions(rowDefinitions);
                //InvalidateMeasure();

                Console.WriteLine($"ColumnDefinitions {columnDefinitionsStr}");
                Console.WriteLine($"RowDefinitions {rowDefinitionsStr}");
            }
        }
Exemplo n.º 2
0
        void Update_LaunchpadModel()
        {
            Grid?.Children.Clear();

            int buttons = Preferences.LaunchpadModel.GridSize();

            IEnumerable <string> ones  = Enumerable.Range(0, buttons).Select(i => "*");
            IEnumerable <string> zeros = Enumerable.Range(0, 10 - buttons).Select(i => "0");

            View.Child = Grid = new Grid()
            {
                RowDefinitions = RowDefinitions.Parse(
                    String.Join(
                        ",",
                        ones.Concat(zeros).ToArray()
                        )
                    ),
                ColumnDefinitions = ColumnDefinitions.Parse(
                    String.Join(
                        ",",
                        zeros.Concat(ones).ToArray()
                        )
                    )
            };

            for (int i = 0; i < 100; i++)
            {
                int mouse = Buttons[i].UpdateModel();

                if (mouse < 0)
                {
                    Buttons[i].PointerPressed -= MouseDown;
                }
                else if (mouse > 0)
                {
                    Buttons[i].PointerPressed += MouseDown;
                }

                Grid.Children.Add(Buttons[i]);
            }

            ModeLight.IsVisible = Preferences.LaunchpadModel.HasModeLight();

            Update_LaunchpadStyle();
        }