2010-07-29 3 views
2

Making отдельный вопрос, связанный с комментариями по ответу на WPF 4: What happened to DataGridColumnHeader?WPF4 DataGridHeaderBorder в XAML стиле

Оказывается, я могу использовать 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: дг = «http://schemas.microsoft.com/wpf/2008/toolkit», хотя я не ссылки WPFToolkit в проекте. Я проверял, что я настроен на .NET4 и ссылаюсь на PresentationFramework v4.

Спасибо, что помогли мне удалить dg: hack.

+0

Передано в MS: https://connect.microsoft.com/VisualStudio/feedback/details/584894 Голосовать, если у вас есть шанс – Thomas

+4

@Tom. Это работает для меня, если я с xmlns: Themes = "clr-namespace: Microsoft.Windows.Themes; assembly = PresentationFramework.Aero" HTH – Berryl

+0

@Berryl, спасибо, но мне не нужно ссылаться на PresentationFramework.Aero, нужно ли мне? – Thomas

ответ

7

Try:

xmlns:Themes="clr-namespace:Microsoft.Windows.Themes;assembly=PresentationFramework.Aero" 
+2

Не забудьте добавить 'PresentationFramework.Aero' в ссылки на ваш проект. –

2

Вы также можете попробовать this.In этот случай, чтобы изменить передний план заголовка.

<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> 
-1

Добавить PresentationFramework.Aero.dll в соответствие с вашим проектом.

Смежные вопросы