MobileMenuButtonMenu.xaml 3.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  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:mobile="clr-namespace:InABox.Mobile;assembly=InABox.Mobile.Shared"
  5. x:Class="InABox.Mobile.MobileMenuButtonMenu" Padding="5">
  6. <ContentView.BindingContext>
  7. <mobile:MobileMenuButtonMenuViewModel
  8. x:Name="_viewModel"
  9. LayoutChanged="_viewModel_OnLayoutChanged"
  10. ItemClicked="_viewModel_OnItemClicked"/>
  11. </ContentView.BindingContext>
  12. <ContentView.Content>
  13. <Grid
  14. x:Name="_menu"
  15. VerticalOptions="StartAndExpand"
  16. HorizontalOptions="StartAndExpand"
  17. Margin="0,5,0,0"
  18. RowSpacing="5"
  19. BindableLayout.ItemsSource = "{Binding VisibleItems}"
  20. >
  21. <BindableLayout.EmptyView>
  22. <Label
  23. FontSize="Micro"
  24. Text="(No Options)"
  25. TextColor="Silver"/>
  26. </BindableLayout.EmptyView>
  27. <Grid.ColumnDefinitions>
  28. <ColumnDefinition Width="Auto"/>
  29. </Grid.ColumnDefinitions>
  30. <BindableLayout.ItemTemplate>
  31. <DataTemplate x:DataType="mobile:MobileMenuEntry">
  32. <StackLayout
  33. Orientation="Vertical"
  34. IsVisible="{Binding IsVisible}"
  35. HorizontalOptions="Fill"
  36. Grid.Row="{Binding Index}">
  37. <Label
  38. Text="{Binding Text}"
  39. VerticalOptions="CenterAndExpand"
  40. HorizontalOptions="Fill"
  41. HorizontalTextAlignment="Start"
  42. VerticalTextAlignment="Center"
  43. FontSize="Micro"
  44. Padding="2,5,2,2"
  45. IsVisible="False">
  46. <Label.GestureRecognizers>
  47. <TapGestureRecognizer Tapped="TapGestureRecognizer_OnTapped" />
  48. </Label.GestureRecognizers>
  49. <Label.Triggers>
  50. <DataTrigger TargetType="Label" Binding="{Binding Type}" Value="Item">
  51. <Setter Property="IsVisible" Value="True" />
  52. </DataTrigger>
  53. </Label.Triggers>
  54. </Label>
  55. <BoxView
  56. HeightRequest="1"
  57. VerticalOptions="Center"
  58. HorizontalOptions="Fill"
  59. BackgroundColor="Silver"
  60. Opacity="0.5"
  61. Margin="2,5,2,2"
  62. IsVisible="False">
  63. <BoxView.Triggers>
  64. <DataTrigger TargetType="BoxView" Binding="{Binding Type}" Value="Separator">
  65. <Setter Property="IsVisible" Value="True" />
  66. </DataTrigger>
  67. </BoxView.Triggers>
  68. </BoxView>
  69. </StackLayout>
  70. </DataTemplate>
  71. </BindableLayout.ItemTemplate>
  72. </Grid>
  73. </ContentView.Content>
  74. </ContentView>