我正在尝试编写一个继承自DataGridColumn的DataGridSeparatorColumn自定义控件,强制它为2像素宽并且背景为黑色。
public class DataGridSeparatorColumn : DataGridColumn
{
public DataGridSeparatorColumn()
{
CanUserReorder = false;
CanUserResize = false;
CanUserSort = false;
MaxWidth = 2;
MinWidth = 2;
IsReadOnly = true;
Header = "";
// TODO: Set black background and/or other visual stuff here
}
protected override FrameworkElement GenerateElement(DataGridCell cell, object dataItem)
{
//return new FrameworkElement();
return null;
}
protected override FrameworkElement GenerateEditingElement(DataGridCell cell, object dataItem)
{
//return new FrameworkElement();
return null;
}
}
我用Google搜索到了TODO代码的示例,但我还没有发现任何有用的内容。有人能用正确的方式指出我吗?
谢谢。
答案 0 :(得分:1)
bobsmith在正确的轨道上,但您需要调整边距(以及可能的填充)属性,以覆盖整个单元格。
Style style = new Style(typeof(DataGridCell));
style.Setters.Add(new Setter(DataGridCell.BackgroundProperty, new SolidColorBrush(Colors.Black)));
style.Setters.Add(new Setter(DataGridCell.MarginProperty, new Thickness(-2.0)));
CellStyle = style;
-2.0可能不适合您的情况,所以在您满意之前,请尝试不同的值。
答案 1 :(得分:0)
试试这个:
Style myStyle = new Style();
Setter myBlackBackgroundSetter = new Setter();
myBlackBackgroundSetter.Property = DataGridCell.BackgroundProperty;
myBlackBackgroundSetter.Value = Brushes.Black;
myStyle.Setters.Add(myBlackBackgroundSetter);
CellStyle = myStyle;