我正在使用DataGrid
Silverlight 中的一个。如果我有足够的项目以使垂直滚动条对所有大小的窗口都可见,并且我重新调整窗口大小几次,垂直滚动就会不同步。拇指变小,好像控件认为有更多的项目。当我将拇指拖到底部或顶部时,内容开始跳跃。时常发生,非常令人沮丧。DataGrid
放置在DockPanel
根据窗口大小重新调整大小的范围内(没有具体大小)
有人有想法么?
我正在使用DataGrid
Silverlight 中的一个。如果我有足够的项目以使垂直滚动条对所有大小的窗口都可见,并且我重新调整窗口大小几次,垂直滚动就会不同步。拇指变小,好像控件认为有更多的项目。当我将拇指拖到底部或顶部时,内容开始跳跃。时常发生,非常令人沮丧。DataGrid
放置在DockPanel
根据窗口大小重新调整大小的范围内(没有具体大小)
有人有想法么?
我有一些类似的问题。其中大部分可以通过在数据网格上调用 UpdateLayout 来解决。
我在停靠面板中也有一个数据网格。当我向下滚动并选择底部记录然后重新加载我的数据网格时,水平滚动条似乎覆盖了最后一条记录。并且垂直滚动条看起来尽可能地向下,不能进一步向下拖动。
如果我使用鼠标上的滚轮,可以看到最后一条记录。
这只发生在我在最大化窗口中显示我的应用程序时。
你有没有得到任何地方?
我尝试使用派生的类似方法DataGrid
。
不同之处在于OnApplyTemplate
只会获取 的实例,VerticalScrollbar
并且引入了单独的公共方法来调用UpdateLayout()
滚动条上的 。DataGrid
在可能导致滚动条大小不同步(内容调整大小等)的情况下,将显式调用此类方法
有时UpdateLayout()
单独是不够的,所以我添加了翻转滚动条的可见性——虽然在 100% 的情况下仍然没有效果,但效果更好
这是数据网格中的错误。您可以通过从数据网格继承并在 OnApplyTemplate 方法上搜索滚动条并手动更新其布局来解决此问题:
public override void OnApplyTemplate()
{
verticalScrollBar = this.GetTemplateChild("VerticalScrollbar") as ScrollBar;
if (verticalScrollBar != null)
{
verticalScrollBar.UpdateLayout();
}
}
如果这仍然不起作用,请尝试在代码中手动调用 OnApplyTemplate 方法。
在数据网格样式中删除垂直滚动条并按照以下步骤操作
Step1:使用 Scroll Viewer 环绕 DataGridRowsPresenter
Step2: 禁用 HorizantalScrollBarVisibility
Step3:VerticalScrollBarVisibility 为 Auto