いくつかのデータを表すグリッドがあり、その上にオーバーレイしていくつかの行をレイアウトするキャンバスが必要です。キャンバスは独自のユーザーコントロール内にあります
問題は、グリッドの幅と高さのサイズが変更されると、キャンバスとその内容が自動的にサイズ変更されることです。
ビューボックス内にキャンバスを追加しましたが、うまくいきませんでした。グリッドのサイズが変更されても、キャンバスは変更されません。キャンバスの目的は、定規のような機能をグリッドの上に重ねることです。
グリッドにはキャンバスとは異なる情報が表示されるため、グリッドのスタイルを使用してキャンバスを置き換えることはできません。さまざまなサイズのバー列 (私の場合はグリッド) があり、日がオーバーレイの線 (ガント チャートと同様) であるチャートと考えてください。
私のコード:
taxCanvas = new TimeAxis();
Grid.SetRowSpan(taxCanvas, GRightMain.RowDefinitions.Count);
Grid.SetColumnSpan(taxCanvas, GRightMain.ColumnDefinitions.Count);
Grid.SetColumn(taxCanvas, 0); Grid.SetRow(taxCanvas, 0);
Grid.SetZIndex(taxCanvas, -1);
taxCanvas.Height = GRight.ActualHeight;
taxCanvas.Width = GRight.ActualWidth;
GRightMain.Children.Add(taxCanvas);
TimeAxis は私のキャンバス ユーザー コントロールです。GRightMain は、私のキャンバスとコンテンツ (Gright) を持つグリッドの両方を同じ行と列に保持するグリッドです。