MobileToolGrid.xaml 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <ContentView xmlns="http://xamarin.com/schemas/2014/forms"
  3. xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
  4. xmlns:local="clr-namespace:InABox.Mobile"
  5. x:Class="InABox.Mobile.MobileToolGrid">
  6. <ContentView.Resources>
  7. <local:BooleanToColorConverter x:Key="BooleanToColorConverter" TrueColor="LightSalmon" FalseColor="White"/>
  8. </ContentView.Resources>
  9. <ContentView.BindingContext>
  10. <local:ToolGridViewModel x:Name="_viewModel"/>
  11. </ContentView.BindingContext>
  12. <ContentView.Content>
  13. <ScrollView>
  14. <FlexLayout
  15. x:Name="_flexgrid"
  16. BindableLayout.ItemsSource = "{Binding Items}"
  17. HorizontalOptions="StartAndExpand"
  18. VerticalOptions="StartAndExpand"
  19. Wrap="Wrap"
  20. Direction="Row"
  21. JustifyContent="SpaceEvenly"
  22. AlignItems="Start"
  23. AlignContent="Start">
  24. <BindableLayout.ItemTemplate>
  25. <DataTemplate x:DataType="local:MobileToolItem">
  26. <Grid Margin="10,0"
  27. MinimumWidthRequest="70"
  28. MinimumHeightRequest="92"
  29. IsVisible="True">
  30. <Grid.ColumnDefinitions>
  31. <ColumnDefinition Width="35"/>
  32. <ColumnDefinition Width="35"/>
  33. </Grid.ColumnDefinitions>
  34. <Grid.RowDefinitions>
  35. <RowDefinition Height="35"/>
  36. <RowDefinition Height="35"/>
  37. <RowDefinition Height="22"/>
  38. </Grid.RowDefinitions>
  39. <Frame
  40. CornerRadius="5"
  41. HasShadow="False"
  42. Margin="0"
  43. Padding="15"
  44. x:Name="toolFrame"
  45. Grid.Row="0"
  46. Grid.Column="0"
  47. Grid.RowSpan="2"
  48. Grid.ColumnSpan="2"
  49. MinimumWidthRequest="80"
  50. MinimumHeightRequest="104"
  51. BackgroundColor="{Binding HasIndicator, Converter={StaticResource BooleanToColorConverter}}">
  52. <Frame.Triggers>
  53. <DataTrigger TargetType="Frame" Binding="{Binding IsEnabled}" Value="False">
  54. <Setter Property="BackgroundColor" Value="Silver" />
  55. </DataTrigger>
  56. </Frame.Triggers>
  57. <Image x:Name="toolEntryImage"
  58. Source="{Binding Image}">
  59. <Image.GestureRecognizers>
  60. <TapGestureRecognizer Tapped="ImageTapped" />
  61. </Image.GestureRecognizers>
  62. </Image>
  63. </Frame>
  64. <Frame
  65. x:Name="indicatorFrame"
  66. Grid.Row="0"
  67. Grid.Column="1"
  68. HorizontalOptions="End"
  69. HasShadow="False"
  70. VerticalOptions="Start"
  71. HeightRequest="20"
  72. WidthRequest="20"
  73. CornerRadius="10"
  74. Margin="0,5,5,0"
  75. IsVisible="{Binding HasIndicator}"
  76. BackgroundColor="Yellow"
  77. Padding="1">
  78. <Label
  79. FontAttributes="Bold"
  80. TextColor="Red"
  81. FontSize="Small"
  82. HorizontalOptions="Center"
  83. VerticalOptions="Center"
  84. Margin="1"
  85. Text="{Binding Indicator}"/>
  86. </Frame>
  87. <Label
  88. Grid.Row="2"
  89. Grid.Column="0"
  90. Grid.ColumnSpan="2"
  91. Text="{Binding Text}"
  92. FontSize="Micro"
  93. HorizontalTextAlignment="Center"
  94. VerticalTextAlignment="Start"
  95. Margin="0,-2,0,0"
  96. TextColor="{Binding TextColor}">
  97. <Label.Triggers>
  98. <DataTrigger TargetType="Label" Binding="{Binding IsEnabled}" Value="False">
  99. <Setter Property="TextColor" Value="Gray" />
  100. </DataTrigger>
  101. </Label.Triggers>
  102. </Label>
  103. </Grid>
  104. </DataTemplate>
  105. </BindableLayout.ItemTemplate>
  106. </FlexLayout>
  107. </ScrollView>
  108. </ContentView.Content>
  109. </ContentView>