2010-11-17 70 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