0
나는 즉시 WPF DataGrid의 SelectionBackground를 변경하려고합니다. 나는 그것을 묶어 봤는데 작동하지 않았다. 나는 마침내 다음과 같은 발견했지만 여전히 동적 "화이트 스톱"을 제공 할 수 없습니다. 내가 정말로 원하는 것은 LinearGradientBrush에 곧바로 바인드하여 상황이 바뀌면서 밝아지고 어둡게 될 수 있지만 "화이트 스톱"을 동적으로 변화시키는 것에 묶는 방법에 대해 해결할 것입니다.SelectionBackgroundColorKey를 LinearGradientBrush에 바인딩하는 방법은 무엇입니까?
<DataGrid.Resources>
<SolidColorBrush x:Key="SelectionBackgroundColorKey" />
<LinearGradientBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" StartPoint="0,0" EndPoint="0,1">
<GradientStop Color="{Binding Source={StaticResource SelectionBackgroundColorKey}, Path=Color}" Offset="0.0" />
<GradientStop Color="White" Offset="0.3" />
<GradientStop Color="{Binding Source={StaticResource SelectionBackgroundColorKey}, Path=Color}" Offset="1.0" />
</LinearGradientBrush>
<SolidColorBrush x:Key="SelectionTextColorKey" Color="Black" />
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightTextBrushKey}" Color="{Binding Source={StaticResource SelectionTextColorKey}, Path=Color}" />
</DataGrid.Resources>
코드 숨김 조각 :
private void DataGridReservationsSelectionChanged(object argSender, SelectionChangedEventArgs argEvtArgs)
{
Color localBackgroundColorKey = ApplicationSettings.ReservationNormalSelectedBackgroundColor;
Color localTextColorKey = ApplicationSettings.ReservationNormalSelectedTextColor;
Reservation localReservation = dataGridReservations.SelectedItem as Reservation;
if (localReservation == null)
{
return;
}
if (localReservation.IsArrived)
{
localBackgroundColorKey = ApplicationSettings.ReservationArrivedSelectedBackgroundColor;
localTextColorKey = ApplicationSettings.ReservationArrivedSelectedTextColor;
}
else if (localReservation.IsCanceled)
{
localBackgroundColorKey = ApplicationSettings.ReservationCanceledSelectedBackgroundColor;
localTextColorKey = ApplicationSettings.ReservationCanceledSelectedTextColor;
}
... etc...
((SolidColorBrush)dataGridReservations.Resources["SelectionBackgroundColorKey"]).Color = localBackgroundColorKey;
((SolidColorBrush)dataGridReservations.Resources["SelectionTextColorKey"]).Color = localTextColorKey;
}