在动态网格上设置叠加背景面板

时间:2013-09-10 16:13:47

标签: c# wpf xaml grid

是的,所以我在标准的WPF Grid面板上绘制了一个看起来像DataGrid的东西。

内容控件本质上是TextBlock控件,位于Grid控件的Grid控件和列引用中,用于创建整体布局,在运行时添加并使用常用的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);
然而,这根本不可见。我不明白为什么。

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

0 个答案:

没有答案