複数のプロジェクトで同じ問題を経験しましたが、私が知る限り、それは単純な古いバグです。これは不自由です。私が見つけた唯一の回避策は不自由です。超、超ラメのように。もっと良いものがあればいいのにと思いますが、そうではありません。とにかく、グリッドのサイズを変更すると、これらの奇妙なスクロール アーティファクトが消えることがわかったので、エンジンをトリガーしてレイアウトを更新するコードを書きました。
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();
}));
}