セルに条件付き書式を設定できます。条件、および条件が有効な場合に適用する書式を設定します。
条件付き書式はXAMLコードで設定することはできません。
条件付き書式を設定するには、コントロールの ConditionalFormat プロパティで条件付き書式を表す ConditionalFormat を参照し、条件に対応するメソッドを使用します。設定可能な条件の種類、および対応するメソッドは次のとおりです。
条件 | 説明 | メソッド |
---|---|---|
値の指定 | 値、および比較演算子(Between、GreaterThan、LessThan など)による指定 | AddCellValueRule メソッド |
平均との比較 | 平均より上または下かの指定 | AddAverageRule メソッド |
日付 | 日付を対象とした条件(過去7日間など)の指定 | AddDateOccurringRule メソッド |
数式 | 数式による指定 | AddFormulaRule メソッド |
カラー スケール | セルの値に基づく2色または3色スケールでのセルの背景色の指定 | AddTwoScaleRule メソッド AddThreeScaleRule メソッド |
文字列比較 | 文字列を対象とした条件(Contains、BeginsWith など)の指定 | AddSpecificTextRule メソッド |
上位/下位 | 上位または下位何位までかの指定 | AddTop10Rule メソッド |
重複する値 | 値が一意または重複するかの指定 | AddUniqueRule メソッド AddDuplicateRule メソッド |
条件付き書式の設定について、次のサンプルコードを参照してください。
次のサンプルコードは「Quantity」列に2色スケールを設定します。
C# |
コードのコピー |
---|---|
CellRange range = gcSpreadGrid1.Columns["Quantity"].ToCellRange(); gcSpreadGrid1.ConditionalFormat.AddTwoScaleRule( ScaleValueType.LowestValue, null, Colors.Orange, ScaleValueType.HighestValue, null, Colors.Red, range); |
Visual Basic |
コードのコピー |
---|---|
Dim range As CellRange = GcSpreadGrid1.Columns("Quantity").ToCellRange() GcSpreadGrid1.ConditionalFormat.AddTwoScaleRule( _ ScaleValueType.LowestValue, Nothing, Colors.Orange, _ ScaleValueType.HighestValue, Nothing, Colors.Red, _ range) |
重複する範囲に複数の条件を設定できます。セルが複数の条件に該当する場合、セルの書式は該当する条件の書式を複合したものとなります。また、書式どうしで重複する設定項目がある場合、最後に設定した条件の書式が優先されます。
次のサンプルコードは「Quantity」列に2色スケール、および平均より上の値に対する書式を設定します。平均より上の値には2つの書式を複合して、2色スケールの背景色と青色の文字が設定されます。
C# |
コードのコピー |
---|---|
// 2色スケール CellRange range = gcSpreadGrid1.Columns["Quantity"].ToCellRange(); gcSpreadGrid1.ConditionalFormat.AddTwoScaleRule( ScaleValueType.LowestValue, null, Colors.Orange, ScaleValueType.HighestValue, null, Colors.Red, range); // 平均より上 StyleInfo style = new StyleInfo(); style.Foreground = new SolidColorBrush(Colors.Blue); gcSpreadGrid1.ConditionalFormat.AddAverageRule(AverageConditionType.Above, style, range); |
Visual Basic |
コードのコピー |
---|---|
' 2色スケール Dim range As CellRange = GcSpreadGrid1.Columns("Quantity").ToCellRange() GcSpreadGrid1.ConditionalFormat.AddTwoScaleRule( _ ScaleValueType.LowestValue, Nothing, Colors.Orange, _ ScaleValueType.HighestValue, Nothing, Colors.Red, _ range) ' 平均より上 Dim style As New StyleInfo() style.Foreground = New SolidColorBrush(Colors.Blue) GcSpreadGrid1.ConditionalFormat.AddAverageRule(AverageConditionType.Above, style, range) |