2017-04-12 53 views
0

我有一個由TextColumns組成的特定數據網格,每個單元格的顏色都不相同。我將我的顏色基於某些數據,因此我已經適當地設置了單元格的背景顏色。由此產生的問題是,現在當我選擇一行時,無法查看它是否被選中。當我選擇行時,我不想調暗每個單元格的顏色,因爲我有很多列。我只想調整所選行的不透明度,而不是關於單個單元格中的顏色。這是我曾嘗試:如何更改整行的不透明度而不考慮顏色?

<DataGrid.Resources> 
    <Style TargetType="DataGridRow"> 
     <Style.Triggers> 
      <Trigger Property="IsSelected" Value="True"> 
       <Setter Property="Background"> 
        <SolidColorBrush Opacity="0.3"/> 
       </Setter> 
      </Trigger> 
     </Style.Triggers> 
    </Style> 
</DataGrid.Resources> 

但我得到的錯誤:Unexpected record in Baml stream. Trying to add to Setter which is not a collection or has a TypeConverter.有沒有辦法來acheive我預期的結果?

回答

2

應設置Value(注意<Setter.Value>元素)屬性設置爲SolidColorBrush

<Trigger Property="IsSelected" Value="True"> 
    <Setter Property="Background"> 
     <Setter.Value> 
      <SolidColorBrush Opacity="0.3"/> 
     </Setter.Value> 
    </Setter> 
</Trigger> 

您可能還需要改變TargetTypeDataGridCell爲背景,以應用到所選單元格。

+0

這確實阻止了我的應用程序崩潰,但我仍然沒有在選定的行上獲得任何透明度。 – Vrankela

+0

您是否按照我的建議更改了TargetType? – mm8

+0

是的,它沒有區別。然而,它確實弄亂了我沒有着色的其他一些欄目,所以我轉回到 – Vrankela

相關問題