First pass at some styling

This commit is contained in:
watsonb8 2019-12-01 06:53:30 -05:00
parent ee0f8afd86
commit 061adabff8
14 changed files with 151 additions and 197 deletions

View File

@ -1,112 +1,62 @@
<Project <Project Sdk="Microsoft.NET.Sdk">
Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework> <TargetFramework>netstandard2.0</TargetFramework>
<ProduceAssemblyReference>true</ProduceAssemblyReference> <ProduceAssemblyReference>true</ProduceAssemblyReference>
</PropertyGroup> </PropertyGroup>
<PropertyGroup <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
<DebugType>pdbonly</DebugType> <DebugType>pdbonly</DebugType>
<DebugSymbols>true</DebugSymbols> <DebugSymbols>true</DebugSymbols>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference <PackageReference Include="Xamarin.Forms" Version="4.3.0.991211" />
Include="Xamarin.Forms" <PackageReference Include="Xamarin.Essentials" Version="1.3.1" />
Version="4.3.0.991211"/> <PackageReference Include="Xamarin.Forms.DataGrid" Version="3.1.0" />
<PackageReference <PackageReference Include="taglib-sharp-netstandard2.0" Version="2.1.0" />
Include="Xamarin.Essentials" <PackageReference Include="LibVLCSharp.Forms" Version="3.3.1" />
Version="1.3.1"/> <PackageReference Include="VideoLAN.LibVLC.Mac" Version="3.1.3.1" />
<PackageReference <PackageReference Include="Grpc" Version="2.25.0" />
Include="Xamarin.Forms.DataGrid" <PackageReference Include="Grpc.Tools" Version="2.25.0" PrivateAssests="All">
Version="3.1.0"/>
<PackageReference
Include="taglib-sharp-netstandard2.0"
Version="2.1.0"/>
<PackageReference
Include="LibVLCSharp.Forms"
Version="3.3.1"/>
<PackageReference
Include="VideoLAN.LibVLC.Mac"
Version="3.1.3.1"/>
<PackageReference
Include="Grpc"
Version="2.25.0"/>
<PackageReference
Include="Grpc.Tools"
Version="2.25.0"
PrivateAssests="All">
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
<PrivateAssets>all</PrivateAssets> <PrivateAssets>all</PrivateAssets>
</PackageReference> </PackageReference>
<PackageReference <PackageReference Include="Google.Protobuf" Version="3.10.1" />
Include="Google.Protobuf" <PackageReference Include="Xam.Plugins.Settings" Version="3.1.1" />
Version="3.10.1"/> <PackageReference Include="Sharpnado.Forms.HorizontalListView" Version="1.3.0" />
<PackageReference
Include="Xam.Plugins.Settings"
Version="3.1.1"/>
<PackageReference
Include="Sharpnado.Forms.HorizontalListView"
Version="1.3.0"/>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Folder <Folder Include="Design\" />
Include="Design\"/> <Folder Include="Design\Components\" />
<Folder <Folder Include="Design\Views\" />
Include="Design\Components\"/> <Folder Include="Design\Views\Songs\" />
<Folder <Folder Include="Design\Views\MainView\" />
Include="Design\Views\"/> <Folder Include="Design\Behaviors\" />
<Folder <Folder Include="Design\Components\NavigationMenu\" />
Include="Design\Views\Songs\"/> <Folder Include="Design\Views\Albums\" />
<Folder <Folder Include="Design\Views\Artists\" />
Include="Design\Views\MainView\"/> <Folder Include="Design\Views\Stations\" />
<Folder <Folder Include="Utils\" />
Include="Design\Behaviors\"/> <Folder Include="Models\" />
<Folder <Folder Include="Services\" />
Include="Design\Components\NavigationMenu\"/> <Folder Include="Design\Views\Party\" />
<Folder <Folder Include="Design\Components\HostSelector\" />
Include="Design\Views\Albums\"/> <Folder Include="Design\Components\MemberList\" />
<Folder <Folder Include="Design\Components\Library\" />
Include="Design\Views\Artists\"/> <Folder Include="Design\Views\Profile\" />
<Folder
Include="Design\Views\Stations\"/>
<Folder
Include="Utils\"/>
<Folder
Include="Models\"/>
<Folder
Include="Services\"/>
<Folder
Include="Design\Views\Party\"/>
<Folder
Include="Design\Components\HostSelector\"/>
<Folder
Include="Design\Components\MemberList\"/>
<Folder
Include="Design\Components\Queue\"/>
<Folder
Include="Design\Views\Profile\"/>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Compile <Compile Update="Design\Components\MusicPlayer\Player.xaml.cs">
Update="Design\Components\MusicPlayer\Player.xaml.cs">
<DependentUpon>Player.xaml</DependentUpon> <DependentUpon>Player.xaml</DependentUpon>
</Compile> </Compile>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Protobuf <Protobuf Include="Proto\general.proto" />
Include="Proto\general.proto"/> <Protobuf Include="Proto\party.proto" />
<Protobuf <Protobuf Include="Proto\events.proto" />
Include="Proto\party.proto"/> <Protobuf Include="Proto\playback.proto" />
<Protobuf <Protobuf Include="Proto\sync.proto" />
Include="Proto\events.proto"/>
<Protobuf
Include="Proto\playback.proto"/>
<Protobuf
Include="Proto\sync.proto"/>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<EmbeddedResource <EmbeddedResource Update="Design\Components\NavigationMenu\NavigationMenu.css">
Update="Design\Components\NavigationMenu\NavigationMenu.css">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</EmbeddedResource> </EmbeddedResource>
</ItemGroup> </ItemGroup>

