ApplicationListView.axaml
1 <UserControl 2 x:Class="Ryujinx.Ava.UI.Controls.ApplicationListView" 3 xmlns="https://github.com/avaloniaui" 4 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 5 xmlns:controls="clr-namespace:Ryujinx.Ava.UI.Controls" 6 xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 7 xmlns:helpers="clr-namespace:Ryujinx.Ava.UI.Helpers" 8 xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 9 xmlns:ui="clr-namespace:FluentAvalonia.UI.Controls;assembly=FluentAvalonia" 10 d:DesignHeight="450" 11 d:DesignWidth="800" 12 Focusable="True" 13 mc:Ignorable="d" 14 xmlns:viewModels="clr-namespace:Ryujinx.Ava.UI.ViewModels" 15 x:DataType="viewModels:MainWindowViewModel"> 16 <UserControl.Resources> 17 <helpers:BitmapArrayValueConverter x:Key="ByteImage" /> 18 <controls:ApplicationContextMenu x:Key="ApplicationContextMenu" /> 19 </UserControl.Resources> 20 <Grid> 21 <Grid.RowDefinitions> 22 <RowDefinition Height="*" /> 23 </Grid.RowDefinitions> 24 <ListBox 25 Name="GameListBox" 26 Grid.Row="0" 27 Padding="8" 28 HorizontalAlignment="Stretch" 29 VerticalAlignment="Stretch" 30 ContextFlyout="{StaticResource ApplicationContextMenu}" 31 DoubleTapped="GameList_DoubleTapped" 32 ItemsSource="{Binding AppsObservableList}" 33 SelectionChanged="GameList_SelectionChanged"> 34 <ListBox.ItemsPanel> 35 <ItemsPanelTemplate> 36 <StackPanel 37 HorizontalAlignment="Stretch" 38 VerticalAlignment="Stretch" 39 Orientation="Vertical" 40 Spacing="2" /> 41 </ItemsPanelTemplate> 42 </ListBox.ItemsPanel> 43 <ListBox.Styles> 44 <Style Selector="ListBoxItem:selected /template/ Rectangle#SelectionIndicator"> 45 <Setter Property="MinHeight" Value="{Binding $parent[UserControl].((viewModels:MainWindowViewModel)DataContext).ListItemSelectorSize}" /> 46 </Style> 47 </ListBox.Styles> 48 <ListBox.ItemTemplate> 49 <DataTemplate> 50 <Grid> 51 <Border 52 Margin="0" 53 Padding="10" 54 HorizontalAlignment="Stretch" 55 VerticalAlignment="Stretch" 56 ClipToBounds="True" 57 CornerRadius="5"> 58 <Grid> 59 <Grid.ColumnDefinitions> 60 <ColumnDefinition Width="Auto" /> 61 <ColumnDefinition Width="10" /> 62 <ColumnDefinition Width="*" /> 63 <ColumnDefinition Width="150" /> 64 <ColumnDefinition Width="100" /> 65 </Grid.ColumnDefinitions> 66 <Image 67 Grid.RowSpan="3" 68 Grid.Column="0" 69 Margin="0" 70 Classes.huge="{Binding $parent[UserControl].((viewModels:MainWindowViewModel)DataContext).IsGridHuge}" 71 Classes.large="{Binding $parent[UserControl].((viewModels:MainWindowViewModel)DataContext).IsGridLarge}" 72 Classes.normal="{Binding $parent[UserControl].((viewModels:MainWindowViewModel)DataContext).IsGridMedium}" 73 Classes.small="{Binding $parent[UserControl].((viewModels:MainWindowViewModel)DataContext).IsGridSmall}" 74 Source="{Binding Icon, Converter={StaticResource ByteImage}}" /> 75 <Border 76 Grid.Column="2" 77 Margin="0,0,5,0" 78 BorderBrush="{DynamicResource ThemeControlBorderColor}" 79 BorderThickness="0,0,1,0"> 80 <StackPanel 81 HorizontalAlignment="Left" 82 VerticalAlignment="Top" 83 Orientation="Vertical" 84 Spacing="5"> 85 <TextBlock 86 HorizontalAlignment="Stretch" 87 FontWeight="Bold" 88 Text="{Binding Name}" 89 TextAlignment="Start" 90 TextWrapping="Wrap" /> 91 <TextBlock 92 HorizontalAlignment="Stretch" 93 Text="{Binding Developer}" 94 TextAlignment="Start" 95 TextWrapping="Wrap" /> 96 <TextBlock 97 HorizontalAlignment="Stretch" 98 Text="{Binding Version}" 99 TextAlignment="Start" 100 TextWrapping="Wrap" /> 101 </StackPanel> 102 </Border> 103 <StackPanel 104 Grid.Column="3" 105 Margin="10,0,0,0" 106 HorizontalAlignment="Left" 107 VerticalAlignment="Top" 108 Orientation="Vertical" 109 Spacing="5"> 110 <TextBlock 111 HorizontalAlignment="Stretch" 112 Text="{Binding Id, StringFormat=X16}" 113 TextAlignment="Start" 114 TextWrapping="Wrap" /> 115 <TextBlock 116 HorizontalAlignment="Stretch" 117 Text="{Binding FileExtension}" 118 TextAlignment="Start" 119 TextWrapping="Wrap" /> 120 </StackPanel> 121 <StackPanel 122 Grid.Column="4" 123 HorizontalAlignment="Right" 124 VerticalAlignment="Top" 125 Orientation="Vertical" 126 Spacing="5"> 127 <TextBlock 128 HorizontalAlignment="Stretch" 129 Text="{Binding TimePlayedString}" 130 TextAlignment="End" 131 TextWrapping="Wrap" /> 132 <TextBlock 133 HorizontalAlignment="Stretch" 134 Text="{Binding LastPlayedString, Converter={helpers:LocalizedNeverConverter}}" 135 TextAlignment="End" 136 TextWrapping="Wrap" /> 137 <TextBlock 138 HorizontalAlignment="Stretch" 139 Text="{Binding FileSizeString}" 140 TextAlignment="End" 141 TextWrapping="Wrap" /> 142 </StackPanel> 143 <ui:SymbolIcon 144 Grid.Row="0" 145 Grid.Column="0" 146 Margin="-5,-5,0,0" 147 HorizontalAlignment="Left" 148 VerticalAlignment="Top" 149 FontSize="16" 150 Foreground="{DynamicResource SystemAccentColor}" 151 IsVisible="{Binding Favorite}" 152 Symbol="StarFilled" /> 153 </Grid> 154 </Border> 155 </Grid> 156 </DataTemplate> 157 </ListBox.ItemTemplate> 158 </ListBox> 159 </Grid> 160 </UserControl>