1

我正在使用DataGridSilverlight 中的一个。如果我有足够的项目以使垂直滚动条对所有大小的窗口都可见,并且我重新调整窗口大小几次,垂直滚动就会不同步。拇指变小,好像控件认为有更多的项目。当我将拇指拖到底部或顶部时,内容开始跳跃。时常发生,非常令人沮丧。DataGrid放置在DockPanel根据窗口大小重新调整大小的范围内(没有具体大小)

有人有想法么?

4

4 回答 4

1

我有一些类似的问题。其中大部分可以通过在数据网格上调用 UpdateLayout 来解决。

我在停靠面板中也有一个数据网格。当我向下滚动并选择底部记录然后重新加载我的数据网格时,水平滚动条似乎覆盖了最后一条记录。并且垂直滚动条看起来尽可能地向下,不能进一步向下拖动。

如果我使用鼠标上的滚轮,可以看到最后一条记录。

这只发生在我在最大化窗口中显示我的应用程序时。

你有没有得到任何地方?

于 2010-08-16T10:28:15.960 回答
1

我尝试使用派生的类似方法DataGrid

不同之处在于OnApplyTemplate只会获取 的实例,VerticalScrollbar并且引入了单独的公共方法来调用UpdateLayout()滚动条上的 。DataGrid在可能导致滚动条大小不同步(内容调整大小等)的情况下,将显式调用此类方法

有时UpdateLayout()单独是不够的,所以我添加了翻转滚动条的可见性——虽然在 100% 的情况下仍然没有效果,但效果更好

于 2011-11-29T17:37:17.617 回答
0

这是数据网格中的错误。您可以通过从数据网格继承并在 OnApplyTemplate 方法上搜索滚动条并手动更新其布局来解决此问题:

public override void OnApplyTemplate()
{
    verticalScrollBar = this.GetTemplateChild("VerticalScrollbar") as ScrollBar;
    if (verticalScrollBar != null)
    {
        verticalScrollBar.UpdateLayout();
    }
}

如果这仍然不起作用,请尝试在代码中手动调用 OnApplyTemplate 方法。

于 2011-08-08T10:59:01.237 回答
0

在数据网格样式中删除垂直滚动条并按照以下步骤操作

Step1:使用 Scroll Viewer 环绕 DataGridRowsPresenter

Step2: 禁用 HorizantalScrollBarVisibility

Step3:VerticalScrollBarVisibility 为 Auto

于 2014-03-14T10:13:31.340 回答