0

对,所以我在标准 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);

然而,这根本不可见。我不知道为什么。

知道如何在其他“数据”控件下方显示对这些行/列位置的渐变背景绘制控件吗?

4

0 回答 0