SignalPreviewView.axaml 8.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191
  1. <UserControl
  2. x:Class="ShakerApp.Views.SignalPreviewView"
  3. xmlns="https://github.com/avaloniaui"
  4. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  5. xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
  6. xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
  7. xmlns:oxy="http://oxyplot.org/avalonia"
  8. xmlns:vm="using:ShakerApp.ViewModels"
  9. d:DesignHeight="450"
  10. d:DesignWidth="800"
  11. x:DataType="vm:SignalPreviewViewModel"
  12. Background="Transparent"
  13. DataContext="{Binding Source={x:Static vm:SignalPreviewViewModel.Instance}}"
  14. mc:Ignorable="d">
  15. <Grid>
  16. <ItemsControl ItemsSource="{Binding SignalPreviews}">
  17. <ItemsControl.ItemTemplate>
  18. <DataTemplate>
  19. <ContentPresenter Content="{Binding Content, Converter={StaticResource Type2ViewConverter}, ConverterParameter='1'}" />
  20. </DataTemplate>
  21. </ItemsControl.ItemTemplate>
  22. <ItemsControl.ItemsPanel>
  23. <ItemsPanelTemplate>
  24. <UniformGrid Columns="{Binding ColumnCount}" Rows="{Binding RowCount}" />
  25. </ItemsPanelTemplate>
  26. </ItemsControl.ItemsPanel>
  27. </ItemsControl>
  28. <Button
  29. Width="36"
  30. Height="36"
  31. Margin="10,4,0,0"
  32. Padding="0"
  33. HorizontalAlignment="Left"
  34. VerticalAlignment="Top"
  35. Background="Transparent"
  36. Classes="Basic">
  37. <Interaction.Behaviors>
  38. <EventTriggerBehavior EventName="PointerEntered">
  39. <InvokeCommandAction Command="{Binding PointerEnteredCommand}" />
  40. </EventTriggerBehavior>
  41. <EventTriggerBehavior EventName="PointerExited">
  42. <InvokeCommandAction Command="{Binding PointerExitedCommand}" />
  43. </EventTriggerBehavior>
  44. </Interaction.Behaviors>
  45. <PathIcon
  46. Width="{Binding $parent[Button].Width}"
  47. Height="{Binding $parent[Button].Height}"
  48. Margin="0"
  49. Padding="0"
  50. Data="{StaticResource LayoutGeometry}" />
  51. </Button>
  52. <Popup
  53. Width="160"
  54. Height="140"
  55. IsOpen="{Binding ShowLayout}"
  56. Placement="Pointer"
  57. PlacementMode="Bottom"
  58. PlacementTarget="{Binding $parent.Children[1]}">
  59. <Border
  60. Background="#e9f0fc"
  61. BorderBrush="Gray"
  62. BorderThickness="1"
  63. CornerRadius="4">
  64. <Interaction.Behaviors>
  65. <EventTriggerBehavior EventName="PointerEntered">
  66. <InvokeCommandAction Command="{Binding ControlPointerEnteredCommand}" />
  67. </EventTriggerBehavior>
  68. <EventTriggerBehavior EventName="PointerExited">
  69. <InvokeCommandAction Command="{Binding ControlPointerExitedCommand}" />
  70. </EventTriggerBehavior>
  71. </Interaction.Behaviors>
  72. <UniformGrid Columns="2" Rows="2">
  73. <UniformGrid.Styles>
  74. <Style Selector="Border">
  75. <Setter Property="Background" Value="#d5d8dd" />
  76. <Setter Property="BorderBrush" Value="#858789" />
  77. <Setter Property="Cursor" Value="Hand" />
  78. </Style>
  79. <Style Selector="Border.Pointerover">
  80. <Setter Property="Background" Value="#0067c0" />
  81. </Style>
  82. </UniformGrid.Styles>
  83. <Border
  84. Margin="4"
  85. BorderThickness="1"
  86. CornerRadius="6">
  87. <Interaction.Behaviors>
  88. <EventTriggerBehavior EventName="PointerPressed">
  89. <InvokeCommandAction Command="{Binding OneCommnad}" />
  90. </EventTriggerBehavior>
  91. </Interaction.Behaviors>
  92. <Border.Styles>
  93. <Style Selector="Border">
  94. <Setter Property="Background" Value="#d5d8dd" />
  95. <Setter Property="BorderBrush" Value="#858789" />
  96. <Setter Property="Cursor" Value="Hand" />
  97. </Style>
  98. <Style Selector="Border:pointerover">
  99. <Setter Property="Background" Value="#0067c0" />
  100. </Style>
  101. </Border.Styles>
  102. </Border>
  103. <Grid
  104. Margin="4"
  105. Background="Transparent"
  106. ColumnDefinitions="*,*"
  107. Cursor="Hand">
  108. <Interaction.Behaviors>
  109. <EventTriggerBehavior EventName="PointerPressed">
  110. <InvokeCommandAction Command="{Binding OneTwoCommand}" />
  111. </EventTriggerBehavior>
  112. </Interaction.Behaviors>
  113. <Border
  114. Margin="0,0,2,0"
  115. BorderThickness="1"
  116. Classes.Pointerover="{Binding $parent[Grid].IsPointerOver}"
  117. CornerRadius="6,0,0,6" />
  118. <Border
  119. Grid.Column="1"
  120. Margin="2,0,0,0"
  121. BorderThickness="1"
  122. Classes.Pointerover="{Binding $parent[Grid].IsPointerOver}"
  123. CornerRadius="0,6,6,0" />
  124. </Grid>
  125. <Grid
  126. Margin="4"
  127. Background="Transparent"
  128. Cursor="Hand"
  129. RowDefinitions="*,*">
  130. <Interaction.Behaviors>
  131. <EventTriggerBehavior EventName="PointerPressed">
  132. <InvokeCommandAction Command="{Binding TwoOneCommand}" />
  133. </EventTriggerBehavior>
  134. </Interaction.Behaviors>
  135. <Border
  136. Margin="0,0,0,2"
  137. BorderThickness="1"
  138. Classes.Pointerover="{Binding $parent[Grid].IsPointerOver}"
  139. CornerRadius="6,6,0,0" />
  140. <Border
  141. Grid.Row="1"
  142. Margin="0,2,0,0"
  143. BorderThickness="1"
  144. Classes.Pointerover="{Binding $parent[Grid].IsPointerOver}"
  145. CornerRadius="0,0,6,6" />
  146. </Grid>
  147. <Grid
  148. Margin="4"
  149. Background="Transparent"
  150. ColumnDefinitions="*,*"
  151. Cursor="Hand"
  152. RowDefinitions="*,*">
  153. <Interaction.Behaviors>
  154. <EventTriggerBehavior EventName="PointerPressed">
  155. <InvokeCommandAction Command="{Binding TwoTwoCommand}" />
  156. </EventTriggerBehavior>
  157. </Interaction.Behaviors>
  158. <Border
  159. Margin="0,0,2,2"
  160. BorderThickness="1"
  161. Classes.Pointerover="{Binding $parent[Grid].IsPointerOver}"
  162. CornerRadius="6,0,0,0" />
  163. <Border
  164. Grid.Row="1"
  165. Margin="0,2,2,0"
  166. BorderThickness="1"
  167. Classes.Pointerover="{Binding $parent[Grid].IsPointerOver}"
  168. CornerRadius="0,0,0,6" />
  169. <Border
  170. Grid.Column="1"
  171. Margin="2,0,0,2"
  172. BorderThickness="1"
  173. Classes.Pointerover="{Binding $parent[Grid].IsPointerOver}"
  174. CornerRadius="0,6,0,0" />
  175. <Border
  176. Grid.Row="1"
  177. Grid.Column="1"
  178. Margin="2,2,0,0"
  179. BorderThickness="1"
  180. Classes.Pointerover="{Binding $parent[Grid].IsPointerOver}"
  181. CornerRadius="0,0,6,0" />
  182. </Grid>
  183. </UniformGrid>
  184. </Border>
  185. </Popup>
  186. </Grid>
  187. </UserControl>