抑制GridViewColumn上的鼠标hover效果
我有一个带有HeaderTemplate
的GridViewColumn
,它有一个Image
和一个TextBlock
。 当用户将鼠标hover在Image
我正在更改其不透明度,但我仍然会获得默认的标题鼠标效果。 当用户将鼠标hover在图像上时,如何抑制此效果?
IsMouseOver触发器位于GridViewColumnHeader
模板内。 看起来像这样
更新
使用一些代码后,您可以在GridViewColumnHeader
的Loaded事件中禁用IsMouseOver触发器。 它通过设置值来覆盖触发器中的setter,这也适用于经典主题。
事件处理程序背后的代
private void GridViewColumnHeader_Loaded(object sender, RoutedEventArgs e) { GridViewColumnHeader columnHeader = sender as GridViewColumnHeader; Border HeaderBorder = columnHeader.Template.FindName("HeaderBorder", columnHeader) as Border; if (HeaderBorder != null) { HeaderBorder.Background = HeaderBorder.Background; } Border HeaderHoverBorder = columnHeader.Template.FindName("HeaderHoverBorder", columnHeader) as Border; if (HeaderHoverBorder != null) { HeaderHoverBorder.BorderBrush = HeaderHoverBorder.BorderBrush; } Rectangle UpperHighlight = columnHeader.Template.FindName("UpperHighlight", columnHeader) as Rectangle; if (UpperHighlight != null) { UpperHighlight.Visibility = UpperHighlight.Visibility; } Thumb PART_HeaderGripper = columnHeader.Template.FindName("PART_HeaderGripper", columnHeader) as Thumb; if (PART_HeaderGripper != null) { PART_HeaderGripper.Background = PART_HeaderGripper.Background; } }
Aero解决方案 ,删除了IsMouseOver触发器的默认样式