2010-11-17 54 views
0

我有一个Silverlight DataGrid,我无法弄清楚如何设计它。当用户悬停在一行上时,应用于该行的背景颜色(默认情况下)与UI的其余部分不兼容。我想在悬停时更改此背景颜色。我该怎么做?如何更改DataGrid行的OnHover背景颜色?

回答

1

您需要将DataGridRow样式分配给DataGrid.RowStyle,该样式会更改VisualState for MouseOver的动画。 DataGrid的默认样式可以找到here

在风格DataGridRow你想改变这一点:

<Rectangle x:Name="BackgroundRectangle" Grid.RowSpan="2" Grid.ColumnSpan="2" Opacity="0" Fill="#FFBADDE9"/> 

这个矩形是不透明的,但在制作上的鼠标可见。改变填充将改变鼠标悬停的背景颜色。

+0

谢谢!我正在寻找这种默认风格的XAML。有时MSDN文档真的让我感到恶化;事情太难找到了! – 2010-11-17 17:59:56

+0

斯蒂芬,我还有一个我认为是相关的问题。无论出于何种原因,单击的单元格/列的背景颜色都比该行中的其他单元格浅。我该如何改变这一点?我希望整行都始终是相同的背景颜色。看起来,点击的单元格上的不透明度略微上升,导致稍微更亮的颜色。 – 2010-11-17 18:48:04

+0

你只需要使用单元格样式就可以完成同样的事情。默认单元格样式(相同链接)具有名称'FocusVisual',该单元在选中单元格时设置为非透明。删除该元素和动画,它会阻止它改变外观。 – Stephan 2010-11-17 18:50:38