首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >当用户控件布局被更新时,固定网格中的动态行将被压缩。

当用户控件布局被更新时,固定网格中的动态行将被压缩。
EN

Stack Overflow用户
提问于 2014-12-09 15:18:10
回答 1查看 68关注 0票数 1

我在xaml中有一个网格:

我动态地创建了许多行:

代码语言:javascript
运行
复制
        for (int i = 1; i <= numHorizLines - 1; i++)
        {
            RowDefinition r = new RowDefinition();
            r.Height = new GridLength(Convert.ToDouble(size), GridUnitType.Star);
            gVertNums.RowDefinitions.Add(r);
        }

当用户控件的layout_updated事件触发时,我执行循环来根据控件的高度重新创建行数(在清除gVertNums网格中的所有内容之后)。我将文本块添加到带有数字的网格行中(为了简单起见,不要使用这些代码)。

当主窗口第一次打开时,这很好地工作。但是,当layout_updated事件再次触发时,gVertNums会显示正确的行数,但它们会被压缩。

网格高度似乎正在发生某种变化,从而导致行被压缩。尽管我将gVertNums.height重置为新布局的高度,但行被擦掉.

下面是打开的主窗口的屏幕截图:

下面是用户控件调整大小时的屏幕截图:

在本例中,网格宽度被更改,但高度没有更改,行仍然压缩在一起。间距为“大小”( 25像素)。

知道为什么会这样吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-09 16:17:55

您目前没有清除RowDefinitions的代码(如图所示)。因此,在再次添加它们之后,您现在的行数可能是预期的两倍。

尝尝这个

代码语言:javascript
运行
复制
gVertNums.RowDefinitions.Clear();
for (int i = 1; i <= numHorizLines - 1; i++)
    {
        RowDefinition r = new RowDefinition();
        r.Height = new GridLength(Convert.ToDouble(size), GridUnitType.Star);
        gVertNums.RowDefinitions.Add(r);
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27382423

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档