2013-08-22 2 views
0

Я хочу создать XAML сетки элемент из количества элементовНабор строк и столбцов определений по количеству элементов

т.е. если у меня есть 6 элементов, я должен сделать 3 колонки и 2 строки (или наоборот)

Но мое количество элементов (вход) может быть любое значение, может быть 7, 8, 19 и т.д.

Как я могу детерминированным, сколько столбцов и строк мне нужно?

EDIT: Дополнительная информация: Я хочу, чтобы мои сетки в виде квадрата, насколько это возможно, не имеет значения, возможные пустые пятна

+0

Что представляет собой приемлемый размер сетки? Например, мы можем просто создать 7x1 для 7 элементов, 8x1 для 8 элементов .etcetc, но я уверен, что это не то, что вы хотите. сколько строк/столбцов вы хотите для набора элементов 7, 8, 19 и почему? – Calpis

+0

@Calpis как можно квадратный –

+0

поэтому для набора из 23 элементов, вы хотите 6x4 или 5x5? 5x5 является квадратным, но имеет 2 пустых места, где 6x4 имеет только 1 пустое место. – Calpis

ответ

1

Использование Math.Sqrt:

int nElements = 6; 
int nColumns = (int)Math.Ceiling(Math.Sqrt(nElements)); 
int nRows; 
if (nElements <= nColumns*(nColumns-1)) // last row remains empty 
    nRows = nColumns-1;     // eliminate it 
else 
    nRows = nColumns; 

Вы можете попробовать его с любым значением nElements , Это будет хорошо! :)

Смежные вопросы