ApplicationGridView.axaml 5.1 KB

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