Style w/ C# Markup & CommunityToolkit.Maui.Markup?

Question about Styling in Maui

I’ve been exploring Maui for a while and have some questions related to styling.

I prefer to work with C# markup rather than XAML, and I’m using the CommunityToolkit.Maui.Markup library. This library provides a Style<T> class, so I’m wondering if I should transition from ‘style.xaml’ to ‘style.cs’ to use Style<T>.

If so, I’d like to know how I can automatically apply these styles to my controls.

Fenced code blocks remain unchanged.

Yes, you can transition from style.xaml to style.cs and use the Style<T> class from the CommunityToolkit.Maui.Markup library.

To automatically apply these styles to your controls, you can use the StyleExtensions.Apply() method. This method can be called on any VisualElement to apply a style.

Here’s an example of how you can apply a style to a control using Style<T> in C# markup:

using Microsoft.Maui.Controls;
using CommunityToolkit.Maui.Markup;

public class MainPage : ContentPage
{
    public MainPage()
    {
        var label = new Label
        {
            Text = "Hello, World!"
        };

        // Create a style using Style<T> and set the properties you need
        var labelStyle = new Style<Label>()
            .Set(Label.FontSizeProperty, 20)
            .Set(Label.TextColorProperty, Color.Red);

        // Apply the style to the label using the Apply() method
        label.Apply(labelStyle);

        Content = new StackLayout
        {
            Children = { label }
        };
    }
}

In this example, we create a Label control and define a style labelStyle using Style<Label>. We set the FontSize and TextColor properties using the Set() method.

Then, we apply the style to the label control using the Apply() method.

By following this approach, you can transition from style.xaml to style.cs using the Style<T> class and apply styles automatically to your controls in Maui.