ListViewButton.axaml 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. <Styles xmlns="https://github.com/avaloniaui"
  2. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  3. xmlns:components="using:InABox.Avalonia.Components"
  4. xmlns:converters="using:InABox.Avalonia.Converters">
  5. <Style Selector="components|ListViewButton">
  6. <Style.Resources>
  7. <converters:DoubleToCornerRadiusConverter
  8. x:Key="SphericalBorder"
  9. Ratio="0.5" />
  10. <converters:DoubleToThicknessConverter
  11. x:Key="MarginDoubler"
  12. Ratio="2.0" />
  13. </Style.Resources>
  14. <Setter Property="Template">
  15. <ControlTemplate>
  16. <Button Classes="Standard">
  17. <Button.Styles>
  18. <Style Selector="Button.Standard">
  19. <Setter Property="Height" Value="80"/>
  20. <Setter Property="Padding" Value="0"/>
  21. <Setter Property="Background" Value="{TemplateBinding Background}"/>
  22. <Setter Property="Foreground" Value="{TemplateBinding Foreground}"/>
  23. <Setter Property="BorderBrush" Value="{StaticResource PrsTileBorder}"/>
  24. <Setter Property="HorizontalContentAlignment" Value="Stretch"/>
  25. <Setter Property="VerticalContentAlignment" Value="Stretch"/>
  26. <Setter Property="Command" Value="{TemplateBinding Command}"/>
  27. <Setter Property="CommandParameter" Value="{TemplateBinding CommandParameter}"/>
  28. </Style>
  29. </Button.Styles>
  30. <Grid>
  31. <Grid.RowDefinitions>
  32. <RowDefinition Height="*" />
  33. <RowDefinition Height="1.2*" />
  34. </Grid.RowDefinitions>
  35. <Grid.ColumnDefinitions>
  36. <ColumnDefinition Width="70" />
  37. <ColumnDefinition Width="*" />
  38. </Grid.ColumnDefinitions>
  39. <Image
  40. Classes="Large"
  41. Grid.Row="0"
  42. Grid.Column="0"
  43. Grid.RowSpan="2"
  44. Source="{TemplateBinding Image}"
  45. HorizontalAlignment="Center"
  46. VerticalAlignment="Center" />
  47. <Label
  48. Grid.Row="0"
  49. Grid.Column="1"
  50. VerticalAlignment="Stretch"
  51. VerticalContentAlignment="Center"
  52. FontSize="{StaticResource PrsFontSizeLarge}"
  53. FontWeight="{StaticResource PrsFontWeightBold}"
  54. Content="{TemplateBinding Title}" />
  55. <TextBlock
  56. Grid.Row="1"
  57. Grid.Column="1"
  58. FontSize="{StaticResource PrsFontSizeNormal}"
  59. FontStyle="{StaticResource PrsFontStylItalic}"
  60. TextWrapping="WrapWithOverflow"
  61. VerticalAlignment="Stretch"
  62. Text="{TemplateBinding Description}" />
  63. <Border
  64. Background="{StaticResource PrsTileBackground}"
  65. BorderBrush="{StaticResource PrsTileBorder}"
  66. Grid.Row="0"
  67. Grid.RowSpan="2"
  68. Grid.Column="1"
  69. VerticalAlignment="Top"
  70. HorizontalAlignment="Right"
  71. IsVisible="{TemplateBinding Alert, Converter={StaticResource StringToBooleanConverter}}"
  72. MinWidth="{Binding $self.Bounds.Height}"
  73. Margin="{Binding $self, Converter={StaticResource MarginDoubler}, ConverterParameter={StaticResource PrsControlSpacing}}"
  74. CornerRadius="{Binding $self.Bounds.Height, Converter={StaticResource SphericalBorder}}">
  75. <Label
  76. Background="Transparent"
  77. Foreground="{StaticResource PrsTileForeground}"
  78. HorizontalContentAlignment="Center"
  79. Content="{TemplateBinding Alert}" />
  80. </Border>
  81. </Grid>
  82. </Button>
  83. </ControlTemplate>
  84. </Setter>
  85. </Style>
  86. </Styles>