ActionButton.xaml 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  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:material="clr-namespace:XF.Material.Forms.UI;assembly=XF.Material"
  5. xmlns:local="clr-namespace:comal.timesheets"
  6. x:Class="comal.timesheets.ActionButton">
  7. <ContentView.Resources>
  8. <local:StringToBooleanConverter x:Key="StringToBooleanConverter"/>
  9. <local:ImageSourceToBooleanConverter x:Key="ImageSourceToBooleanConverter"/>
  10. <!-- <local:BooleanToColorConverter x:Key="BackgroundColorConverter" DefaultColor="Silver"/> -->
  11. <!-- <local:BooleanToColorConverter x:Key="BorderColorConverter" DefaultColor="Gray"/> -->
  12. <!-- <local:BooleanToColorConverter x:Key="TextColorConverter" DefaultColor="Gray"/> -->
  13. </ContentView.Resources>
  14. <ContentView.ControlTemplate>
  15. <ControlTemplate>
  16. <material:MaterialCard
  17. x:Name="_frame"
  18. CornerRadius = "5"
  19. Elevation = "0"
  20. Margin = "2"
  21. HasShadow = "False"
  22. Padding="0"
  23. IsClickable = "True"
  24. IsEnabled="True"
  25. BackgroundColor="{TemplateBinding BackgroundColor}"
  26. BorderColor="{TemplateBinding BorderColor}"
  27. Clicked="_frame_OnClicked">
  28. <material:MaterialCard.Triggers>
  29. <!-- <DataTrigger TargetType="material:MaterialCard" Binding="{TemplateBinding IsEnabled}" Value="True"> -->
  30. <!-- <Setter Property="BackgroundColor" Value="{TemplateBinding ButtonColor}" /> -->
  31. <!-- </DataTrigger> -->
  32. <DataTrigger TargetType="material:MaterialCard" Binding="{TemplateBinding IsEnabled}" Value="False">
  33. <Setter Property="BackgroundColor" Value="Silver" />
  34. </DataTrigger>
  35. <!-- <DataTrigger TargetType="material:MaterialCard" Binding="{TemplateBinding IsEnabled}" Value="True"> -->
  36. <!-- <Setter Property="BorderColor" Value="{TemplateBinding BorderColor}" /> -->
  37. <!-- </DataTrigger> -->
  38. <DataTrigger TargetType="material:MaterialCard" Binding="{TemplateBinding IsEnabled}" Value="False">
  39. <Setter Property="BorderColor" Value="Gray" />
  40. </DataTrigger>
  41. </material:MaterialCard.Triggers>
  42. <Grid>
  43. <Grid
  44. Grid.Row="0"
  45. Grid.Column="0"
  46. Padding = "{TemplateBinding Padding}">
  47. <StackLayout
  48. x:Name="_layout"
  49. Grid.Row="0"
  50. Grid.Column="0"
  51. Orientation="{Binding Orientation}"
  52. HorizontalOptions = "CenterAndExpand"
  53. VerticalOptions = "CenterAndExpand">
  54. <Image
  55. x:Name="_image"
  56. Source="{TemplateBinding Image}"
  57. IsVisible="{TemplateBinding Image, Converter={StaticResource ImageSourceToBooleanConverter}}"
  58. WidthRequest="24"
  59. HeightRequest="24"
  60. Aspect="AspectFit"
  61. />
  62. <material:MaterialLabel
  63. x:Name="_label"
  64. Text="{TemplateBinding Text}"
  65. VerticalOptions="CenterAndExpand"
  66. HorizontalOptions="CenterAndExpand"
  67. TypeScale = "{TemplateBinding TypeScale}"
  68. HorizontalTextAlignment = "Center"
  69. TextColor="{TemplateBinding TextColor}"
  70. IsVisible="{TemplateBinding Text, Converter={StaticResource StringToBooleanConverter}}"
  71. >
  72. <material:MaterialLabel.Triggers>
  73. <!-- <DataTrigger TargetType="material:MaterialCard" Binding="{TemplateBinding IsEnabled}" Value="True"> -->
  74. <!-- <Setter Property="BackgroundColor" Value="{TemplateBinding ButtonColor}" /> -->
  75. <!-- </DataTrigger> -->
  76. <DataTrigger TargetType="material:MaterialLabel" Binding="{TemplateBinding IsEnabled}" Value="False">
  77. <Setter Property="TextColor" Value="Gray" />
  78. </DataTrigger>
  79. </material:MaterialLabel.Triggers>
  80. </material:MaterialLabel>
  81. </StackLayout>
  82. </Grid>
  83. <Frame
  84. Grid.Row="0"
  85. Grid.Column="0"
  86. HorizontalOptions="End"
  87. VerticalOptions="Start"
  88. HeightRequest="20"
  89. WidthRequest="20"
  90. CornerRadius="15"
  91. IsVisible="{TemplateBinding Alert, Converter={StaticResource StringToBooleanConverter}}"
  92. HasShadow="False"
  93. Margin="0,2,2,0"
  94. BackgroundColor="Yellow" Padding="1">
  95. <Label
  96. FontAttributes="Bold"
  97. TextColor="Red"
  98. FontSize="Micro"
  99. HorizontalOptions="Center"
  100. VerticalOptions="Center"
  101. Text="{TemplateBinding Alert}"/>
  102. </Frame>
  103. </Grid>
  104. </material:MaterialCard>
  105. </ControlTemplate>
  106. </ContentView.ControlTemplate>
  107. </ContentView>