我有一个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);
Run Code Online (Sandbox Code Playgroud)
TimeAxis 是我的画布用户控件,GRightMain 是一个网格,它包含我的画布和内容(Gright)位于同一行和列中的网格。
希望这可以帮助