我正在使用WPF數據網格來顯示數據。我試圖弄清楚如何在單擊項目時突出顯示整個行,如果末尾有空白空間(我正在使用動態生成的列),則包括空白列/空間。請注意,我不想突出顯示特定的單元格。這是我看到的http://imgur.com/7Xjoj2H。該行末尾的未使用空間是當前不存在列的空間,並且未突出顯示。我希望在點擊該行時突出顯示該空間。我試過了:WPF DataGrid突出顯示整行
將寬度設置爲自動的最後一列以填充剩餘空間。這對我不起作用,因爲這樣做會禁用水平滾動條,因爲我使用的是動態創建的列,所以我需要該滾動條。
我也嘗試添加了DataGridRows風格:
<Trigger Property="IsSelected"
Value="true">
<Setter Property="Background"
Value="{StaticResource SelectedBrush}" />
</Trigger>
這類作品,雖然,在DataGrid負載,或者當我的程序是沒有焦點,它看起來像這樣:http://imgur.com/EtTmBbH哪裏只有未使用空間的最後一個區域被突出顯示。
如果可能的話,我寧願不要通過在結尾添加一個空白虛擬列來解決此問題,因爲這會導致與將最後一列寬度設置爲自動以上相同的問題。
有什麼建議嗎?
編輯:
下面是DataGridRow樣式代碼:
<Style TargetType="{x:Type DataGridRow}"
x:Key="DataGridRowStyle">
<Setter Property="Background"
Value="White" />
<Style.Triggers>
<Trigger Property="AlternationIndex"
Value="1">
<Setter Property="Background"
Value="#efefef" />
</Trigger>
<Trigger Property="IsMouseOver"
Value="true">
<Setter Property="Background"
Value="{StaticResource RolloverBrush}" />
</Trigger>
<Trigger Property="IsSelected"
Value="true">
<Setter Property="Background"
Value="{StaticResource SelectedBrush}" />
</Trigger>
</Style.Triggers>
</Style>
而選擇刷:
<LinearGradientBrush x:Key="SelectedBrush"
StartPoint="0,0"
EndPoint="0,1">
<GradientStop Offset="0"
Color="#3399FF" />
</LinearGradientBrush>
DataGrid的代碼:
<DataGrid x:Name="JobListView"
AutoGenerateColumns="False"
ItemsSource="{Binding UnitStatusCollection, Mode=TwoWay}"
CanUserDeleteRows="False"
Style="{StaticResource JobGridViewStyle}"
SelectedIndex="{Binding JobsListViewSelectedIndex, Mode=TwoWay}"
SelectedItem="{Binding JobsListViewSelectedUnitStatusPair}"
Utility:DataGridColumnsBehavior.BindableColumns="{Binding DataGridColumns}"
ContextMenu="{StaticResource ListViewContextMenu}"
Margin="10,0"
Grid.Row="1"
HorizontalAlignment="Stretch"
HorizontalContentAlignment="Stretch"
RowStyle="{StaticResource DataGridRowStyle}"
AlternationCount="2"
HorizontalGridLinesBrush="#5A5A5F"
VerticalGridLinesBrush="#5A5A5F">
你可以顯示「DataGridRows」的'Style'標籤嗎? –
編輯該帖子以顯示它 – KSF
你如何將它應用到網格?您的代碼適用於DataGrid上的'RowStyle =「{StaticResource DataGridRowStyle}」'。 –