private void Scan_Click(object sender, RoutedEventArgs e) { var scanner = new Scanner(Editor.Text); var result = new ResultWindow(scanner); result.Show(); }
public ResultWindow(Scanner scanner) { InitializeComponent(); // Create the Grid var dynamicGrid = new Grid(); // Create Columns var gridCol1 = new ColumnDefinition { Width = new GridLength(1, GridUnitType.Star) }; var gridCol2 = new ColumnDefinition { Width = new GridLength(1, GridUnitType.Star) }; dynamicGrid.ColumnDefinitions.Add(gridCol1); dynamicGrid.ColumnDefinitions.Add(gridCol2); // Create header row var gridRow1 = new RowDefinition { Height = GridLength.Auto}; dynamicGrid.RowDefinitions.Add(gridRow1); // Add first column header var txtBlock1 = new TextBlock { Text = "Value", FontSize = 14, FontWeight = FontWeights.Bold, Foreground = new SolidColorBrush(Colors.Green), VerticalAlignment = VerticalAlignment.Center, HorizontalAlignment = HorizontalAlignment.Center }; Grid.SetRow(txtBlock1, 0); Grid.SetColumn(txtBlock1, 0); // Add second column header var txtBlock2 = new TextBlock { Text = "Type", FontSize = 14, FontWeight = FontWeights.Bold, Foreground = new SolidColorBrush(Colors.Green), VerticalAlignment = VerticalAlignment.Center, HorizontalAlignment = HorizontalAlignment.Center }; Grid.SetRow(txtBlock2, 0); Grid.SetColumn(txtBlock2, 1); // Add column headers to the Grid dynamicGrid.Children.Add(txtBlock1); dynamicGrid.Children.Add(txtBlock2); // Create rows for tokens var token = scanner.GetNextToken(); var i = 1; while (token != null) { var gridRow = new RowDefinition { Height = GridLength.Auto }; dynamicGrid.RowDefinitions.Add(gridRow); var value = new Label { Content = token.Value, HorizontalAlignment = HorizontalAlignment.Center }; var type = new Label { Content = token.Type, HorizontalAlignment = HorizontalAlignment.Center }; Grid.SetRow(value, i); Grid.SetRow(type, i); Grid.SetColumn(value, 0); Grid.SetColumn(type, 1); dynamicGrid.Children.Add(value); dynamicGrid.Children.Add(type); token = scanner.GetNextToken(); i++; } // Display grid into a Window Viewer.Content = dynamicGrid; }