Warna latar belakang default dari baris yang dipilih di DataGrid sangat gelap sehingga saya tidak bisa membacanya. Apakah ada cara menimpanya?
Sudah mencoba ini
<dg:DataGrid.RowStyle>
<Style TargetType="{x:Type dg:DataGridRow}">
<Style.Triggers>
<Trigger Property="IsSelected" Value="True" >
<Setter Property="Background" Value="Gainsboro" />
</Trigger>
</Style.Triggers>
</Style>
</dg:DataGrid.RowStyle>
Tapi tetap saja tidak ada ...
Jawaban:
Solusi di atas meninggalkan batas biru di sekitar setiap sel dalam kasus saya.
Ini adalah solusi yang berhasil untuk saya. Ini sangat sederhana, cukup tambahkan ini ke
DataGrid
. Anda bisa mengubahnya dariSolidColorBrush
kuas yang lain seperti gradien linier.sumber
<DataGrid>ItemsSource="{Binding Path=MySelector}" SelectedItem="{Binding SelectedItem, Mode=TwoWay}"
baris tersebut hanya LightGrey. Apakah ada SystemColors? ´SystemColors.ControlBrushKey
.Mengerti. Tambahkan berikut ini di bagian DataGrid.Resources:
sumber
BorderBrush
tetap berwarna biru, jika itu mengganggu seseorang, tambahkan sajaSetter
elemen lain , yang menetapkanBorderBrush
properti dependensi ke warna (nilai) yang sama denganBackground
dirinya sendiri.Sebagai jawaban dari jawaban @Seb Kade, Anda dapat sepenuhnya mengontrol warna dari baris yang dipilih dan yang tidak dipilih menggunakan yang berikut
Style
:Anda tentu saja dapat memasukkan warna mana yang Anda sukai. Ini
Style
juga akan berfungsi untuk item koleksi lain sepertiListBoxItem
s (jika Anda gantiTargetType="{x:Type DataGridRow}"
denganTargetType="{x:Type ListBoxItem}"
misalnya).sumber
Color
properti yang ketigaSolidColorbrush
dalam contoh saya ke warna yang Anda suka. Menggunakan deklarasi ini sebenarnya mengatur warnaSolidColorbrush
yangSystemColors.HighlightTextBrushKey
digunakan. Berhati-hatilah karena Anda belum mengaturForeground
warna diStyle
tempat lain karena ini dapat mengesampingkan pengaturan diResources
atas.SystemColors.InactiveSelectionHighlightBrushKey
, atau baris akan menyorot ketika kisi kehilangan fokusSaya memiliki masalah ini dan saya hampir mencabut rambut saya, dan saya tidak dapat menemukan jawaban yang sesuai di internet. Saya mencoba untuk mengontrol warna latar belakang dari baris yang dipilih dalam WPF DataGrid. Itu tidak akan berhasil. Dalam kasus saya, alasannya adalah karena saya juga memiliki CellStyle di datagrid saya, dan CellStyle mengalahkan RowStyle yang saya setting. Menariknya, karena CellStyle bahkan tidak mengatur warna latar belakang, yang sebaliknya diatur oleh properti RowBackground dan AlternateRowBackground. Namun demikian, mencoba mengatur warna latar belakang dari baris yang dipilih tidak bekerja sama sekali ketika saya melakukan ini:
dan itu berhasil ketika saya memindahkan gaya yang diinginkan untuk baris yang dipilih dari gaya baris dan ke gaya sel, seperti:
Hanya memposting ini jika seseorang memiliki masalah yang sama.
sumber
Pemicu IsSelected default mengubah 3 properti, Background, Foreground & BorderBrush. Jika Anda ingin mengubah batas serta latar belakang, sertakan saja ini di pemicu gaya Anda.
sumber
Beberapa alasan yang saya alami dari deretan acara yang dipilih tidak berfungsi
Inilah yang membantu saya. Mengatur Style untuk DataGridCell
Dan karena saya menggunakan kolom templat dengan label di dalamnya, saya mengikat properti Foreground ke wadah Foreground menggunakan pengikatan RelativeSource:
sumber
Saya sudah mencoba ControlBrushKey tetapi tidak berhasil untuk baris yang tidak dipilih. Latar belakang untuk baris yang tidak dipilih masih putih. Tapi saya sudah berhasil mengetahui bahwa saya harus mengganti gaya baris.
sumber
Saya menghabiskan sebagian besar hari dengan mengotak-atik masalah ini. Ternyata properti RowBackground pada DataGrid - yang telah saya tetapkan - mengungguli semua upaya untuk mengubahnya. Segera setelah saya menghapusnya, semuanya bekerja. (Sama berlaku untuk Foreground yang diatur dalam DataGridTextColumn, omong-omong).
sumber