Add Local Files Page + footer to play music

pull/13/head
Corentin LEMAIRE 2 years ago
parent 70d58f5739
commit 18ea84295e

@ -11,6 +11,10 @@
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="6*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="8*"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<ContentView Style="{StaticResource FlyoutStyle}" Grid.Column="0"></ContentView>
<ScrollView Grid.Column="1"
@ -119,6 +123,8 @@
</VerticalStackLayout>
</ScrollView>
<local:FooterPage Grid.Row="1" Grid.ColumnSpan="2"/>
</Grid>

@ -9,7 +9,7 @@
<ShellContent
Title="Linaris"
ContentTemplate="{DataTemplate local:PlaylistsPage}"
Route="PlaylistPage"
Route="MainPage"
Shell.NavBarIsVisible="False"/>
</Shell>

@ -0,0 +1,59 @@
<?xml version="1.0" encoding="utf-8" ?>
<ContentView xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="Linaris.FooterPage">
<Grid Grid.ColumnSpan="2" Grid.Row="1" BackgroundColor="Gray">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<HorizontalStackLayout Margin="10" Grid.ColumnSpan="2">
<Image Source="album10.jpg" SemanticProperties.Description="Album 3" Aspect="AspectFit"/>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Label Grid.Row="0" Text="Morceau" HorizontalOptions="Center" VerticalOptions="Center" Margin="8,0,0,0" FontSize="25"></Label>
<Label Grid.Row="1" x:Name="artiste" Text="Artiste" HorizontalOptions="Center" VerticalOptions="Center" Margin="8,0,0,0" FontSize="15"></Label>
</Grid>
</HorizontalStackLayout>
<Grid Grid.Column="1">
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<StackLayout Grid.Row="0" Orientation="Horizontal" HorizontalOptions="CenterAndExpand" Margin="0,5,0,0">
<ImageButton Source="rdm.png" Margin="0,10,8,10" WidthRequest="25" HeightRequest="25" Aspect="AspectFit" MinimumWidthRequest="1" MinimumHeightRequest="1" BackgroundColor="Transparent"/>
<ImageButton x:Name="Back" Clicked="RewindButton_Clicked" Source="back.png" Margin="8,10,8,10" WidthRequest="20" HeightRequest="20" Aspect="AspectFit" MinimumWidthRequest="1" MinimumHeightRequest="1" BackgroundColor="Transparent"/>
<ImageButton x:Name="Play" Clicked="PlayButton_Clicked" Source="play.png" Margin="8,0,8,0" WidthRequest="38" HeightRequest="38" Aspect="AspectFit" MinimumWidthRequest="5" MinimumHeightRequest="5" BackgroundColor="Transparent"/>
<ImageButton x:Name="Next" Clicked="NextButton_Clicked" Source="next.png" Margin="8,10,8,10" WidthRequest="20" HeightRequest="20" Aspect="AspectFit" MinimumWidthRequest="1" MinimumHeightRequest="1" BackgroundColor="Transparent"/>
<ImageButton Source="loop.png" Margin="8,10,0,10" WidthRequest="25" HeightRequest="25" Aspect="AspectFit" MinimumWidthRequest="1" MinimumHeightRequest="1" BackgroundColor="Transparent"/>
</StackLayout>
<HorizontalStackLayout Grid.Row="1" HorizontalOptions="Center" Spacing="10" MinimumWidthRequest="15">
<Label VerticalOptions="Center" Text="00:00:00" x:Name="currentTime"></Label>
<Slider Value="0" ValueChanged="Bar_ValueChanged" WidthRequest="250" VerticalOptions="Center" x:Name="bar"/>
<Label VerticalOptions="Center" Text="00:00:00" x:Name="endTime"></Label>
</HorizontalStackLayout>
</Grid>
<Grid Grid.Column="2">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<HorizontalStackLayout Grid.Column="1" VerticalOptions="Center" Margin="0,0,15,0" HorizontalOptions="Fill">
<Image Source="volume.png" VerticalOptions="Center" WidthRequest="30" HeightRequest="30" Margin="25,25,5,25"/>
<Slider Grid.Column="1" x:Name="slider" WidthRequest="125" VerticalOptions="Center" Value="1" ValueChanged="Slider_ValueChanged"/>
</HorizontalStackLayout>
</Grid>
</Grid>
</ContentView>

