Posted 1 February 2023, 6:13 am EST
Android: the Maui FlexGrid control keeps its default colors (light) regardless the theme is changed from Light to Dark in the phone. How Can I fix this?
Thanks,
Louis
Forums Home / ComponentOne / MAUI Edition
Posted by: l.balazs on 1 February 2023, 6:13 am EST
Posted 1 February 2023, 6:13 am EST
Android: the Maui FlexGrid control keeps its default colors (light) regardless the theme is changed from Light to Dark in the phone. How Can I fix this?
Thanks,
Louis
Posted 6 February 2023, 5:48 am EST - Updated 6 February 2023, 5:53 am EST
Hi,
C1 controls are independent of System Themes. You can apply AppThemeBinding accordingly to customize the view in Light or Dark mode.
Please refer here: https://learn.microsoft.com/en-us/dotnet/maui/user-interface/system-theme-changes?view=net-maui-7.0
You can apply AppThemeBinding for Flexgrid too:
<ContentPage.Resources>
<!-- Dark Theme colors -->
<Color x:Key="DarkRowBackGround">DarkGray</Color>
<Color x:Key="DarkAltRowBackGround">LightGray</Color>
<Color x:Key="DarkPrimaryColor">Black</Color>
<Color x:Key="DarkForegroundColor">White</Color>
</ContentPage.Resources>
<StackLayout>
<c1:FlexGrid x:Name="grid"
BackgroundColor="{AppThemeBinding Dark={StaticResource DarkPrimaryColor}}"
RowBackground="{AppThemeBinding Dark={StaticResource DarkRowBackGround}}"
AlternatingRowBackground="{AppThemeBinding Dark={StaticResource DarkAltRowBackGround}}"
RowForeground="{AppThemeBinding Dark={StaticResource DarkForegroundColor}}"
ColumnHeaderBackground="{AppThemeBinding Dark={StaticResource DarkPrimaryColor}}"
ColumnHeaderForeground="{AppThemeBinding Dark={StaticResource DarkForegroundColor}}"
/>
</StackLayout>
Please refer the sample for full implementation: FlexGridMAUI.zip
Refer the gif for the same:
As compared to WPF or Winforms, we do not support Themes for C1 MAUI controls directly. However, we have raised an enhancement to support Themes.[Internal Tracking Id - C1XAML-31147]
Best Regards,
Nitin
Posted 7 February 2023, 2:26 am EST
Thank you. It’s clear now.
Louis