Exemple #1
0
        /// <summary>
        /// 创建矩阵后操作GUI
        /// </summary>
        private void create_matrix()
        {
            if (auto_R_Button.IsChecked == true)
            {
                hill = new Algorithm.Hill(Convert.ToInt32(input_level.Text));
            }
            else
            {
                hill = new Algorithm.Hill(Convert.ToInt32(input_level.Text), Algorithm.Hill.getNewMatrix(Convert.ToInt32(input_level.Text)));
            }
            clear_matrix();
            for (int i = 0; i < hill.Level; ++i)
            {
                RowDefinition    rd1 = new RowDefinition();
                ColumnDefinition cd1 = new ColumnDefinition();
                matrix_grid.RowDefinitions.Add(rd1);
                matrix_grid.ColumnDefinitions.Add(cd1);
                RowDefinition    rd2 = new RowDefinition();
                ColumnDefinition cd2 = new ColumnDefinition();
                inverse_matrix_grid.RowDefinitions.Add(rd2);
                inverse_matrix_grid.ColumnDefinitions.Add(cd2);
            }
            for (int i = 0; i < hill.Level; ++i)
            {
                for (int j = 0; j < hill.Level; ++j)
                {
                    TextBox item_matrix = new TextBox();
                    item_matrix.SetValue(Grid.RowProperty, i);
                    item_matrix.SetValue(Grid.ColumnProperty, j);
                    item_matrix.Foreground = new SolidColorBrush(Colors.White);
                    //item_matrix.FontSize = 24;
                    item_matrix.SetValue(TextBox.HorizontalAlignmentProperty, HorizontalAlignment.Center);
                    item_matrix.SetValue(TextBox.VerticalAlignmentProperty, VerticalAlignment.Center);
                    item_matrix.Background = new SolidColorBrush(Colors.Transparent);

                    if (manual_R_Button.IsChecked == true)
                    {
                        times_create_matrix.Text    = "请输入矩阵";
                        item_matrix.BorderThickness = new Thickness(1);
                    }
                    else
                    {
                        //  自动模式下只读
                        item_matrix.IsReadOnly      = true;
                        item_matrix.Text            = hill.Matrix[i][j].ToString();
                        item_matrix.BorderThickness = new Thickness(0);
                        times_create_matrix.Text    = "矩阵次数:" + hill.Times;
                        create_inverse_matrix();
                    }
                    matrix_grid.Children.Add(item_matrix);
                }
            }
        }
Exemple #2
0
 private void recreate_matrix_Click(object sender, RoutedEventArgs e)
 {
     if (auto_R_Button.IsChecked == true)
     {
         create_matrix();
         transform();
     }
     else
     {
         int      level        = Convert.ToInt32(input_level.Text);
         long[][] input_matrix = Algorithm.Hill.getNewMatrix(level);
         foreach (TextBox tb in matrix_grid.Children)
         {
             int i = (int)tb.GetValue(Grid.RowProperty);
             int j = (int)tb.GetValue(Grid.ColumnProperty);
             input_matrix[i][j] = (Convert.ToInt32(tb.Text));
         }
         hill = new Algorithm.Hill(level, input_matrix);
         create_inverse_matrix();
         transform();
     }
 }