@ -0,0 +1,126 @@
using NAudio.Wave;
namespace Linaris;
public partial class FooterPage : ContentView
{
WaveOutEvent outputDevice;
AudioFileReader audioFile;
System.Timers.Timer timer;
bool changementManuel = true;
bool closing = false;
string morceauEnCours;
public FooterPage()
{
InitializeComponent();
outputDevice = new WaveOutEvent();
// (s,a) = convention, s = sender, a = arguments, si appli fermée, on free tout
outputDevice.PlaybackStopped += PlaybackStoppedHandler;
morceauEnCours = "D:\\Musique\\Création\\winter.mp3";
audioFile = new AudioFileReader(morceauEnCours);
outputDevice.Init(audioFile);
}
public void PlayButton_Clicked(object sender, EventArgs e)
{
string url = ((FileImageSource)Play.Source).File;
if (url == "play.png")
{
outputDevice?.Play();
Play.Source = "pause.png";
Timer_Elapsed(sender, e);
timer = new System.Timers.Timer(1000);
timer.Elapsed += Timer_Elapsed;
timer.Enabled = true;
}
else
{
outputDevice?.Pause();
Play.Source = "play.png";
}
}
public void RewindButton_Clicked(Object sender, EventArgs e)
{
audioFile.Position = 0;
outputDevice?.Play();
Play.Source = "pause.png";
Timer_Elapsed(sender, e);
timer = new System.Timers.Timer(1000);
timer.Elapsed += Timer_Elapsed;
timer.Enabled = true;
}
public void NextButton_Clicked(Object sender, EventArgs e)
{
audioFile.Position = audioFile.Length;
}
public void StopButton_Clicked(object sender, EventArgs e)
{
outputDevice.Stop();
audioFile.Position = 0;
}
public void Slider_ValueChanged(object sender, ValueChangedEventArgs e)
{
outputDevice.Volume = (float)e.NewValue;
}
public void Bar_ValueChanged(object sender, ValueChangedEventArgs e)
{
if (changementManuel)
{
double totalSeconds = audioFile.TotalTime.TotalSeconds;
double newPosition = e.NewValue * totalSeconds;
audioFile.CurrentTime = TimeSpan.FromSeconds(newPosition);
}
else
{
changementManuel = true;
}
}
private void PlaybackStoppedHandler(object sender, StoppedEventArgs e)
{
if (closing)
{
outputDevice.Dispose();
audioFile.Dispose();
}
else
{
Play.Dispatcher.Dispatch(() => Play.Source = "play.png");
}
}
private void Timer_Elapsed(object sender, EventArgs e)
{
TimeSpan totalTimeSpan = audioFile.TotalTime;
TimeSpan currentTimeSpan = audioFile.CurrentTime;
string totalTimeFormatted = totalTimeSpan.ToString(@"hh\:mm\:ss");
string currentTimeFormatted = currentTimeSpan.ToString(@"hh\:mm\:ss");
changementManuel = false;
bar.Dispatcher.Dispatch(() => bar.Value = audioFile.CurrentTime.TotalSeconds / audioFile.TotalTime.TotalSeconds);
currentTime.Dispatcher.Dispatch(() => currentTime.Text = currentTimeFormatted);
endTime.Dispatcher.Dispatch(() => endTime.Text = totalTimeFormatted);
}
private void LoadNewAudioFile(string filePath)
{
if (outputDevice.PlaybackState == PlaybackState.Playing)
{
outputDevice.Stop();
}
audioFile = new AudioFileReader(filePath);
outputDevice.Init(audioFile);
}
}

