MainPageView.xaml 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196
  1. <UserControl x:Class="ivf_tl_Operate.View.MainPageView"
  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:ivf_tl_Operate.View"
  7. xmlns:customUserControl="clr-namespace:ivf_tl_Operate.CustomUserControls"
  8. xmlns:customControl="clr-namespace:ivf_tl_CustomControls;assembly=ivf_tl_CustomControls_Surface"
  9. mc:Ignorable="d"
  10. d:DesignHeight="2736" d:DesignWidth="1824">
  11. <!-- M4-01-2:去写死宽高(原 Height=2736 Width=1824),改由父级 Viewbox/容器拉伸;
  12. 保留 d:DesignHeight/d:DesignWidth 仅供设计期预览(mc:Ignorable="d" 运行时忽略)。
  13. 根 Grid 三段式骨架:顶栏(Auto)+运行时间条(Auto)+舱区(*)+底部导航(Auto),
  14. 舱区 * 吃掉剩余高度 → 主页零滚动地基(M4-05)。固定区用 Auto,不写死像素。[D6] 基准随 M7 真机校准。 -->
  15. <!-- M4-05-1:主页零滚动。整页内容由 MainWindow(.cs:37-44) 顶层 Viewbox(Stretch=Uniform)等比缩放铺满,
  16. 此根 Grid 不挂任何 ScrollViewer;三段固定区(顶栏/运行条/底部导航)用 Auto+MinHeight、舱区用 * 吃满剩余高度,
  17. 整页恰好一屏、无垂直/水平溢出。功能分区沿用手机 App 式(顶部状态条/中部舱区/底部导航)但桌面竖屏排版。 -->
  18. <Grid>
  19. <Grid.RowDefinitions>
  20. <RowDefinition Height="Auto"/>
  21. <RowDefinition Height="Auto"/>
  22. <RowDefinition Height="*"/>
  23. <RowDefinition Height="Auto"/>
  24. </Grid.RowDefinitions>
  25. <!--顶部信息-->
  26. <!-- M4-01-2/3:固定顶栏用 Auto 行高 + MinHeight 兜底(替代原写死 250),避免内容塌缩;高度随 Viewbox 等比缩放。 -->
  27. <Grid Grid.Row="0" MinHeight="250" Background="{StaticResource BannerTopFill}">
  28. <Grid.ColumnDefinitions>
  29. <!-- M4-01-3:左侧缓冲瓶状态块列宽 350 → Auto(按内容),中间分隔线 1px 保留,
  30. 第3列 *(弹性留白),第4列 auto(报警块 StatusControl 靠右)。窄分辨率不挤压。 -->
  31. <ColumnDefinition Width="Auto" MinWidth="350"/>
  32. <ColumnDefinition Width="1"/>
  33. <ColumnDefinition Width="1"/>
  34. <ColumnDefinition/>
  35. <ColumnDefinition Width="auto"/>
  36. </Grid.ColumnDefinitions>
  37. <Grid Grid.Column="0" HorizontalAlignment="Center" VerticalAlignment="Center">
  38. <Grid.RowDefinitions>
  39. <RowDefinition/>
  40. <RowDefinition/>
  41. </Grid.RowDefinitions>
  42. <StackPanel Grid.Row="0" Orientation="Horizontal" HorizontalAlignment="Center">
  43. <Image Width="39" Height="39" Source="/ivf_tl_Operate;component/Resources/Image/house_pressure.png" VerticalAlignment="Center" ></Image>
  44. <TextBlock Text="{Binding ExHouse11.PressureString}" Margin="10,0,0,0" FontSize="36" FontWeight="Medium" Foreground="#6E7276" VerticalAlignment="Center"/>
  45. </StackPanel>
  46. <StackPanel Grid.Row="1" Orientation="Horizontal" HorizontalAlignment="Center">
  47. <TextBlock Text="{Binding ExHouse11.pressureDesc}" FontSize="36" FontWeight="Medium" Foreground="#6E7276" VerticalAlignment="Center"></TextBlock>
  48. <TextBlock Visibility="Collapsed" Text="{Binding ExHouse11.houseDesc}" Margin="10,0,0,0" FontSize="36" FontWeight="Medium" Foreground="#6E7276" VerticalAlignment="Center"></TextBlock>
  49. </StackPanel>
  50. </Grid>
  51. <Border Grid.Column="1" Background="#FFFFFF"/>
  52. <Border Grid.Column="2" Background="#DFE0E4"/>
  53. <!--<StackPanel Grid.Column="3" Orientation="Horizontal" HorizontalAlignment="Center">
  54. <Button Content="test" Click="Button_Click_4" Width="200"/>
  55. <Button Content="test" Click="Button_Click_5" Width="200"/>
  56. </StackPanel>-->
  57. <!--<StackPanel Visibility="Collapsed" Grid.Column="3" Orientation="Horizontal" HorizontalAlignment="Center">
  58. <Image Margin="10 0 30 0" Width="66" Height="90" Source="/ivf_tl_Operate;component/Resources/Image/storage.png" ></Image>
  59. <TextBlock Text="C盘空间:14901G 剩余10256.3G" Margin="10 0 30 0" FontSize="44" FontWeight="Medium" Foreground="#0B1B31" HorizontalAlignment="Center" VerticalAlignment="Center" ></TextBlock>
  60. <TextBlock Text="3" Margin="10 0 30 0" FontSize="44" FontWeight="Medium" Foreground="#0B1B31" HorizontalAlignment="Center" VerticalAlignment="Center" ></TextBlock>
  61. </StackPanel>-->
  62. <StackPanel x:Name="lanQie" Visibility="Hidden" Grid.Column="3" Orientation="Horizontal" HorizontalAlignment="Center">
  63. <Button Content="中文" FontSize="40" Width="200" Height="150" Click="Button_Click_1"/>
  64. <Button Content="英文" FontSize="40" Width="200" Height="150" Margin="50 0 0 0" Click="Button_Click_2"/>
  65. <!--<Button Content="多语言更新(仅外网可用)" FontSize="40" Height="150" Margin="50 0 0 0" Click="Button_Click_3"/>-->
  66. <ComboBox x:Name="_timingAutoFocus_ComboBox" Grid.Column="1" Margin="30" Width="350" FontSize="50" Foreground="#959596" BorderThickness="1" BorderBrush="#707070"
  67. MaxDropDownHeight="500" ItemContainerStyle="{StaticResource ComboBoxItemContainerStyle1}"
  68. Style="{StaticResource ComboBoxStyle1}"/>
  69. </StackPanel>
  70. <!-- 临时调试按钮(测试期全屏不便关窗):最小化 / 退出程序。放第3列右上角,不影响整体布局,后续可整块删除。 -->
  71. <StackPanel Grid.Column="3" Orientation="Horizontal" HorizontalAlignment="Right" VerticalAlignment="Top" Margin="0 12 12 0">
  72. <Button Content="最小化" Click="Button_Click" Width="160" Height="80" FontSize="32" FontWeight="Medium" Foreground="#0B1B31" Background="#E8EAEE" BorderBrush="#C4C7CC" BorderThickness="1"/>
  73. <Button Content="退出程序" Click="ExitApp_Click" Width="160" Height="80" FontSize="32" FontWeight="Medium" Foreground="#FFFFFF" Background="#D9534F" BorderThickness="0" Margin="16 0 0 0"/>
  74. </StackPanel>
  75. <customUserControl:StatusControl Margin="0 0 10 0" Grid.Column="4" x:Name="_status" Cursor="Hand" MouseDown="_status_MouseDown" Count="{Binding AlarmCount}" />
  76. </Grid>
  77. <!--运行时间-->
  78. <!-- M4-01-2:固定运行时间条用 Auto 行高 + MinHeight 兜底(替代原写死 250),三等分 * 列保持弹性。 -->
  79. <Grid Grid.Row="1" MinHeight="250" Background="#F8F9FB">
  80. <Grid.RowDefinitions>
  81. <RowDefinition/>
  82. <RowDefinition Height="1"/>
  83. <RowDefinition Height="1"/>
  84. </Grid.RowDefinitions>
  85. <Grid.ColumnDefinitions>
  86. <ColumnDefinition/>
  87. <ColumnDefinition/>
  88. <ColumnDefinition/>
  89. </Grid.ColumnDefinitions>
  90. <StackPanel Grid.Row="0" Grid.Column="0" Orientation="Horizontal">
  91. <Ellipse Fill="#4D74AB" Width="15" Height="15" Margin="30 0 10 0"/>
  92. <TextBlock Text="{Binding RunTimeString}" VerticalAlignment="Center" FontSize="42" Foreground="#6E7276"/>
  93. </StackPanel>
  94. <StackPanel Grid.Row="0" Grid.Column="1" Orientation="Horizontal">
  95. <Ellipse Fill="#4D74AB" Width="15" Height="15" Margin="30 0 10 0" />
  96. <TextBlock Text="{Binding MaintenanceTimeString}" VerticalAlignment="Center" FontSize="42" Foreground="#6E7276"/>
  97. </StackPanel>
  98. <StackPanel Grid.Row="0" Grid.Column="2" Orientation="Horizontal">
  99. <Ellipse Fill="#4D74AB" Width="15" Height="15" Margin="30 0 10 0" />
  100. <TextBlock Text="{Binding HepaTimeString}" VerticalAlignment="Center" FontSize="42" Foreground="#6E7276"/>
  101. </StackPanel>
  102. <!--横线-->
  103. <Border Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="3" Background="#FFFFFF"/>
  104. <Border Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="3" Background="#DDDEE0"/>
  105. </Grid>
  106. <!--10个园-->
  107. <!-- M4-05-2:10 舱弹性填满、零溢出。舱区行=*/1px/1px/*(2 内容行)、列=13 列(5 舱列星号 + 各 1px 分隔线),
  108. 沿用现状网格结构(子计划 M4-05-2「舱列/行全 *,分隔线 1px 维持」);10 个 CustomHouseInfo 按 2 行×5 列布局,
  109. 与 07 文档「5行×2列」等价(同 10 格弹性填满)。各舱控件内部为固定画布外套 Viewbox(M4-03-1)等比缩放,
  110. 随舱列宽/行高 * 与顶层 Viewbox 一并缩放,圆形皿不变形、不溢出。ClipToBounds 兜底:即便极端比例下
  111. 舱控件按 Uniform 居中后亦不会越界绘制,确保零滚动。业务绑定(ExDish*/ExHouse*/ClickHouseEvent)不动。 -->
  112. <Grid Grid.Row="2" ClipToBounds="True" Background="{StaticResource BorderStageFill}">
  113. <Grid.RowDefinitions>
  114. <RowDefinition/>
  115. <RowDefinition Height="1"/>
  116. <RowDefinition Height="1"/>
  117. <RowDefinition/>
  118. </Grid.RowDefinitions>
  119. <Grid.ColumnDefinitions>
  120. <ColumnDefinition/>
  121. <ColumnDefinition Width="1"/>
  122. <ColumnDefinition Width="1"/>
  123. <ColumnDefinition/>
  124. <ColumnDefinition Width="1"/>
  125. <ColumnDefinition Width="1"/>
  126. <ColumnDefinition/>
  127. <ColumnDefinition Width="1"/>
  128. <ColumnDefinition Width="1"/>
  129. <ColumnDefinition/>
  130. <ColumnDefinition Width="1"/>
  131. <ColumnDefinition Width="1"/>
  132. <ColumnDefinition/>
  133. </Grid.ColumnDefinitions>
  134. <!--竖线-->
  135. <Border Grid.Column="1" Grid.RowSpan="4" Background="#FFFFFF"/>
  136. <Border Grid.Column="2" Grid.RowSpan="4" Background="#DFE0E4"/>
  137. <Border Grid.Column="4" Grid.RowSpan="4" Background="#FFFFFF"/>
  138. <Border Grid.Column="5" Grid.RowSpan="4" Background="#DFE0E4"/>
  139. <Border Grid.Column="7" Grid.RowSpan="4" Background="#FFFFFF"/>
  140. <Border Grid.Column="8" Grid.RowSpan="4" Background="#DFE0E4"/>
  141. <Border Grid.Column="10" Grid.RowSpan="4" Background="#FFFFFF"/>
  142. <Border Grid.Column="11" Grid.RowSpan="4" Background="#DFE0E4"/>
  143. <!--横线-->
  144. <Border Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="13" Background="#FFFFFF"/>
  145. <Border Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="13" Background="#DDDEE0"/>
  146. <customUserControl:CustomHouseInfo x:Name="_HouseInfo2" HouseSn="2" Grid.Row="0" Grid.Column="0" ClickHouseEvent="CustomHouseInfo_ClickHouseEvent" ExDishSource="{Binding ExDish2}" ExHouseSource="{Binding ExHouse2}"/>
  147. <customUserControl:CustomHouseInfo x:Name="_HouseInfo4" HouseSn="4" Grid.Row="0" Grid.Column="3" ClickHouseEvent="CustomHouseInfo_ClickHouseEvent" ExDishSource="{Binding ExDish4}" ExHouseSource="{Binding ExHouse4}"/>
  148. <customUserControl:CustomHouseInfo x:Name="_HouseInfo6" HouseSn="6" Grid.Row="0" Grid.Column="6" ClickHouseEvent="CustomHouseInfo_ClickHouseEvent" ExDishSource="{Binding ExDish6}" ExHouseSource="{Binding ExHouse6}"/>
  149. <customUserControl:CustomHouseInfo x:Name="_HouseInfo8" HouseSn="8" Grid.Row="0" Grid.Column="9" ClickHouseEvent="CustomHouseInfo_ClickHouseEvent" ExDishSource="{Binding ExDish8}" ExHouseSource="{Binding ExHouse8}"/>
  150. <customUserControl:CustomHouseInfo x:Name="_HouseInfo10" HouseSn="10" Grid.Row="0" Grid.Column="12" ClickHouseEvent="CustomHouseInfo_ClickHouseEvent" ExDishSource="{Binding ExDish10}" ExHouseSource="{Binding ExHouse10}"/>
  151. <customUserControl:CustomHouseInfo x:Name="_HouseInfo1" HouseSn="1" Grid.Row="3" Grid.Column="0" ClickHouseEvent="CustomHouseInfo_ClickHouseEvent" ExDishSource="{Binding ExDish1}" ExHouseSource="{Binding ExHouse1}"/>
  152. <customUserControl:CustomHouseInfo x:Name="_HouseInfo3" HouseSn="3" Grid.Row="3" Grid.Column="3" ClickHouseEvent="CustomHouseInfo_ClickHouseEvent" ExDishSource="{Binding ExDish3}" ExHouseSource="{Binding ExHouse3}"/>
  153. <customUserControl:CustomHouseInfo x:Name="_HouseInfo5" HouseSn="5" Grid.Row="3" Grid.Column="6" ClickHouseEvent="CustomHouseInfo_ClickHouseEvent" ExDishSource="{Binding ExDish5}" ExHouseSource="{Binding ExHouse5}"/>
  154. <customUserControl:CustomHouseInfo x:Name="_HouseInfo7" HouseSn="7" Grid.Row="3" Grid.Column="9" ClickHouseEvent="CustomHouseInfo_ClickHouseEvent" ExDishSource="{Binding ExDish7}" ExHouseSource="{Binding ExHouse7}"/>
  155. <customUserControl:CustomHouseInfo x:Name="_HouseInfo9" HouseSn="9" Grid.Row="3" Grid.Column="12" ClickHouseEvent="CustomHouseInfo_ClickHouseEvent" ExDishSource="{Binding ExDish9}" ExHouseSource="{Binding ExHouse9}"/>
  156. </Grid>
  157. <!--底部菜单-->
  158. <!-- M4-02-1:底部导航是最高频触控区。去写死 Width(4 列 * 已等分,宽随列弹性);
  159. Height(写死)→ MinHeight(弹性宽 + 高度下限)。MinHeight=324 既保持设计视觉、又远高于
  160. 触控基准 TouchMinSize(48),经顶层 Viewbox 等比后实际触控热区更大。事件 Click 不动。 -->
  161. <Grid Grid.Row="3" Background="{StaticResource BorderMenuFill}">
  162. <Grid.ColumnDefinitions>
  163. <ColumnDefinition/>
  164. <ColumnDefinition/>
  165. <ColumnDefinition/>
  166. <ColumnDefinition/>
  167. </Grid.ColumnDefinitions>
  168. <customControl:ButtonTopImage Grid.Column="0" Content="{DynamicResource C0141}" Click="DishRecord_Click" MinHeight="324" IconWidth="105" IconHeight="112" FontSize="32" FontWeight="Medium" Foreground="#0B1B31" BorderThickness="0" Background="Transparent" IconSource="/ivf_tl_Operate;component/Resources/Image/menu_history_on.png" IconMargin="0 0 0 20"/>
  169. <customControl:ButtonTopImage Grid.Column="1" Content="{DynamicResource C0142}" Click="Chart_Click" MinHeight="324" IconWidth="105" IconHeight="112" FontSize="32" FontWeight="Medium" Foreground="#0B1B31" BorderThickness="0" Background="Transparent" IconSource="/ivf_tl_Operate;component/Resources/Image/menu_house_on.png" IconMargin="0 0 0 20"/>
  170. <customControl:ButtonTopImage Grid.Column="2" Content="{DynamicResource C0143}" Click="Setting_Click" MinHeight="324" IconWidth="105" IconHeight="112" FontSize="32" FontWeight="Medium" Foreground="#0B1B31" BorderThickness="0" Background="Transparent" IconSource="/ivf_tl_Operate;component/Resources/Image/menu_setting_on.png" IconMargin="0 0 0 20"/>
  171. <!--<Button Grid.Column="1" Click="Button_Click" Height="324" Width="456" FontSize="32" FontWeight="Medium" Foreground="#0B1B31" BorderThickness="0" Background="Transparent">
  172. <StackPanel Orientation="Horizontal">
  173. <Rectangle Fill="#555555" Width="90" Height="10"/>
  174. <TextBlock Margin="20 0 0 0" Text="最小化"/>
  175. </StackPanel>
  176. </Button>-->
  177. <customControl:ButtonTopImage Grid.Column="3" Content="admin" Click="User_Click" MinHeight="324" IconWidth="105" IconHeight="112" FontSize="32" FontWeight="Medium" Foreground="#0B1B31" BorderThickness="0" Background="Transparent" IconSource="/ivf_tl_Operate;component/Resources/Image/user_photo.png" IconMargin="0 0 0 20"/>
  178. </Grid>
  179. </Grid>
  180. </UserControl>