StatusPlot.xaml 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167
  1. <UserControl x:Class="HistoryView.Controls.StatusPlot"
  2. xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  3. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  4. xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
  5. xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
  6. xmlns:local="clr-namespace:HistoryView.Controls"
  7. xmlns:convert="clr-namespace:HistoryView.Converters"
  8. mc:Ignorable="d"
  9. x:Name="This"
  10. d:DesignHeight="450" d:DesignWidth="800">
  11. <UserControl.Resources>
  12. <convert:Mini8StatusToBrush x:Key="Mini8Brush"/>
  13. <convert:Mini8StatusToDisconnect x:Key="DisconnectConverter"/>
  14. <convert:Mini8StatusToBrushMulti x:Key="Mini8Multi"/>
  15. <convert:AuthorityToVis x:Key="Authority"/>
  16. </UserControl.Resources>
  17. <Border Background="#e6e6e6" Width="auto" Height="auto" VerticalAlignment="Center" HorizontalAlignment="Center" BorderThickness="3" CornerRadius="8">
  18. <Border.BorderBrush>
  19. <MultiBinding Converter="{StaticResource Mini8Multi}" ConverterParameter="Bright">
  20. <Binding ElementName="This" Path="DataSource.Status"/>
  21. <Binding ElementName="This" Path="DataSource.IsConnected" />
  22. </MultiBinding>
  23. </Border.BorderBrush>
  24. <Grid>
  25. <Grid.RowDefinitions>
  26. <RowDefinition Height="auto"/>
  27. <RowDefinition/>
  28. </Grid.RowDefinitions>
  29. <Border CornerRadius="8,8,0,0" >
  30. <Border.BorderBrush>
  31. <MultiBinding Converter="{StaticResource Mini8Multi}" ConverterParameter="Bright">
  32. <Binding ElementName="This" Path="DataSource.Status"/>
  33. <Binding ElementName="This" Path="DataSource.IsConnected" />
  34. </MultiBinding>
  35. </Border.BorderBrush>
  36. <Border.Background>
  37. <MultiBinding Converter="{StaticResource Mini8Multi}" ConverterParameter="Light">
  38. <Binding ElementName="This" Path="DataSource.Status"/>
  39. <Binding ElementName="This" Path="DataSource.IsConnected" />
  40. </MultiBinding>
  41. </Border.Background>
  42. <Grid Margin="8,4">
  43. <Grid.ColumnDefinitions>
  44. <ColumnDefinition Width="auto"/>
  45. <ColumnDefinition Width="4"/>
  46. <ColumnDefinition Width="auto"/>
  47. <ColumnDefinition Width="4"/>
  48. <ColumnDefinition Width="auto"/>
  49. <ColumnDefinition/>
  50. <ColumnDefinition Width="auto"/>
  51. <!--<ColumnDefinition Width="8"/>
  52. <ColumnDefinition Width="auto"/>-->
  53. <!--<ColumnDefinition Width="6"/>-->
  54. </Grid.ColumnDefinitions>
  55. <TextBlock FontSize="12" FontWeight="Bold" VerticalAlignment="Center" >
  56. <!--<Run Text="{Binding ElementName=This, Path=DataSource.Index}"/>
  57. <Run>-</Run>-->
  58. <Run Text="{Binding ElementName=This, Path=DataSource.Name}"/>
  59. </TextBlock>
  60. <!--<TextBlock Grid.Column="2" VerticalAlignment="Center">
  61. <Run Text="{Binding ElementName=This, Path=DataSource.Address}"/>
  62. <Run>:</Run>
  63. <Run Text="{Binding ElementName=This, Path=DataSource.Port}"/>
  64. </TextBlock>-->
  65. <!--<Button Grid.Column="4" Background="Transparent" Command="{Binding ElementName=This, Path=Reconnect}" CommandParameter="{Binding ElementName=This, Path=ReconnectParameter}">
  66. <Button.Visibility>
  67. <MultiBinding Converter="{StaticResource DisconnectConverter}" >
  68. <Binding ElementName="This" Path="DataSource.IsConnected"/>
  69. <Binding ElementName="This" Path="DataSource.Enable" />
  70. </MultiBinding>
  71. </Button.Visibility>
  72. <StackPanel Orientation="Horizontal">
  73. <TextBlock VerticalAlignment="Center" HorizontalAlignment="Center" Margin="4,0">Reconnect</TextBlock>
  74. </StackPanel>
  75. </Button>-->
  76. <Image Grid.Column="4" x:Name="DisconnectIcon" VerticalAlignment="Center" Source="{StaticResource lan_disconnectDrawingImage}" Height="20">
  77. <Image.Visibility>
  78. <MultiBinding Converter="{StaticResource DisconnectConverter}" >
  79. <Binding ElementName="This" Path="DataSource.IsConnected"/>
  80. <Binding ElementName="This" Path="DataSource.Enable" />
  81. </MultiBinding>
  82. </Image.Visibility>
  83. </Image>
  84. <Button x:Name="FunctionButton" Click="FunctionButton_Click" Grid.Column="6" Background="Transparent" BorderBrush="Transparent" Width="60">
  85. <Image Source="{StaticResource Icon_Setting}" Height="20" Margin="4,0"/>
  86. </Button>
  87. <Popup x:Name="FunctionPop" IsOpen="False" StaysOpen="False" Placement="Relative" PopupAnimation="Slide" PlacementTarget="{Binding ElementName=FunctionButton}" HorizontalOffset="-40" VerticalOffset="30" AllowsTransparency="True">
  88. <Border Width="auto" Height="auto" Background="{StaticResource BackgroundColor}" BorderBrush="{StaticResource DarkBorderColor}" BorderThickness="2" CornerRadius="8">
  89. <Grid Margin=" 8">
  90. <Grid.RowDefinitions>
  91. <RowDefinition Height="auto"/>
  92. <RowDefinition Height="16"/>
  93. <RowDefinition Height="auto"/>
  94. <RowDefinition Height="16"/>
  95. <RowDefinition Height="auto"/>
  96. <RowDefinition Height="16"/>
  97. <RowDefinition Height="auto"/>
  98. <RowDefinition Height="16"/>
  99. <RowDefinition Height="auto"/>
  100. </Grid.RowDefinitions>
  101. <TextBlock VerticalAlignment="Center" HorizontalAlignment="Center">
  102. <Run Text="{Binding ElementName=This, Path=DataSource.Address}"/>
  103. <Run>:</Run>
  104. <Run Text="{Binding ElementName=This, Path=DataSource.Port}"/>
  105. </TextBlock>
  106. <Button Grid.Row="2" Style="{StaticResource FunctionButton}" Height="32"
  107. Click="Button_Click"
  108. Command="{Binding ElementName=This, Path=MultiSelectCommand}"
  109. CommandParameter="{Binding ElementName=This, Path=DataSource}"
  110. Visibility="{Binding ElementName=This, Path=User.Authority, Converter={StaticResource Authority}, ConverterParameter=Operator}">
  111. MultiChannel Edit
  112. </Button>
  113. <Button Grid.Row="4" Style="{StaticResource FunctionButton}" Height="32"
  114. Command="{Binding ElementName=This, Path=TraceLogCommand}"
  115. CommandParameter="{Binding ElementName=This, Path=DataSource}"
  116. Click="Button_Click">Dashboard</Button>
  117. <Button Grid.Row="6" Style="{StaticResource FunctionButton}" Height="32"
  118. Command="{Binding ElementName=This, Path=MultiTraceCommand}"
  119. CommandParameter="{Binding ElementName=This, Path=DataSource}"
  120. Click="Button_Click">Trace Log</Button>
  121. <StackPanel Grid.Row="8" Orientation="Horizontal">
  122. <Button Grid.Row="8" Style="{StaticResource FunctionButton}" Background="{StaticResource NiceGreen}" Height="32" Width="80" Margin="0,0,8,0"
  123. Click="Button_Click_1">Connect</Button>
  124. <Button Grid.Row="10" Style="{StaticResource FunctionButton}" Background="{StaticResource DisableColor}" Height="32" Width="88"
  125. Click="Button_Click_2">Disconnect</Button>
  126. </StackPanel>
  127. </Grid>
  128. </Border>
  129. </Popup>
  130. <!--<StackPanel Grid.Column="8" Orientation="Horizontal" VerticalAlignment="Center">
  131. <CheckBox VerticalAlignment="Center" Style="{StaticResource SwitchCheckBox}"
  132. IsChecked="{Binding ElementName=This, Path=DataSource.Enable, Mode=TwoWay}"
  133. Visibility="{Binding ElementName=This, Path=User.Authority, Converter={StaticResource Authority}, ConverterParameter=Operator}"/>
  134. </StackPanel>-->
  135. </Grid>
  136. </Border>
  137. <ItemsControl Grid.Row="1" Margin="4" ItemsSource="{Binding ElementName=This, Path=Channels}">
  138. <ItemsControl.ItemTemplate>
  139. <DataTemplate>
  140. <Button Style="{StaticResource ClearButton}" Background="Transparent" CommandParameter="{Binding}"
  141. Command="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=local:StatusPlot}, Path=EditChannel, Mode=TwoWay}">
  142. <local:TempStatus Source="{Binding}" Margin="4,4"
  143. Mini8Status="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=local:StatusPlot},Path=DataSource.Status}"
  144. IsConnected="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=local:StatusPlot},Path=DataSource.IsConnected}"
  145. IsEnable="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=local:StatusPlot},Path=DataSource.Enable}"/>
  146. </Button>
  147. </DataTemplate>
  148. </ItemsControl.ItemTemplate>
  149. <ItemsControl.ItemsPanel>
  150. <ItemsPanelTemplate>
  151. <UniformGrid Rows="{Binding ElementName=This, Path=Rows}"/>
  152. </ItemsPanelTemplate>
  153. </ItemsControl.ItemsPanel>
  154. </ItemsControl>
  155. </Grid>
  156. </Border>
  157. </UserControl>