获取剪切显示列的宽度

发布于 2024-10-12 03:28:06 字数 111 浏览 1 评论 0原文

我的项目中有一个 DataGrid。它不适合表单的宽度,因此会出现滚动条。 DataGrid 在其初始状态下显示几列和下一列的一部分(滚动后将出现)。

有什么方法可以得到这个显示部分的宽度吗?

I have a DataGrid in my project. It doesn't fit's the width of the form, so the scrollBar appears. The DataGrid, on it's initial state, displays a few columns and a part of the next column (which would appear after scrolling).

Is there any way, I can get the width of this, displaying part?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

拥有 2024-10-19 03:28:06

您应该获取父对象的宽度。

假设数据网格在您的应用程序中,那么您应该获取舞台的宽度。(stage.stageWidth)

如果您的数据网格位于应用程序(或任何其他父对象)中的某个 x 位置,那么您应该获取舞台的宽度父对象 - 数据网格的 x 值。 (stage.stageWidth - dataGrid.x)

You should get the width of the parent object.

let's say the datagrid is in your application, then you should get the width of the stage.(stage.stageWidth)

If your datagrid is on a certain x location in your application (or any other parent object) then you should take the width of the parent object - the x value of your datagrid. (stage.stageWidth - dataGrid.x)

相守太难 2024-10-19 03:28:06

好的,我有时间更深入地研究这个问题。我搜索了几个类来了解 Adob​​e 如何实现这些网格行为(部分显示列)。因此,对于那些需要处理这个问题的人来说,所需的部分位于 DataGrid.as 文件中,方法 configureScrollBars .. 实际上,这部分:

// if the last column is visible and partially offscreen (but it isn't the only
        // column) then adjust the column count so we can scroll to see it
        if (collectionHasRows && rowCount > 0 && colCount > 1 && 
            listItems[0][colCount - 1].x + 
            visibleColumns[colCount - 1].width > (displayWidth - listContent.x + viewMetrics.left))
            colCount--;
        else if (colCount > 1 && !collectionHasRows)
        {
            // the slower computation requires adding up the previous columns
            var colX:int = 0;
            for (var i:int = 0; i < visibleColumns.length; i++)
            {
                colX += visibleColumns[i].width;
            }
            if (colX > (displayWidth - listContent.x + viewMetrics.left))
                colCount--;
        }

这几乎是所有需要的代码捕捉并测量网格中所有那些棘手的划分列:)

Ok, I had some time to dig more deeply in this problem. I've searched a few classes to see, how the Adobe was implementing those grid behavior (displaying columns partly). So, for those, who'll need to deal with this, the needed part is in DataGrid.as file, method configureScrollBars .. actually, this part of it:

// if the last column is visible and partially offscreen (but it isn't the only
        // column) then adjust the column count so we can scroll to see it
        if (collectionHasRows && rowCount > 0 && colCount > 1 && 
            listItems[0][colCount - 1].x + 
            visibleColumns[colCount - 1].width > (displayWidth - listContent.x + viewMetrics.left))
            colCount--;
        else if (colCount > 1 && !collectionHasRows)
        {
            // the slower computation requires adding up the previous columns
            var colX:int = 0;
            for (var i:int = 0; i < visibleColumns.length; i++)
            {
                colX += visibleColumns[i].width;
            }
            if (colX > (displayWidth - listContent.x + viewMetrics.left))
                colCount--;
        }

That's pretty much all code, that needed to catch and measure all those tricky divided cols in a grid :)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文