Skip to main content

.NET MAUI Buttons as Cards with Custom Content

  • 2 minutes to read

The DXButton control allows you to imitate cards and fill them with custom content.

DevExpress MAUI DXButton - Card with Custom Content

Card Content

You can place custom content directly into DXButton as shown in the example below:

<VerticalStackLayout>  
    <dx:DXButton ... >
        <Grid ColumnDefinitions="*, Auto" RowDefinitions="*,*">
            <Label FontAttributes="Bold" Text="Active Users" VerticalOptions="Start"/>
            <Image Source="online" Grid.Column="2"  VerticalOptions="Start"/>
            <HorizontalStackLayout Grid.Row="1" VerticalOptions="End">
                <Label Text="120" FontAttributes="Bold"/>
                <Label TextColor="DarkGray" Text="online" Margin="4,0,0,0"/>
            </HorizontalStackLayout>
        </Grid>
    </dx:DXButton>
</VerticalStackLayout>

You can also use the ContentTemplate property to specify custom content. (The only difference between this and previous examples is that you explicitly define a template property. Content management capabilities remain the same.)

<VerticalStackLayout>  
    <dx:DXButton ... >
        <dx:DXButton.ContentTemplate>
            <DataTemplate>
                <Grid ColumnDefinitions="*, Auto" RowDefinitions="*,*">
                    <Label FontAttributes="Bold" Text="Active Users222" VerticalOptions="Start"/>
                    <Image Source="online" Grid.Column="2"  VerticalOptions="Start"/>
                    <HorizontalStackLayout Grid.Row="1" VerticalOptions="End">
                        <Label TextColor="Black" Text="120" FontAttributes="Bold"/>
                        <Label TextColor="DarkGray" Text="online" Margin="4,0,0,0"/>
                    </HorizontalStackLayout>
                </Grid>
            </DataTemplate>
        </dx:DXButton.ContentTemplate>
    </dx:DXButton>
</VerticalStackLayout>

Card Appearance

You can customize a DXButton control to make it look like a card. For this purpose, use the following properties:

BackgroundColor
Gets or sets the background color of the button.
PressedBackgroundColor
Gets or sets the background color of the button in the pressed state. This is a bindable property.
BorderColor
Gets or sets the border color of the button. This is a bindable property.
PressedBorderColor
Gets or sets the border color of the button in the pressed state. This is a bindable property.
BorderThickness
Gets or sets the border thickness of the button. This is a bindable property.
CornerRadius
Gets or sets the corner radius of the button. This is a bindable property.
PressedScale
Gets or sets the scale for the button in the pressed state.
<VerticalStackLayout>  
    <dx:DXButton 
            BackgroundColor="Transparent"
            PressedBackgroundColor="Transparent"
            BorderColor="Gray"
            PressedBorderColor="Gray"
            BorderThickness="1"
            CornerRadius="20"
            PressedScale="1"
            HeightRequest="100" 
            WidthRequest="300">
        <dx:DXButton.ContentTemplate>
            <DataTemplate>
                <!-- ... -->
            </DataTemplate>
        </dx:DXButton.ContentTemplate>
    </dx:DXButton>
</VerticalStackLayout>

Cards with Custom Content

This example turns DXButton controls into clickable cards with custom content.

Cards with Custom Content Featured Scenario