Grid
いくつかのデータを表す があり、その上に を重ねていくつかの行をレイアウトする必要がありますCanvas
。はCanvas
それ自身の中にありUserControl
ます。
問題は、 の幅と高さCanvas
のサイズが変更されると、 とその内容が自動サイズ変更されることです。Grid
Canvas
内部に aを追加しましたViewBox
が、うまくいきませんでした。のGrid
サイズが変更されても、 は変更しCanvas
ません。の目的はCanvas
、定規のような機能をグリッドの上に重ねることです。
あなたの解決策を楽しみにしています。
編集
グリッドにはキャンバスとは異なる情報が表示されるため、グリッドのスタイルを使用してキャンバスを置き換えることはできません。さまざまなサイズのバー列 (私の場合はグリッド) があり、日がオーバーレイの線 (ガント チャートと同様) であるチャートと考えてください。
私のコード:
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) を持つグリッドの両方を同じ行と列に保持するグリッドです。
お役に立てれば