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}"); } }
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(); }