View File

@ -0,0 +1,3 @@
#LibraryDataGrid {
background-color: black
}

View File

@ -3,10 +3,10 @@
xmlns="http://xamarin.com/schemas/2014/forms" xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:dg="clr-namespace:Xamarin.Forms.DataGrid;assembly=Xamarin.Forms.DataGrid" xmlns:dg="clr-namespace:Xamarin.Forms.DataGrid;assembly=Xamarin.Forms.DataGrid"
x:Class="Aurora.Design.Components.Queue.Queue"> x:Class="Aurora.Design.Components.Library.Library">
<ContentView.Content> <ContentView.Content>
<dg:DataGrid <dg:DataGrid
x:Name="QueueDataGrid" x:Name="LibraryDataGrid"
SelectionEnabled="True" SelectionEnabled="True"
RowHeight="25" RowHeight="25"
HeaderHeight="40" HeaderHeight="40"

View File

@ -5,14 +5,14 @@ using Xamarin.Forms;
using Xamarin.Forms.DataGrid; using Xamarin.Forms.DataGrid;
using Aurora.Models.Media; using Aurora.Models.Media;
namespace Aurora.Design.Components.Queue namespace Aurora.Design.Components.Library
{ {
public partial class Queue : ContentView public partial class Library : ContentView
{ {
public Queue() public Library()
{ {
InitializeComponent(); InitializeComponent();
this.QueueDataGrid.ItemSelected += (sender, e) => this.LibraryDataGrid.ItemSelected += (sender, e) =>
{ {
this.SelectedItem = e.SelectedItem; this.SelectedItem = e.SelectedItem;
}; };
@ -28,7 +28,7 @@ namespace Aurora.Design.Components.Queue
public static readonly BindableProperty ItemsSourceProperty = public static readonly BindableProperty ItemsSourceProperty =
BindableProperty.Create(propertyName: "ItemsSource", BindableProperty.Create(propertyName: "ItemsSource",
returnType: typeof(IEnumerable<object>), returnType: typeof(IEnumerable<object>),
declaringType: typeof(Queue), declaringType: typeof(Library),
defaultBindingMode: BindingMode.Default, defaultBindingMode: BindingMode.Default,
propertyChanged: OnItemsSourceChanged); propertyChanged: OnItemsSourceChanged);
@ -56,9 +56,10 @@ namespace Aurora.Design.Components.Queue
/// <param name="newValue"></param> /// <param name="newValue"></param>
private static void OnItemsSourceChanged(BindableObject bindable, object oldValue, object newValue) private static void OnItemsSourceChanged(BindableObject bindable, object oldValue, object newValue)
{ {
Queue control = bindable as Queue; Library control = bindable as Library;
var queueDataGrid = control.FindByName("QueueDataGrid") as DataGrid;
queueDataGrid.ItemsSource = newValue as IEnumerable<object>; var libraryDataGrid = control.LibraryDataGrid;
libraryDataGrid.ItemsSource = newValue as IEnumerable<object>;
} }
#endregion ItemsSource Property #endregion ItemsSource Property
@ -72,7 +73,7 @@ namespace Aurora.Design.Components.Queue
public static readonly BindableProperty SelectedItemProperty = public static readonly BindableProperty SelectedItemProperty =
BindableProperty.Create(propertyName: "SelectedItem", BindableProperty.Create(propertyName: "SelectedItem",
returnType: typeof(object), returnType: typeof(object),
declaringType: typeof(Queue), declaringType: typeof(Library),
defaultBindingMode: BindingMode.TwoWay); defaultBindingMode: BindingMode.TwoWay);
/// <summary> /// <summary>
@ -101,7 +102,7 @@ namespace Aurora.Design.Components.Queue
public static readonly BindableProperty ItemDoubleClickedProperty = public static readonly BindableProperty ItemDoubleClickedProperty =
BindableProperty.Create(propertyName: "ItemDoubleClicked", BindableProperty.Create(propertyName: "ItemDoubleClicked",
returnType: typeof(Command), returnType: typeof(Command),
declaringType: typeof(Queue), declaringType: typeof(Library),
propertyChanged: OnDoubleClickPropertyChanged); propertyChanged: OnDoubleClickPropertyChanged);
/// <summary> /// <summary>
@ -128,8 +129,8 @@ namespace Aurora.Design.Components.Queue
/// <param name="oldValue"></param> /// <param name="oldValue"></param>
private static void OnDoubleClickPropertyChanged(BindableObject bindable, object newValue, object oldValue) private static void OnDoubleClickPropertyChanged(BindableObject bindable, object newValue, object oldValue)
{ {
Queue control = bindable as Queue; Library control = bindable as Library;
var queueDataGrid = control.QueueDataGrid; var queueDataGrid = control.LibraryDataGrid;
if (queueDataGrid.GestureRecognizers.Count > 0) if (queueDataGrid.GestureRecognizers.Count > 0)
{ {
var gestureRecognizer = queueDataGrid.GestureRecognizers.First(); var gestureRecognizer = queueDataGrid.GestureRecognizers.First();

View File

@ -4,21 +4,29 @@
ListView { ListView {
background-color: #232323; background-color: #232323;
margin-left: 20; margin-left: 15;
margin-top: 20; margin-top: 40;
} }
#GroupTemplate Label { #GroupTemplate {
color: white; align-items: end;
font-size: 14;
font-family: Courier New, Courier, monospace;
font-weight: 100;
margin-top: 500;
} }
#ItemTemplate label { #GroupCell Label {
color: white; color: lightgray;
font-size: 18; background-color: #232323;
font-size: 12;
font-family: Courier New, Courier, monospace; font-family: Courier New, Courier, monospace;
font-weight: 400; font-style: italic;
padding-top: 18;
}
#ItemCell label {
color: white;
background-color: #232323;
font-size: 15;
font-family: Courier New, Courier, monospace;
font-style: normal;
text-align: left;
padding-top: 12;
} }

View File

@ -14,18 +14,20 @@
SeparatorVisibility="None" SeparatorVisibility="None"
HasUnevenRows="true" HasUnevenRows="true"
IsGroupingEnabled="true" IsGroupingEnabled="true"
RowHeight="35"
CachingStrategy="RecycleElement"> CachingStrategy="RecycleElement">
<ListView.GroupHeaderTemplate> <ListView.GroupHeaderTemplate>
<DataTemplate> <DataTemplate>
<ViewCell x:Name="GroupTemplate"> <ViewCell x:Name="GroupCell">
<Label <Label
VerticalTextAlignment="Center"
Text="{Binding GroupHeading}"/> Text="{Binding GroupHeading}"/>
</ViewCell> </ViewCell>
</DataTemplate> </DataTemplate>
</ListView.GroupHeaderTemplate> </ListView.GroupHeaderTemplate>
<ListView.ItemTemplate> <ListView.ItemTemplate>
<DataTemplate> <DataTemplate>
<ViewCell x:Name="ItemTemplate"> <ViewCell x:Name="ItemCell">
<Label <Label
Text="{Binding Title}"/> Text="{Binding Title}"/>
</ViewCell> </ViewCell>

View File

@ -11,10 +11,13 @@ namespace Aurora.Design.Components.NavigationMenu
{ {
InitializeComponent(); InitializeComponent();
ListView = MenuItemsListView; ListView = MenuItemsListView;
} }
public ListView ListView; public ListView ListView;
public static readonly BindableProperty ItemsProperty = public static readonly BindableProperty ItemsProperty =
BindableProperty.Create(propertyName: nameof(Items), BindableProperty.Create(propertyName: nameof(Items),
returnType: typeof(ObservableCollection<NavigationItem>), returnType: typeof(ObservableCollection<NavigationItem>),

View File

@ -0,0 +1,13 @@
^ContentPage {
background-color: #232323;
}
#Header {
background-color: #232323;
}
#Header > Entry {
margin-left: 155;
margin-top: 2;
margin-bottom: 2;
}

View File

@ -4,20 +4,50 @@
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:views="clr-namespace:Aurora.Design.Views.MainView" xmlns:views="clr-namespace:Aurora.Design.Views.MainView"
xmlns:navigation="clr-namespace:Aurora.Design.Components.NavigationMenu" xmlns:navigation="clr-namespace:Aurora.Design.Components.NavigationMenu"
xmlns:mp="clr-namespace:Aurora.Design.Components.MediaPlayer"
x:Class="Aurora.Design.Views.Main.MainView"> x:Class="Aurora.Design.Views.Main.MainView">
<ContentPage.Resources>
<StyleSheet
Source="MainView.css"/>
</ContentPage.Resources>
<Grid> <Grid>
<Grid.ColumnDefinitions> <Grid.RowDefinitions>
<ColumnDefinition Width="150"/> <RowDefinition Height="28"/>
<ColumnDefinition Width="*"/> <RowDefinition Height="*"/>
</Grid.ColumnDefinitions> <RowDefinition Height="50"/>
</Grid.RowDefinitions>
<!--Header-->
<StackLayout
x:Name="Header"
Orientation="Horizontal">
<Entry Text="Search"/>
</StackLayout>
<navigation:NavigationMenu <!--Library Grid-->
<Grid Grid.Row="1">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="150"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<navigation:NavigationMenu
Grid.Column="0" Grid.Column="0"
x:Name="MasterPage" x:Name="MasterPage"
Items="{Binding Pages}"/> Items="{Binding Pages}"/>
<views:PageContainer <views:PageContainer
Grid.Column="1" Grid.Column="1"
x:Name="ContentPage"/> Grid.Row="0"
x:Name="ContentPage"/>
</Grid>
<!--Music Player-->
<mp:Player
x:Name="Player"
Grid.Row="2"
HorizontalOptions="Center"
HeightRequest="50"/>
</Grid> </Grid>
</ContentPage> </ContentPage>

View File

@ -33,7 +33,7 @@ namespace Aurora.Design.Views.Main
BindingContext = new MainViewModel(); BindingContext = new MainViewModel();
_viewModels = new Dictionary<int, BaseViewModel>(); _viewModels = new Dictionary<int, BaseViewModel>();
_player = (Player)ContentPage.FindByName("Player"); _player = Player;
_viewContent = (ContentPresenter)ContentPage.Content.FindByName("ViewContent"); _viewContent = (ContentPresenter)ContentPage.Content.FindByName("ViewContent");
MasterPage.ListView.ItemSelected += OnNavItemSelected; MasterPage.ListView.ItemSelected += OnNavItemSelected;

View File

@ -32,12 +32,13 @@ namespace Aurora.Design.Views.MainView
{ {
_pages = new ObservableCollection<NavigationItem>(new[] _pages = new ObservableCollection<NavigationItem>(new[]
{ {
new NavigationItem { Id = 0, Title = "Songs", Group="Library", TargetType = typeof(SongsView), TargetViewModelType = typeof(SongsViewModel) }, new NavigationItem { Id = 0, Title = "Songs", Group="Your Music", TargetType = typeof(SongsView), TargetViewModelType = typeof(SongsViewModel) },
new NavigationItem { Id = 1, Title = "Artists", Group="Library", TargetType = typeof(ArtistsView), TargetViewModelType = typeof(ArtistsViewModel)}, new NavigationItem { Id = 1, Title = "Artists", Group="Your Music", TargetType = typeof(ArtistsView), TargetViewModelType = typeof(ArtistsViewModel)},
new NavigationItem { Id = 2, Title = "Albums", Group="Library", TargetType = typeof(AlbumsView), TargetViewModelType = typeof(AlbumsViewModel)}, new NavigationItem { Id = 2, Title = "Albums", Group="Your Music", TargetType = typeof(AlbumsView), TargetViewModelType = typeof(AlbumsViewModel)},
new NavigationItem { Id = 3, Title = "Stations", Group="Library", TargetType = typeof(StationsView), TargetViewModelType = typeof(StationsViewModel)}, new NavigationItem { Id = 3, Title = "Stations", Group="Your Music", TargetType = typeof(StationsView), TargetViewModelType = typeof(StationsViewModel)},
new NavigationItem { Id = 4, Title = "Party", Group="Social", TargetType = typeof(PartyView), TargetViewModelType = typeof(PartyViewModel)}, new NavigationItem { Id = 4, Title = "Party", Group="Social", TargetType = typeof(PartyView), TargetViewModelType = typeof(PartyViewModel)},
new NavigationItem { Id = 5, Title = "Profile", Group="Social", TargetType = typeof(ProfileView), TargetViewModelType = typeof(ProfileViewModel)}, new NavigationItem { Id = 5, Title = "Profile", Group="Social", TargetType = typeof(ProfileView), TargetViewModelType = typeof(ProfileViewModel)},
new NavigationItem { Id = 6, Title = "A + B", Group="Playlists", TargetType = typeof(StationsView), TargetViewModelType = typeof(StationsViewModel)}
}); });
} }

View File

@ -1,28 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<ContentView <ContentView
xmlns="http://xamarin.com/schemas/2014/forms" xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:components="clr-namespace:Aurora.Design.Components"
xmlns:mp="clr-namespace:Aurora.Design.Components.MediaPlayer"
x:Class="Aurora.Design.Views.MainView.PageContainer"> x:Class="Aurora.Design.Views.MainView.PageContainer">
<ContentView.Content> <ContentView.Content>
<Grid <Grid
x:Name="Grid"> x:Name="Grid">
<Grid.RowDefinitions>
<RowDefinition
Height="*"/>
<RowDefinition
Height="50"/>
</Grid.RowDefinitions>
<ContentPresenter <ContentPresenter
Grid.Row="0"
x:Name="ViewContent"/> x:Name="ViewContent"/>
<mp:Player
x:Name="Player"
Grid.Row="1"
HorizontalOptions="CenterAndExpand"
VerticalOptions="End"
HeightRequest="200"/>
</Grid> </Grid>
</ContentView.Content> </ContentView.Content>
</ContentView> </ContentView>

View File

@ -4,8 +4,7 @@
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:hs="clr-namespace:Aurora.Design.Components.HostSelector" xmlns:hs="clr-namespace:Aurora.Design.Components.HostSelector"
xmlns:ml="clr-namespace:Aurora.Design.Components.MemberList" xmlns:ml="clr-namespace:Aurora.Design.Components.MemberList"
xmlns:renderedViews="clr-namespace:Sharpnado.Presentation.Forms.RenderedViews;assembly=Sharpnado.Presentation.Forms" xmlns:library="clr-namespace:Aurora.Design.Components.Library"
xmlns:qu="clr-namespace:Aurora.Design.Components.Queue"
x:Class="Aurora.Design.Views.Party.PartyView"> x:Class="Aurora.Design.Views.Party.PartyView">
<ContentView.Content> <ContentView.Content>
<Grid> <Grid>
@ -23,7 +22,7 @@
Members="{Binding Members}"/> Members="{Binding Members}"/>
<Label <Label
Text="Queue"/> Text="Queue"/>
<qu:Queue <library:Library
ItemsSource="{Binding Queue}" ItemsSource="{Binding Queue}"
SelectedItem="{Binding SelectedSong}" SelectedItem="{Binding SelectedSong}"
ItemDoubleClicked="{Binding PlayCommand}"/> ItemDoubleClicked="{Binding PlayCommand}"/>

View File

@ -2,54 +2,12 @@
<ContentView <ContentView
xmlns="http://xamarin.com/schemas/2014/forms" xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:songs="clr-namespace:Aurora.Design.Views.Songs" xmlns:library="clr-namespace:Aurora.Design.Components.Library"
xmlns:dg="clr-namespace:Xamarin.Forms.DataGrid;assembly=Xamarin.Forms.DataGrid"
x:Class="Aurora.Design.Views.Songs.SongsView"> x:Class="Aurora.Design.Views.Songs.SongsView">
<ContentPage.Content> <ContentView.Content>
<dg:DataGrid <library:Library
ItemsSource="{Binding SongsList}" ItemsSource="{Binding SongsList}"
SelectionEnabled="True" SelectedItem="{Binding SelectedSong}"
SelectedItem="{Binding SelectedSong}" ItemDoubleClicked="{Binding PlayCommand}"/>
RowHeight="30" </ContentView.Content>
HeaderHeight="50"
BorderColor="#CCCCCC"
HeaderBackground="#E0E6F8">
<dg:DataGrid.GestureRecognizers>
<TapGestureRecognizer
Command="{Binding PlayCommand}"
NumberOfTapsRequired="2"/>
</dg:DataGrid.GestureRecognizers><!-- Header -->
<dg:DataGrid.HeaderFontSize>
<OnIdiom
x:TypeArguments="x:Double">
<OnIdiom.Tablet>15</OnIdiom.Tablet>
<OnIdiom.Phone>13</OnIdiom.Phone>
<OnIdiom.Desktop>20</OnIdiom.Desktop>
</OnIdiom>
</dg:DataGrid.HeaderFontSize><!-- Columns -->
<dg:DataGrid.Columns>
<dg:DataGridColumn
Title="Title"
PropertyName="Metadata.Title"
Width="2*"/>
<dg:DataGridColumn
Title="Album"
PropertyName="Metadata.Album"
Width="0.95*"/>
<dg:DataGridColumn
Title="Artist"
PropertyName="Metadata.Artist"
Width="1*"/>
<dg:DataGridColumn
Title="Duration"
PropertyName="Metadata.Duration"/>
</dg:DataGrid.Columns><!-- Row Colors -->
<dg:DataGrid.RowsBackgroundColorPalette>
<dg:PaletteCollection>
<Color>#F2F2F2</Color>
<Color>#FFFFFF</Color>
</dg:PaletteCollection>
</dg:DataGrid.RowsBackgroundColorPalette>
</dg:DataGrid>
</ContentPage.Content>
</ContentView> </ContentView>