/ src / Ryujinx / UI / Controls / ApplicationGridView.axaml
ApplicationGridView.axaml
  1  <UserControl
  2      x:Class="Ryujinx.Ava.UI.Controls.ApplicationGridView"
  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              Grid.Row="0"
 26              Padding="8"
 27              HorizontalAlignment="Stretch"
 28              VerticalAlignment="Stretch"
 29              ContextFlyout="{StaticResource ApplicationContextMenu}"
 30              DoubleTapped="GameList_DoubleTapped"
 31              ItemsSource="{Binding AppsObservableList}"
 32              SelectionChanged="GameList_SelectionChanged">
 33              <ListBox.ItemsPanel>
 34                  <ItemsPanelTemplate>
 35                      <WrapPanel
 36                          HorizontalAlignment="Center"
 37                          VerticalAlignment="Top"
 38                          Orientation="Horizontal" />
 39                  </ItemsPanelTemplate>
 40              </ListBox.ItemsPanel>
 41              <ListBox.Styles>
 42                  <Style Selector="ListBoxItem">
 43                      <Setter Property="Margin" Value="5" />
 44                      <Setter Property="CornerRadius" Value="4" />
 45                  </Style>
 46                  <Style Selector="ListBoxItem:selected /template/ Rectangle#SelectionIndicator">
 47                      <Setter Property="MinHeight" Value="{Binding $parent[UserControl].((viewModels:MainWindowViewModel)DataContext).GridItemSelectorSize}" />
 48                  </Style>
 49              </ListBox.Styles>
 50              <ListBox.ItemTemplate>
 51                  <DataTemplate>
 52                      <Grid>
 53                          <Border
 54                              Margin="10"
 55                              HorizontalAlignment="Stretch"
 56                              VerticalAlignment="Stretch"
 57                              Classes.huge="{Binding $parent[UserControl].((viewModels:MainWindowViewModel)DataContext).IsGridHuge}"
 58                              Classes.large="{Binding $parent[UserControl].((viewModels:MainWindowViewModel)DataContext).IsGridLarge}"
 59                              Classes.normal="{Binding $parent[UserControl].((viewModels:MainWindowViewModel)DataContext).IsGridMedium}"
 60                              Classes.small="{Binding $parent[UserControl].((viewModels:MainWindowViewModel)DataContext).IsGridSmall}"
 61                              ClipToBounds="True"
 62                              CornerRadius="4">
 63                              <Grid>
 64                                  <Grid.RowDefinitions>
 65                                      <RowDefinition Height="Auto" />
 66                                      <RowDefinition Height="Auto" />
 67                                  </Grid.RowDefinitions>
 68                                  <Image
 69                                      Grid.Row="0"
 70                                      HorizontalAlignment="Stretch"
 71                                      VerticalAlignment="Top"
 72                                      Source="{Binding Icon, Converter={StaticResource ByteImage}}" />
 73                                  <Panel
 74                                      Grid.Row="1"
 75                                      Height="50"
 76                                      Margin="0,10,0,0"
 77                                      HorizontalAlignment="Stretch"
 78                                      VerticalAlignment="Stretch"
 79                                      IsVisible="{Binding $parent[UserControl].((viewModels:MainWindowViewModel)DataContext).ShowNames}">
 80                                      <TextBlock
 81                                          HorizontalAlignment="Center"
 82                                          VerticalAlignment="Center"
 83                                          Text="{Binding Name}"
 84                                          TextAlignment="Center"
 85                                          TextWrapping="Wrap" />
 86                                  </Panel>
 87                              </Grid>
 88                          </Border>
 89                          <ui:SymbolIcon
 90                              Margin="5,5,0,0"
 91                              HorizontalAlignment="Left"
 92                              VerticalAlignment="Top"
 93                              FontSize="16"
 94                              Foreground="{DynamicResource SystemAccentColor}"
 95                              IsVisible="{Binding Favorite}"
 96                              Symbol="StarFilled" />
 97                      </Grid>
 98                  </DataTemplate>
 99              </ListBox.ItemTemplate>
100          </ListBox>
101      </Grid>
102  </UserControl>