2015-04-23 62 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}">