I have a working solution for this here, you could use Shell renderer but it feels too annoying to me personally
A base content page for the template: https://github.com/FreakyAli/Maui.FreakyEffects/blob/dev/Maui.FreakyEffects/Samples/FreakyBaseContentPage.xaml
And its application :
https://github.com/FreakyAli/Maui.FreakyEffects/blob/dev/Maui.FreakyEffects/Samples/SkeletonEffect/SkeletonEffectView.xaml
For people who would like the code directly:
Create a template:
<ContentPage.Resources>
<ResourceDictionary>
<ControlTemplate x:Key="HeaderControlTemplate">
<AbsoluteLayout>
<Grid
BackgroundColor="{TemplateBinding Parent.NavBarBackgroundColor}"
AbsoluteLayout.LayoutBounds="0,0,1,1"
AbsoluteLayout.LayoutFlags="All"
RowSpacing="0"
ColumnSpacing="0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="25*" />
<ColumnDefinition Width="50*" />
<ColumnDefinition Width="25*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="7*" />
<RowDefinition Height="93*" />
</Grid.RowDefinitions>
<Border
Grid.Row="0"
Grid.Column="0"
Margin="15,0,0,0"
StrokeThickness="0"
IsVisible="{TemplateBinding Parent.IsBackButtonVisible}"
BackgroundColor="{StaticResource Tertiary}"
VerticalOptions="Center"
HorizontalOptions="Start"
HeightRequest="30"
WidthRequest="30">
<Border.GestureRecognizers>
<TapGestureRecognizer Command="{TemplateBinding Parent.BackButtonCommand}"/>
</Border.GestureRecognizers>
<Border.StrokeShape>
<RoundRectangle CornerRadius="5" />
</Border.StrokeShape>
<controls:FreakySvgImageView
InputTransparent="True"
ResourceId="{x:Static constants:Constants.BackButton}"
SvgAssembly="{x:Static constants:Constants.SvgAssembly}"
ImageColor="White"
SvgMode="AspectFit" />
</Border>
<Label
Grid.Row="0"
Grid.Column="1"
Margin="0,0,0,0"
FontSize="Medium"
TextColor="{TemplateBinding Parent.HeaderTextColor}"
HorizontalOptions="CenterAndExpand"
Style="{DynamicResource HeaderLabelStyle}"
Text="{TemplateBinding Parent.HeaderText}"
VerticalOptions="Center" />
<Border
Grid.Row="0"
Grid.Column="2"
Margin="0,0,15,0"
StrokeThickness="0"
IsVisible="{TemplateBinding Parent.IsContextVisible}"
BackgroundColor="{StaticResource Tertiary}"
VerticalOptions="Center"
HorizontalOptions="End"
HeightRequest="30"
WidthRequest="30">
<Border.StrokeShape>
<RoundRectangle CornerRadius="5" />
</Border.StrokeShape>
<controls:FreakySvgImageView
ImageColor="White"
ResourceId="{x:Static constants:Constants.MeatballMenu}"
SvgAssembly="{x:Static constants:Constants.SvgAssembly}"
SvgMode="AspectFit">
</controls:FreakySvgImageView>
</Border>
<ContentPresenter
Grid.Row="1"
IsClippedToBounds="True"
BackgroundColor="{StaticResource Primary}"
Grid.ColumnSpan="3"
VerticalOptions="FillAndExpand" />
</Grid>
</AbsoluteLayout>
</ControlTemplate>
</ResourceDictionary>
</ContentPage.Resources>
In the content page you want it to show up (Should inherit from your base content page):
<ContentPage.Content>
<ContentView x:Name="template" ControlTemplate="{StaticResource HeaderControlTemplate}">
// Your design here
</ContentView>
</ContentPage.Content>