2015-04-23 4 views
2

Вот код XAML:IsMouseOver запуска не работает GridViewColumn WPF XAML

<Page.Resources> 
     <Style x:Key="cells" TargetType="GridViewColumnHeader"> 
      <Style.Triggers> 
       <Trigger Property="IsEnabled" Value="True"> 
        <Setter Property="Background" Value="#FF00B9FF"></Setter> 
        <Setter Property="Foreground" Value="White"></Setter> 
        <Setter Property="BorderBrush" Value="#FF00B9FF"></Setter> 
        <Setter Property="Padding" Value="8"></Setter> 
        <Setter Property="MinWidth" Value="100"></Setter> 
       </Trigger> 
       <Trigger Property="IsMouseOver" Value="True"> 
        <Setter Property="Background" Value="#FF00B9FF"></Setter> 
        <Setter Property="Foreground" Value="White"></Setter> 
        <Setter Property="BorderBrush" Value="#FF00B9FF"></Setter> 
        <Setter Property="Padding" Value="2"></Setter> 
        <Setter Property="MinWidth" Value="100"></Setter> 
       </Trigger> 
      </Style.Triggers> 

     </Style> 
    </Page.Resources> 
    <Grid> 
     <Label Content="Notifications" VerticalAlignment="Top" HorizontalAlignment="Left" FontSize="20"></Label> 
     <ListView Background="{x:Null}" FontSize="17" Margin="0,30,0,0" ItemsSource="{Binding Notifications}" HorizontalAlignment="Center" BorderBrush="{x:Null}"> 
      <ListView.View> 
       <GridView AllowsColumnReorder="False"> 
        <GridViewColumn Header="Sl No." DisplayMemberBinding="{Binding Slno}" HeaderContainerStyle="{StaticResource cells}"></GridViewColumn> 
        <GridViewColumn Header="Message" DisplayMemberBinding="{Binding Message}" HeaderContainerStyle="{StaticResource cells}"></GridViewColumn> 
        <GridViewColumn Header="Date" DisplayMemberBinding="{Binding Date}" HeaderContainerStyle="{StaticResource cells}"></GridViewColumn> 
       </GridView> 
      </ListView.View> 
     </ListView> 
    </Grid> 

Спусковой IsEnabled это хорошо, но триггер IsMouseOver не работает. Я попытался использовать ControlTemplate, но нет свойства для <GridViewColumn/> и возвращает ошибку Cannot convert ControlTemplate type to DataTemplate or Style.

Я пытаюсь изменить стиль моего заголовка сетки, когда на MOUSEOver отображается шаблон по умолчанию.

Как я могу переопределить стиль?

+0

Пожалуйста, помогите мне. –

+0

Получил ответ на мою проблему из http://stackoverflow.com/questions/1172534/wpf-gridviewheader-styling-questions –

ответ

2

Ваш триггер работает нормально, его просто, что вы не видите, что вы ожидаете, что вам нужно будет установить ContolTemplate в инкубаторе, такие как

<Trigger Property="IsMouseOver" Value="True"> 
      <Setter Property="Template"> 
       <Setter.Value> 
         <ControlTemplate TargetType="{x:Type GridViewColumnHeader}"> 
         <Border BorderBrush="#FF00B9FF" Background="#FF00B9FF"> 
          <TextBlock Padding="5,5,5,5" Text="{TemplateBinding Content}" TextAlignment="Center" /> 
         </Border> 
        </ControlTemplate> 
       </Setter.Value> 
      </Setter> 
      <Setter Property="Padding" Value="2"></Setter> 
    </Trigger> 

также отметить, что вы можете установить ColumnHeaderStyle раз в вашем GridView, а не устанавливая его для всех заголовков несколько раз, например:

<GridView AllowsColumnReorder="False" ColumnHeaderContainerStyle="{StaticResource cells}">