SignalPreviewView.axaml 8.9 KB

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