@ -50,25 +50,40 @@
<ItemGroup>
<PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="7.0.0" />
<PackageReference Include="Syncfusion.Maui.Core" Version="21.1.37" />
<PackageReference Include="NAudio" Version="2.1.0" />
<PackageReference Include="Syncfusion.Maui.Core" Version="21.1.39" />
<PackageReference Include="Syncfusion.Maui.ProgressBar" Version="21.1.39" />
<PackageReference Include="Syncfusion.Maui.Sliders" Version="21.1.39" />
</ItemGroup>
<ItemGroup>
<Compile Update="AlbumPage.xaml.cs">
<DependentUpon>AlbumPage.xaml</DependentUpon>
</Compile>
<Compile Update="FooterPage.xaml.cs">
<DependentUpon>FooterPage.xaml</DependentUpon>
</Compile>
</ItemGroup>
<ItemGroup>
<MauiXaml Update="AlbumPage.xaml">
<Generator>MSBuild:Compile</Generator>
</MauiXaml>
<MauiXaml Update="FooterPage.xaml">
<Generator>MSBuild:Compile</Generator>
</MauiXaml>
<MauiXaml Update="LocalFilesPage.xaml">
<Generator>MSBuild:Compile</Generator>
</MauiXaml>
<MauiXaml Update="PlaylistPage.xaml">
<Generator>MSBuild:Compile</Generator>
</MauiXaml>
<MauiXaml Update="PlaylistsPage.xaml">
<Generator>MSBuild:Compile</Generator>
</MauiXaml>
<MauiXaml Update="test.xaml">
<Generator>MSBuild:Compile</Generator>
</MauiXaml>
</ItemGroup>
</Project>

@ -0,0 +1,78 @@
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="Linaris.LocalFilesPage"
xmlns:control="clr-namespace:Syncfusion.Maui.ProgressBar;assembly=Syncfusion.Maui.ProgressBar"
xmlns:sliders="clr-namespace:Syncfusion.Maui.Sliders;assembly=Syncfusion.Maui.Sliders"
xmlns:local="clr-namespace:Linaris"
Title="LocalFilesPage">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="6*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="8*"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<ContentView Style="{StaticResource FlyoutStyle}" Grid.Column="0" Grid.Row="0"></ContentView>
<ScrollView Grid.Column="1" Grid.Row="0" BackgroundColor="#404040">
<VerticalStackLayout>
<SearchBar Style="{StaticResource SearchBar}"/>
<FlexLayout Direction="Row" AlignItems="Start" JustifyContent="SpaceAround" Wrap="Wrap">
<VerticalStackLayout Margin="10">
<ImageButton Source="mp3.png" SemanticProperties.Description="MP3" Style="{StaticResource Pochette}"/>
<Label Text="The Last Breath" Style="{StaticResource Titre}"></Label>
</VerticalStackLayout>
<VerticalStackLayout Margin="10">
<ImageButton Source="wav.png" SemanticProperties.Description="WAV" Style="{StaticResource Pochette}"/>
<Label Text="Love" Style="{StaticResource Titre}"></Label>
</VerticalStackLayout>
<VerticalStackLayout Margin="10">
<ImageButton Source="ogg.png" SemanticProperties.Description="OGG" Style="{StaticResource Pochette}"/>
<Label Text="Winter" Style="{StaticResource Titre}"></Label>
</VerticalStackLayout>
<VerticalStackLayout Margin="10">
<ImageButton Source="midi.png" SemanticProperties.Description="MIDI" Style="{StaticResource Pochette}"/>
<Label Text="Croissant" Style="{StaticResource Titre}"></Label>
</VerticalStackLayout>
<VerticalStackLayout Margin="10">
<ImageButton Source="mp3.png" SemanticProperties.Description="MP3" Style="{StaticResource Pochette}"/>
<Label Text="Fredo et Louis" Style="{StaticResource Titre}"></Label>
</VerticalStackLayout>
<VerticalStackLayout Margin="10">
<ImageButton Source="mp3.png" SemanticProperties.Description="MP3" Style="{StaticResource Pochette}"/>
<Label Text="end" Style="{StaticResource Titre}"></Label>
</VerticalStackLayout>
<VerticalStackLayout Margin="10">
<ImageButton Source="wav.png" SemanticProperties.Description="WAV" Style="{StaticResource Pochette}"/>
<Label Text="calm" Style="{StaticResource Titre}"></Label>
</VerticalStackLayout>
<VerticalStackLayout Margin="10">
<ImageButton Source="mp3.png" SemanticProperties.Description="MP3" Style="{StaticResource Pochette}"/>
<Label Text="Lessgooo" Style="{StaticResource Titre}"></Label>
</VerticalStackLayout>
</FlexLayout>
</VerticalStackLayout>
</ScrollView>
<local:FooterPage Grid.Row="1" Grid.ColumnSpan="2"/>
</Grid>
</ContentPage>

