Algorithm 按元素数量设置行和列定义

Algorithm 按元素数量设置行和列定义,algorithm,xaml,Algorithm,Xaml,我想根据元素的数量创建我的xaml网格元素 i、 e.如果我有6个元素,我必须做3列2行(反之亦然) 但我的元素数量(输入)可以是任何值,可以是7、8、19等等 如何确定需要多少列和行 编辑:更多信息: 我希望我的网格尽可能的正方形,不管可能的空白点是什么使用Math.Sqrt: int nElements = 6; int nColumns = (int)Math.Ceiling(Math.Sqrt(nElements)); int nRows; if (nElements <= nCo

我想根据元素的数量创建我的xaml网格元素

i、 e.如果我有6个元素,我必须做3列2行(反之亦然)

但我的元素数量(输入)可以是任何值,可以是7、8、19等等

如何确定需要多少列和行

编辑:更多信息:
我希望我的网格尽可能的正方形,不管可能的空白点是什么

使用
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;
int元素=6;
int nColumns=(int)Math.天花(Math.Sqrt(neelements));
int nRows;

如果(元素什么构成可接受的网格大小?例如,我们可以为7个元素创建一个7x1,为8个元素创建一个8x1..等等,但我确信这不是您想要的。您想要7、8、19个元素集有多少行/列,为什么?@Calpis尽可能地平方对于23个元素集,您想要6x4还是5x5?5x5是正方形,但有2个空点,其中as 6x4只有一个空点。@Calpis空点并不重要,只要结果是最平方的就可以了。我很困惑。在你的例子中,你说了6个元素,你想做一个3x2,但从你最后的评论来看,如果空槽不重要,3x3不是更好吗?