Корпус заголовка столбца MahApps DataGrid

Я использую отличную библиотеку MahApps для стилизации своего приложения WPF и интегрировал DataGrid для отображения строк из базы данных. Стиль MahApps по умолчанию для DataGrid отображает заголовки столбцов в верхнем регистре, но в моем случае мне нужно сохранить исходный регистр столбцов.

Теперь я не эксперт в WPF и тем более в стилях WPF, поэтому мне было интересно, есть ли «простой» способ только сбросить регистр используемого там TextBlock, или мне пришлось переопределить полный DataGrid стайлинг.

Заранее спасибо, Томас


person ThomasWeiss    schedule 29.10.2015    source источник


Ответы (1)


Вы можете сделать это, создав стиль только для DataGridColumnHeader, а не для всего DataGrid:

<Window xmlns:controls="http://metro.mahapps.com/winfx/xaml/controls"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        ... >


    <Window.Resources>
        <Style x:Key="MyColumnHeader" 
               BasedOn="{StaticResource MetroDataGridColumnHeader}" 
               TargetType="{x:Type DataGridColumnHeader}">
            <Setter Property="controls:ControlsHelper.ContentCharacterCasing" Value="Normal"/>
        </Style>
    </Window.Resources>

    ...

    <DataGrid ColumnHeaderStyle="{StaticResource MyColumnHeader}"
              ... />

    ...

</Window>

Убедитесь, что у вас установлена ​​последняя (предварительная) версия MahApps (по состоянию на 29.10.2015)

person kskyriacou    schedule 29.10.2015
comment
Большое спасибо! Для этого действительно требуется последняя (предварительная) версия. - person ThomasWeiss; 29.10.2015
comment
А, не знал, что это пре-релиз. Я отредактирую это в своем ответе для ясности - person kskyriacou; 29.10.2015
comment
Большое спасибо, основанное на Metro, спасло мой день. - person Momo; 24.06.2018
comment
Обратите внимание, что ресурс MetroDataGridColumnHeader был заменен на MahApps.Styles.DataGridColumnHeader. - person Matt Lacey; 21.01.2021