@ -0,0 +1,9 @@
namespace Linaris;
public partial class LocalFilesPage : ContentPage
{
public LocalFilesPage()
{
InitializeComponent();
}
}

@ -1,6 +1,7 @@
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:local="clr-namespace:Linaris"
x:Class="Linaris.MainPage"
Title="Home">
@ -9,6 +10,10 @@
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="6*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="8*"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<ContentView Style="{StaticResource FlyoutStyle}" Grid.Column="0"></ContentView>
@ -21,72 +26,72 @@
<FlexLayout Direction="Row" AlignItems="Start" JustifyContent="SpaceAround" Wrap="Wrap">
<VerticalStackLayout Margin="10">
<Image Source="album1.jpg" SemanticProperties.Description="Album 1" Style="{StaticResource Pochette}"/>
<ImageButton Source="album1.jpg" SemanticProperties.Description="Album 1" Style="{StaticResource Pochette}"/>
<Label Text="Adios Bahamas" Style="{StaticResource Titre}"></Label>
</VerticalStackLayout>
<VerticalStackLayout Margin="10">
<Image Source="album2.jpg" SemanticProperties.Description="Album 2" Style="{StaticResource Pochette}"/>
<ImageButton Source="album2.jpg" SemanticProperties.Description="Album 2" Style="{StaticResource Pochette}"/>
<Label Text="Album" Style="{StaticResource Titre}"></Label>
</VerticalStackLayout>
<VerticalStackLayout Margin="10">
<Image Source="album3.jpg" SemanticProperties.Description="Album 3" Style="{StaticResource Pochette}"/>
<ImageButton Source="album3.jpg" SemanticProperties.Description="Album 3" Style="{StaticResource Pochette}"/>
<Label Text="Album" Style="{StaticResource Titre}"></Label>
</VerticalStackLayout>
<VerticalStackLayout Margin="10">
<Image Source="album4.jpg" SemanticProperties.Description="Album 4" Style="{StaticResource Pochette}"/>
<ImageButton Source="album4.jpg" SemanticProperties.Description="Album 4" Style="{StaticResource Pochette}"/>
<Label Text="Album" Style="{StaticResource Titre}"></Label>
</VerticalStackLayout>
<VerticalStackLayout Margin="10">
<Image Source="album5.jpg" SemanticProperties.Description="Album 5" Style="{StaticResource Pochette}"/>
<ImageButton Source="album5.jpg" SemanticProperties.Description="Album 5" Style="{StaticResource Pochette}"/>
<Label Text="Album" Style="{StaticResource Titre}"></Label>
</VerticalStackLayout>
<VerticalStackLayout Margin="10">
<Image Source="album6.jpg" SemanticProperties.Description="Album 6" Style="{StaticResource Pochette}"/>
<ImageButton Source="album6.jpg" SemanticProperties.Description="Album 6" Style="{StaticResource Pochette}"/>
<Label Text="Album" Style="{StaticResource Titre}"></Label>
</VerticalStackLayout>
<VerticalStackLayout Margin="10">
<Image Source="album7.png" SemanticProperties.Description="Album 7" Style="{StaticResource Pochette}"/>
<ImageButton Source="album7.png" SemanticProperties.Description="Album 7" Style="{StaticResource Pochette}"/>
<Label Text="Album" Style="{StaticResource Titre}"></Label>
</VerticalStackLayout>
<VerticalStackLayout Margin="10">
<Image Source="album8.jpg" SemanticProperties.Description="Album 8" Style="{StaticResource Pochette}"/>
<ImageButton Source="album8.jpg" SemanticProperties.Description="Album 8" Style="{StaticResource Pochette}"/>
<Label Text="Album" Style="{StaticResource Titre}"></Label>
</VerticalStackLayout>
<VerticalStackLayout Margin="10">
<Image Source="album9.jpg" SemanticProperties.Description="Album 9" Style="{StaticResource Pochette}"/>
<ImageButton Source="album9.jpg" SemanticProperties.Description="Album 9" Style="{StaticResource Pochette}"/>
<Label Text="Night Visions" Style="{StaticResource Titre}"></Label>
</VerticalStackLayout>
<VerticalStackLayout Margin="10">
<Image Source="album10.jpg" SemanticProperties.Description="Album 10" Style="{StaticResource Pochette}"/>
<ImageButton Source="album10.jpg" SemanticProperties.Description="Album 10" Style="{StaticResource Pochette}"/>
<Label Text="Smoke &amp; Mirrors" Style="{StaticResource Titre}"></Label>
</VerticalStackLayout>
<VerticalStackLayout Margin="10">
<Image Source="album11.jpg" SemanticProperties.Description="Album 11" Style="{StaticResource Pochette}"/>
<ImageButton Source="album11.jpg" SemanticProperties.Description="Album 11" Style="{StaticResource Pochette}"/>
<Label Text="Evolve" Style="{StaticResource Titre}"></Label>
</VerticalStackLayout>
<VerticalStackLayout Margin="10">
<Image Source="album12.jpg" SemanticProperties.Description="Album 12" Style="{StaticResource Pochette}"/>
<ImageButton Source="album12.jpg" SemanticProperties.Description="Album 12" Style="{StaticResource Pochette}"/>
<Label Text="Origins" Style="{StaticResource Titre}"></Label>
</VerticalStackLayout>
<VerticalStackLayout Margin="10">
<Image Source="album13.jpg" SemanticProperties.Description="Album 13" Style="{StaticResource Pochette}"/>
<ImageButton Source="album13.jpg" SemanticProperties.Description="Album 13" Style="{StaticResource Pochette}"/>
<Label Text="Mercury Act 1" Style="{StaticResource Titre}"></Label>
</VerticalStackLayout>
<VerticalStackLayout Margin="10">
<Image Source="album14.jpg" SemanticProperties.Description="Album 14" Style="{StaticResource Pochette}"/>
<ImageButton Source="album14.jpg" SemanticProperties.Description="Album 14" Style="{StaticResource Pochette}"/>
<Label Text="Mercury Act 2" Style="{StaticResource Titre}"></Label>
</VerticalStackLayout>
@ -96,6 +101,8 @@
</ScrollView>
<local:FooterPage Grid.Row="1" Grid.ColumnSpan="2"/>
</Grid>
</ContentPage>

