Как изменить цвет фона заголовка столбца при использовании сетки данных WPF

Многие объяснения уже присутствуют, чтобы объяснить, как это происходит и как это исправить, но вы также должны следовать рекомендациям, чтобы избежать NullPointerException вообще.

См. также: A хороший список лучших практик

Я бы добавил, очень важно, хорошо использовать модификатор final. Использование "окончательной" модификатор, когда это применимо в Java

Сводка:

  1. Используйте модификатор final для обеспечения хорошей инициализации.
  2. Избегайте возврата null в методы, например, при возврате пустых коллекций.
  3. Использовать аннотации @NotNull и @Nullable
  4. Быстрое завершение работы и использование утверждений, чтобы избежать распространения нулевых объектов через все приложение, когда они не должен быть пустым.
  5. Сначала используйте значения с известным объектом: if("knownObject".equals(unknownObject)
  6. Предпочитают valueOf() поверх toString ().
  7. Используйте null safe StringUtils StringUtils.isEmpty(null).

26
задан iliketocode 24 May 2017 в 20:13
поделиться

4 ответа

Используйте стиль с установщиком, нацеленным на DataGridColumnHeader:

<DataGrid>
    <DataGrid.Resources>
        <Style BasedOn="{StaticResource {x:Type DataGridColumnHeader}}" TargetType="{x:Type DataGridColumnHeader}">
            <Setter Property="Background" Value="Blue" />
        </Style>
    </DataGrid.Resources>
</DataGrid>
45
ответ дан Greg Sansom 24 May 2017 в 20:13
поделиться
  • 1
    Поблагодарите Вас миллион раз по - я потратил пару часов, создав базу данных Core Data, которая имела этот код ошибки 11 проблем (в iOS 4.3, но не 4.2 по некоторым причинам) и wouldn' t загрузка, но выводящий в недавно созданную базу данных как это устранил проблему. Да! – Cory Imdieke 9 June 2011 в 22:10
  • 2
    Поблагодарите Вас миллион раз по - я потратил пару часов, создав базу данных Core Data, которая имела этот код ошибки 11 проблем (в iOS 4.3, но не 4.2 по некоторым причинам) и wouldn' t загрузка, но выводящий в недавно созданную базу данных как это устранил проблему. Да! – Cory Imdieke 9 June 2011 в 22:10
  • 3
    Поблагодарите Вас миллион раз по - я потратил пару часов, создав базу данных Core Data, которая имела этот код ошибки 11 проблем (в iOS 4.3, но не 4.2 по некоторым причинам) и wouldn' t загрузка, но выводящий в недавно созданную базу данных как это устранил проблему. Да! – Cory Imdieke 9 June 2011 в 22:10
  • 4
    Поблагодарите Вас миллион раз по - я потратил пару часов, создав базу данных Core Data, которая имела этот код ошибки 11 проблем (в iOS 4.3, но не 4.2 по некоторым причинам) и wouldn' t загрузка, но выводящий в недавно созданную базу данных как это устранил проблему. Да! – Cory Imdieke 9 June 2011 в 22:10
  • 5
    Поблагодарите Вас миллион раз по - я потратил пару часов, создав базу данных Core Data, которая имела этот код ошибки 11 проблем (в iOS 4.3, но не 4.2 по некоторым причинам) и wouldn' t загрузка, но выводящий в недавно созданную базу данных как это устранил проблему. Да! – Cory Imdieke 9 June 2011 в 22:10

Используйте это:

  <windows.Resources>
      <LinearGradientBrush x:Key="HeaderBrush" StartPoint="0.5,0" EndPoint="0.5,1">
                <GradientStop Color="#FF6B8E95" Offset="0"/>
                <GradientStop Color="#FF14A7C1" Offset="1"/>
                <GradientStop Color="#FF1E424E" Offset="0.509"/>
                <GradientStop Color="#FF1D4855" Offset="0.542"/>
                <GradientStop Color="#FF1D4855" Offset="0.542"/>
                <GradientStop Color="#FF193A44" Offset="0.526"/>
            </LinearGradientBrush>

            <LinearGradientBrush x:Key="HeaderBorderBrush" StartPoint="0.5,0" EndPoint="0.5,1">
                <GradientStop Color="#FF1D1D1D" Offset="0.614"/>
                <GradientStop Color="#FF007F96" Offset="0.853"/>
                <GradientStop Color="#FF0AEAFA" Offset="1"/>
            </LinearGradientBrush>

            <Style x:Key="HeaderStyle" TargetType="DataGridColumnHeader">
                <Setter Property="Background" Value="{StaticResource HeaderBrush}" />
                <Setter Property="Foreground" Value="White" />
                <Setter Property="BorderBrush" Value="{StaticResource HeaderBorderBrush}" />
                <Setter Property="BorderThickness" Value="0" />
                <Setter Property="SnapsToDevicePixels" Value="True" />
                <Setter Property="HorizontalContentAlignment" Value="Left" />
                <Setter Property="MinWidth" Value="0" />
                <Setter Property="MinHeight" Value="30" />
                <Setter Property="Cursor" Value="Hand" />
            </Style>
    </Windows.Resources>

<Grid>
<DataGrid Name="dataGrid1" ColumnHeaderStyle="{StaticResource HeaderStyle}"/>
</Grid>

Это результат:

result

6
ответ дан Flexo 24 May 2017 в 20:13
поделиться
var style = new Style(typeof(System.Windows.Controls.Primitives
    .DataGridColumnHeader));
style.Setters.Add(new Setter(ToolTipService.ToolTipProperty
    ,"Your tool tip here"));
style.Setters.Add(new Setter { Property = BackgroundProperty, Value 
    = Brushes.Yellow });


dgExcelSheet.Columns[1].HeaderStyle = style;
3
ответ дан Arun Chandran C 24 May 2017 в 20:13
поделиться
<DataGridTextColumn Header="ID">
    <DataGridTextColumn.HeaderStyle>
        <Style TargetType="DataGridColumnHeader">
            <Setter Property="Background" Value="Green"/>
        </Style>
    </DataGridTextColumn.HeaderStyle>
</DataGridTextColumn>
2
ответ дан iliketocode 24 May 2017 в 20:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: