Создание отдельного вопроса, связанного с комментариями к ответу на WPF 4: Что случилось с DataGridColumnHeader?
Похоже, я могу использовать DataGridHeaderBorder в UserControl, автономно вResourceDictionary, но не в установщике стиля шаблона.
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" > <!-- Works --> <DataTemplate x:Key="yomama"> <DataGridColumnHeader /> </DataTemplate> <!-- Compile Error: error MC3074: The tag 'DataGridHeaderBorder' does not exist in XML namespace 'http://schemas.microsoft.com/winfx/2006/xaml/presentation'. --> <Style x:Key="{x:Type DataGridRowHeader}" TargetType="{x:Type DataGridRowHeader}"> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type DataGridRowHeader}"> <Grid> <DataGridHeaderBorder></DataGridHeaderBorder> </Grid> </ControlTemplate> </Setter.Value> </Setter> </Style>
Я могу заставить его работать, если использую xmlns: dg = "http://schemas.microsoft.com/wpf/2008/toolkit",, даже если я не ссылаюсь на WPFToolkit в проекте.Я подтвердил, что настроен на .NET4 и ссылаюсь на PresentationFramework v4.
Спасибо за помощь в удалении хака dg:
Попробуйте:
xmlns:Themes="clr-namespace:Microsoft.Windows.Themes;assembly=PresentationFramework.Aero"
Вы также можете попробовать это. В этом случае изменить передний план заголовка.
<Style x:Key="Consulta_Grilla_HeaderStyle" TargetType="{x:Type DataGridColumnHeader}"> <Style.Resources> <Style TargetType="{x:Type Grid}" > <Setter Property="TextBlock.Foreground" Value="Yellow"/> </Style> </Style.Resources> </Style>
Добавьте PresentationFramework.Aero.dll в ссылку на ваш проект.