@ -1,6 +1,7 @@
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:local="clr-namespace:Linaris"
x:Class="Linaris.PlaylistPage"
xmlns:avatarview="clr-namespace:Syncfusion.Maui.Core;assembly=Syncfusion.Maui.Core"
Title="PlaylistPage">
@ -9,6 +10,10 @@
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="6*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="8*"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<ContentView Style="{StaticResource FlyoutStyle}" Grid.Column="0"></ContentView>
<ScrollView Grid.Column="1"
BackgroundColor="#404040">
@ -84,5 +89,6 @@
</Frame>
</VerticalStackLayout>
</ScrollView>
<local:FooterPage Grid.Row="1" Grid.ColumnSpan="2"/>
</Grid>
</ContentPage>

@ -1,6 +1,7 @@
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:local="clr-namespace:Linaris"
x:Class="Linaris.PlaylistsPage"
Title="PlaylistsPage">
@ -9,6 +10,10 @@
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="6*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="8*"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<ContentView Style="{StaticResource FlyoutStyle}" Grid.Column="0"></ContentView>
@ -21,42 +26,42 @@
<FlexLayout Direction="Row" AlignItems="Start" JustifyContent="SpaceAround" Wrap="Wrap">
<VerticalStackLayout Margin="10">
<Image Source="playlist.jpg" SemanticProperties.Description="Playlist 1980's" Style="{StaticResource Pochette}"/>
<ImageButton Source="playlist.jpg" SemanticProperties.Description="Playlist 1980's" Style="{StaticResource Pochette}"/>
<Label Text="1980's" Style="{StaticResource Titre}"></Label>
</VerticalStackLayout>
<VerticalStackLayout Margin="10">
<Image Source="playlist1.png" SemanticProperties.Description="Playlist 1990's" Style="{StaticResource Pochette}"/>
<ImageButton Source="playlist1.png" SemanticProperties.Description="Playlist 1990's" Style="{StaticResource Pochette}"/>
<Label Text="1990's" Style="{StaticResource Titre}"></Label>
</VerticalStackLayout>
<VerticalStackLayout Margin="10">
<Image Source="playlist2.jpg" SemanticProperties.Description="Playlist 2000's" Style="{StaticResource Pochette}"/>
<ImageButton Source="playlist2.jpg" SemanticProperties.Description="Playlist 2000's" Style="{StaticResource Pochette}"/>
<Label Text="2000's" Style="{StaticResource Titre}"></Label>
</VerticalStackLayout>
<VerticalStackLayout Margin="10">
<Image Source="playlist3.jpg" SemanticProperties.Description="Playlist 2010's" Style="{StaticResource Pochette}"/>
<ImageButton Source="playlist3.jpg" SemanticProperties.Description="Playlist 2010's" Style="{StaticResource Pochette}"/>
<Label Text="2010's" Style="{StaticResource Titre}"></Label>
</VerticalStackLayout>
<VerticalStackLayout Margin="10">
<Image Source="playlist4.png" SemanticProperties.Description="Playlist 2020" Style="{StaticResource Pochette}"/>
<ImageButton Source="playlist4.png" SemanticProperties.Description="Playlist 2020" Style="{StaticResource Pochette}"/>
<Label Text="2020" Style="{StaticResource Titre}"></Label>
</VerticalStackLayout>
<VerticalStackLayout Margin="10">
<Image Source="playlist5.jpg" SemanticProperties.Description="Playlist 2021" Style="{StaticResource Pochette}"/>
<ImageButton Source="playlist5.jpg" SemanticProperties.Description="Playlist 2021" Style="{StaticResource Pochette}"/>
<Label Text="2021" Style="{StaticResource Titre}"></Label>
</VerticalStackLayout>
<VerticalStackLayout Margin="10">
<Image Source="playlist6.png" SemanticProperties.Description="Playlist 2022" Style="{StaticResource Pochette}"/>
<ImageButton Source="playlist6.png" SemanticProperties.Description="Playlist 2022" Style="{StaticResource Pochette}"/>
<Label Text="2022" Style="{StaticResource Titre}"></Label>
</VerticalStackLayout>
<VerticalStackLayout Margin="10">
<Image Source="playlist7.png" SemanticProperties.Description="Playlist 2023" Style="{StaticResource Pochette}"/>
<ImageButton Source="playlist7.png" SemanticProperties.Description="Playlist 2023" Style="{StaticResource Pochette}"/>
<Label Text="2023" Style="{StaticResource Titre}"></Label>
</VerticalStackLayout>
@ -65,6 +70,8 @@
</VerticalStackLayout>
</ScrollView>
<local:FooterPage Grid.Row="1" Grid.ColumnSpan="2"/>
</Grid>

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

@ -3,7 +3,9 @@
<ResourceDictionary
xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:avatarview="clr-namespace:Syncfusion.Maui.Core;assembly=Syncfusion.Maui.Core">
xmlns:avatarview="clr-namespace:Syncfusion.Maui.Core;assembly=Syncfusion.Maui.Core"
xmlns:local="clr-namespace:Linaris"
xmlns:test="local:LocalFilesPage">
<ControlTemplate x:Key="flyout">
<VerticalStackLayout BackgroundColor="black" Spacing="20" Margin="0,20,0,0">
@ -96,7 +98,7 @@
<Setter Property="Margin" Value="10"></Setter>
</Style>
<Style x:Key="Pochette" TargetType="Image">
<Style x:Key="Pochette" TargetType="ImageButton">
<Setter Property="HeightRequest" Value="175"></Setter>
<Setter Property="HorizontalOptions" Value="Center"></Setter>
</Style>

Loading…
Cancel
Save