对,所以我在标准 WPF Grid 面板上绘制看起来像 DataGrid 的东西。
内容控件本质上是 Grid 行和列引用的 Border 控件内的 TextBlock 控件,用于创建整体布局,在运行时添加并使用通常的 Grid.SetRow() 和 Grid.SetColumn() 方法
并非每个 X 和 Y 网格引用都有内容控件 - 这是由网格数据的运行时定义确定的。我使用偏移值来标记 XY 对是否是行/列的“标题”的一部分,或者网格参考是否是“数据”部分的一部分。
我试图在整个“数据”部分放置一个渐变背景。我正在使用带有渐变画笔设置的网格控件,如下所示:
//Grey background to show for "grey cells"
Grid greyBackground = new Grid()
{
Background = (Brush)this.Resources["BackgroundBrush"],
VerticalAlignment = System.Windows.VerticalAlignment.Stretch,
HorizontalAlignment = System.Windows.HorizontalAlignment.Stretch,
Width = double.NaN,
Height = double.NaN,
};
greyBackground.RowDefinitions.Add(new RowDefinition() { Height = new GridLength(1, GridUnitType.Star) });
greyBackground.ColumnDefinitions.Add(new ColumnDefinition() { Width = new GridLength(1, GridUnitType.Star) });
Grid.SetColumn(greyBackground, _vm.Definition.ColumnOffset);
Grid.SetRow(greyBackground, _vm.Definition.RowOffset);
Grid.SetColumnSpan(greyBackground, _vm.Definition.Columns - _vm.Definition.ColumnOffset);
Grid.SetRowSpan(greyBackground, _vm.Definition.Rows - _vm.Definition.RowOffset);
cellGrid.Children.Add(greyBackground);
然而,这根本不可见。我不知道为什么。
知道如何在其他“数据”控件下方显示对这些行/列位置的渐变背景绘制控件吗?