94 lines
4.5 KiB
XML
94 lines
4.5 KiB
XML
<UserControl xmlns="https://github.com/avaloniaui"
|
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
|
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
|
xmlns:vm="clr-namespace:Harmonia.UI.ViewModels"
|
|
xmlns:converter="clr-namespace:Harmonia.UI.Converters"
|
|
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
|
|
DataContext="{x:Static vm:ViewModelLocator.PlaylistViewModel}"
|
|
x:Class="Harmonia.UI.Views.PlaylistView"
|
|
x:DataType="vm:PlaylistViewModel">
|
|
<UserControl.Resources>
|
|
<SolidColorBrush x:Key="SongItemTitleBrush" Color="#dddddd"/>
|
|
<SolidColorBrush x:Key="SongItemSubtitleBrush" Color="#aaaaaa"/>
|
|
</UserControl.Resources>
|
|
<UserControl.Styles>
|
|
<Style Selector="Border.SongImage">
|
|
<Setter Property="Width" Value="60"/>
|
|
<Setter Property="Height" Value="60"/>
|
|
<Setter Property="Margin" Value="0 0 10 0"/>
|
|
</Style>
|
|
<Style Selector="TextBlock.SongTitle">
|
|
<Setter Property="FontSize" Value="14"/>
|
|
<Setter Property="FontWeight" Value="SemiBold"/>
|
|
<Setter Property="TextTrimming" Value="CharacterEllipsis"/>
|
|
<Setter Property="Foreground" Value="{StaticResource SongItemTitleBrush}"/>
|
|
</Style>
|
|
<Style Selector="TextBlock.SongSubtitle">
|
|
<Setter Property="FontSize" Value="12"/>
|
|
<Setter Property="TextTrimming" Value="CharacterEllipsis"/>
|
|
<Setter Property="Foreground" Value="{StaticResource SongItemSubtitleBrush}"/>
|
|
</Style>
|
|
<Style Selector="TextBlock.SongMetaData">
|
|
<Setter Property="FontSize" Value="12"/>
|
|
<Setter Property="HorizontalAlignment" Value="Right"/>
|
|
<Setter Property="Foreground" Value="{StaticResource SongItemTitleBrush}"/>
|
|
</Style>
|
|
<Style Selector="TextBlock.SongMetaData.Subtitle">
|
|
<Setter Property="FontSize" Value="12"/>
|
|
<Setter Property="Foreground" Value="{StaticResource SongItemSubtitleBrush}"/>
|
|
</Style>
|
|
|
|
<Style Selector="Grid.Playing TextBlock">
|
|
<Setter Property="Foreground" Value="#76b9ed"/>
|
|
<!-- Light Blue for Highlight -->
|
|
</Style>
|
|
</UserControl.Styles>
|
|
<Grid Margin="0">
|
|
<Canvas Background="#99000000"></Canvas> <!-- Was 99 !-->
|
|
<ListBox ItemsSource="{Binding PlaylistSongs}" DoubleTapped="ListBox_DoubleTapped">
|
|
<!--<ListBox.Styles>
|
|
<Style Selector="ListBoxItem:nth-child(odd):not(:pointerover):not(:selected)">
|
|
<Setter Property="Background" Value="#00000000"/>
|
|
--><!-- Light Gray --><!--
|
|
</Style>
|
|
<Style Selector="ListBoxItem:nth-child(even):not(:pointerover):not(:selected)">
|
|
<Setter Property="Background" Value="#22AAAAAA"/>
|
|
--><!-- Slightly Darker Gray --><!--
|
|
</Style>
|
|
</ListBox.Styles>-->
|
|
<ListBox.ItemTemplate>
|
|
<DataTemplate>
|
|
<Grid Classes.Playing="{Binding $parent[ListBox].((vm:PlaylistViewModel)DataContext).PlayingSong, Converter={StaticResource PlaylistSongEquality}, ConverterParameter={Binding .}}">
|
|
<Grid.ColumnDefinitions>
|
|
<ColumnDefinition Width="70"></ColumnDefinition>
|
|
<ColumnDefinition Width="*"></ColumnDefinition>
|
|
<ColumnDefinition Width="70"></ColumnDefinition>
|
|
</Grid.ColumnDefinitions>
|
|
<Grid.RowDefinitions>
|
|
<RowDefinition></RowDefinition>
|
|
<RowDefinition></RowDefinition>
|
|
<RowDefinition></RowDefinition>
|
|
</Grid.RowDefinitions>
|
|
<Border Grid.Row="0" Grid.Column="0" Grid.RowSpan="3" Classes="SongImage">
|
|
<Grid>
|
|
<Image Loaded="Image_Loaded" Unloaded="Image_Unloaded"></Image>
|
|
<Canvas Background="#19000000"></Canvas>
|
|
</Grid>
|
|
</Border>
|
|
<TextBlock Grid.Row="0" Grid.Column="1" Text="{Binding Song.Title, Mode=OneWay}" Classes="SongTitle" />
|
|
<TextBlock Grid.Row="1" Grid.Column="1" Text="{Binding Song.Artists, Mode=OneWay, Converter={StaticResource ArtistsToString}}" Classes="SongSubtitle" />
|
|
<TextBlock Grid.Row="2" Grid.Column="1" Text="{Binding Song.Album, Mode=OneWay}" Classes="SongSubtitle" />
|
|
<TextBlock Grid.Row="0" Grid.Column="2" Text="{Binding Song.Length.TotalSeconds, Mode=OneWay, Converter={StaticResource SecondsToString}}" Classes="SongMetaData" />
|
|
<TextBlock Grid.Row="1" Grid.Column="2" Text="{Binding Song.FileType, Mode=OneWay}" Classes="SongMetaData Subtitle" />
|
|
<TextBlock Grid.Row="2" Grid.Column="2" Classes="SongMetaData Subtitle">
|
|
<Run Text="{Binding Song.BitRate, Mode=OneWay}"></Run><Run Text=" kbps"></Run>
|
|
</TextBlock>
|
|
</Grid>
|
|
</DataTemplate>
|
|
</ListBox.ItemTemplate>
|
|
</ListBox>
|
|
</Grid>
|
|
|
|
</UserControl>
|