【问题标题】:WPF datagrid row horizontal alignment issueWPF datagrid行水平对齐问题
【发布时间】:2012-11-07 17:14:30
【问题描述】:

我在表单中使用 DataGrid 来显示(用户 ID、姓名、余额等)的列表。它有一个非常奇怪的问题,在某些行的开头(每 20 行中的一行)有一个小的空白区域导致该行未对齐。空白区域就像一个小矩形,位于行的第一个单元格之前。我回顾了我的风格和一切,但无法弄清楚为什么会这样。仅当我以编程方式滚动 DataGrid 时才会发生这种情况,滚动完成后会出现空白。

让事情变得更糟的是空白区域可以调整大小!当我用鼠标调整它的大小时,它会搞砸网格。我真的不想把这样的东西寄出去。

我在 WPF 方面没有太多经验,如果有人能给我一些关于在哪里查看的想法,我将不胜感激。谢谢。


编辑:这是截图:

【问题讨论】:

  • 你能发布截图和一些代码吗?像 WPF Snoop 这样的工具可以帮助您弄清楚发生了什么。
  • 很棒的工具!现在我用它来找出这个东西是什么类型的物体!

标签: wpf xaml alignment wpfdatagrid


【解决方案1】:

此问题是由于某些随机行的“显示”行标题引起的。

我不知道为什么会这样,但幸运的是解决方法很简单。

如果您在 DataGrid 上设置了RowHeaderWidth="0",则行为应该符合预期。

由于某种原因,即使 HeadersVisibility 设置为列,行标题仍然出现。

【讨论】:

  • 非常感谢彼得!你救了我!我以为我做错了什么,我花了两天时间检查我拥有的每一行 xaml 和 C# 代码。但我什么也找不到!好奇怪的bug!
  • 在我的情况下,此行为是由 IDataErrorInfo 验证略微增加默认 RowHeader 宽度以允许红色感叹号(并且仅在有错误的行上)引起的。如果我设置RowHeaderWidth="11",它保持不变,问题就消失了。
【解决方案2】:

我在多个项目中都遇到过同样的问题,据我所知,这只是一个普通的 ole 错误。这是蹩脚的。我发现的唯一工作是la脚。就像超级,超级跛脚。我希望我有更好的东西,但我没有。无论如何,我发现当我调整网格大小时,这些奇怪的滚动伪影会消失,所以我编写了一些代码来触发引擎更新布局。

Timer _timer;

void MainWindow_Loaded(object sender, RoutedEventArgs e)
{
    _timer = new Timer(1000);
    _timer.Elapsed += _timer_Elapsed;
    _timer.Start();
}

void _timer_Elapsed(object sender, ElapsedEventArgs e)
{
    //why the hell are we doing this?
    //well, the stupid error adorners on the grid like to be mis-aligned
    //forcing a layout to happen makes them not look off. lame, I know.
    Dispatcher.Invoke(new Action(() =>
    {
        MainDataGrid.Margin = new Thickness(MainDataGrid.Margin.Left, MainDataGrid.Margin.Top, MainDataGrid.Margin.Right, MainDataGrid.Margin.Bottom + 1);
        MainDataGrid.UpdateLayout();

        MainDataGrid.Margin = new Thickness(MainDataGrid.Margin.Left, MainDataGrid.Margin.Top, MainDataGrid.Margin.Right, MainDataGrid.Margin.Bottom - 1);
        MainDataGrid.UpdateLayout();
    }));


}

【讨论】:

    猜你喜欢
    • 2011-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-22
    • 2020-01-08
    • 2012-02-23
    相关资源
    最近更新 更多