2012-02-29 14 views
1

DataGridCepadから継承されたDataGridSeparatorColumnカスタムコントロールを作成しようとしましたが、これは2ピクセル幅になり、黒い背景になります。DataGridColumnから継承されたCustomControl:スタイリングの問題

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; 
    } 
} 

私はTODOコードのサンプルを見つけようとしましたが、何も役に立たないことがありました。誰かが私に正しい方法を教えることができますか?

ありがとうございます。

答えて

0

はこれを試してみてください:

Style myStyle = new Style(); 
Setter myBlackBackgroundSetter = new Setter(); 
myBlackBackgroundSetter.Property = DataGridCell.BackgroundProperty; 
myBlackBackgroundSetter.Value = Brushes.Black; 
myStyle.Setters.Add(myBlackBackgroundSetter); 
CellStyle = myStyle; 
+0

PS:列のヘッダーも黒色にしたい場合は、DataGridColumnHeader.BackgroundPropertyを設定してから列のHeaderStyleを設定しても同様のことができます。 –

+0

'HeaderStyle'では動作しますが、' CellStyle'では動作しません。ヘッダーセルは期待どおり黒い背景を持ちますが、セルはありません。 –

+0

私はEirikが言うように、あなたは-2のマージンを設定しなければならないでしょう。さもなければ、セルが非常に狭いため黒の背景が見えません。 –

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は、あなたのケースのための完全な値であるので、あなたが満足しているまで、ここでは異なる値を試していない可能性があります。

+0

さて、私の答えは、OPの要件に対する完全な解決策ではなく、正しい方向へのポインタであると言います。 StackOverflowはガイダンスと理解に関するもので、他の人があなたのために働いているわけではありません!とにかく、十分に公正。 –

+0

どちらの答えも便利でした、btw私は@ bobsmith833のものを受け入れたものとしてマークします –

関連する問題