解决Canvas无法缩放,配合Viewbox限定Canvas大小来完成缩放

This commit is contained in:
YONGYE 2025-10-10 16:34:35 +08:00
parent e9d9e67851
commit ec3c068817

View File

@ -3,212 +3,215 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d" d:DesignWidth="200" Height="482">
<Border Background="White" BorderBrush="#CCCCCC" BorderThickness="1">
<Grid Margin="0,0,0,-1">
<Grid.RowDefinitions>
<RowDefinition Height="30"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
mc:Ignorable="d" d:DesignWidth="200" >
<Border Background="White" BorderBrush="#CCCCCC" BorderThickness="1">
<Grid Margin="0,0,0,-1">
<Grid.RowDefinitions>
<RowDefinition Height="30"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<!-- 标题栏 -->
<TextBlock Grid.Row="0"
Text="{Binding SensorName, RelativeSource={RelativeSource AncestorType=UserControl}}"
HorizontalAlignment="Center"
VerticalAlignment="Center"
FontWeight="Bold"
Background="{Binding HeaderBackground, RelativeSource={RelativeSource AncestorType=UserControl}}"/>
<!-- 标题栏 -->
<TextBlock Grid.Row="0"
Text="{Binding SensorName, RelativeSource={RelativeSource AncestorType=UserControl}}"
HorizontalAlignment="Center"
VerticalAlignment="Center"
FontWeight="Bold"
Background="{Binding HeaderBackground, RelativeSource={RelativeSource AncestorType=UserControl}}"/>
<!-- 图表区域 -->
<Canvas Grid.Row="1" Background="White" Margin="20,20,20,3" Name="ChartCanvas">
<!-- 柱状图容器边框 - 左边界线 -->
<Line X1="40" Y1="20" X2="40" Y2="420" Stroke="Black" StrokeThickness="1"/>
<!-- 右边界线 -->
<Line X1="120" Y1="20" X2="120" Y2="420" Stroke="Black" StrokeThickness="1"/>
<!-- 顶部边界线 -->
<Line X1="40" Y1="20" X2="120" Y2="20" Stroke="Black" StrokeThickness="1"/>
<!-- 底部边界线 -->
<Line X1="40" Y1="420" X2="120" Y2="420" Stroke="Black" StrokeThickness="1"/>
<!-- 图表区域 -->
<Viewbox Grid.Row="1" Stretch="Uniform">
<!-- 大刻度线和标签 - 从40到-40每5个单位一个刻度 -->
<!-- 40 -->
<Line X1="120" Y1="20" X2="130" Y2="20" Stroke="Black" StrokeThickness="1"/>
<TextBlock Canvas.Left="135" Canvas.Top="15" Text="40" FontSize="10"/>
<Canvas Width="160" Height="440" Grid.Row="1" Background="White" Margin="20,20,20,3" Name="ChartCanvas">
<!-- 柱状图容器边框 - 左边界线 -->
<Line X1="40" Y1="20" X2="40" Y2="420" Stroke="Black" StrokeThickness="1"/>
<!-- 右边界线 -->
<Line X1="120" Y1="20" X2="120" Y2="420" Stroke="Black" StrokeThickness="1"/>
<!-- 顶部边界线 -->
<Line X1="40" Y1="20" X2="120" Y2="20" Stroke="Black" StrokeThickness="1"/>
<!-- 底部边界线 -->
<Line X1="40" Y1="420" X2="120" Y2="420" Stroke="Black" StrokeThickness="1"/>
<!-- 35 -->
<Line X1="40" Y1="45" X2="130" Y2="45" Stroke="Black" StrokeThickness="1"/>
<TextBlock Canvas.Left="135" Canvas.Top="40" Text="35" FontSize="10"/>
<!-- 大刻度线和标签 - 从40到-40每5个单位一个刻度 -->
<!-- 40 -->
<Line X1="120" Y1="20" X2="130" Y2="20" Stroke="Black" StrokeThickness="1"/>
<TextBlock Canvas.Left="135" Canvas.Top="15" Text="40" FontSize="10"/>
<!-- 30 -->
<Line X1="40" Y1="70" X2="130" Y2="70" Stroke="Black" StrokeThickness="1"/>
<TextBlock Canvas.Left="135" Canvas.Top="65" Text="30" FontSize="10"/>
<!-- 35 -->
<Line X1="40" Y1="45" X2="130" Y2="45" Stroke="Black" StrokeThickness="1"/>
<TextBlock Canvas.Left="135" Canvas.Top="40" Text="35" FontSize="10"/>
<!-- 25 -->
<Line X1="40" Y1="95" X2="130" Y2="95" Stroke="Black" StrokeThickness="1"/>
<TextBlock Canvas.Left="135" Canvas.Top="90" Text="25" FontSize="10"/>
<!-- 30 -->
<Line X1="40" Y1="70" X2="130" Y2="70" Stroke="Black" StrokeThickness="1"/>
<TextBlock Canvas.Left="135" Canvas.Top="65" Text="30" FontSize="10"/>
<!-- 20 -->
<Line X1="40" Y1="120" X2="130" Y2="120" Stroke="Black" StrokeThickness="1"/>
<TextBlock Canvas.Left="135" Canvas.Top="115" Text="20" FontSize="10"/>
<!-- 25 -->
<Line X1="40" Y1="95" X2="130" Y2="95" Stroke="Black" StrokeThickness="1"/>
<TextBlock Canvas.Left="135" Canvas.Top="90" Text="25" FontSize="10"/>
<!-- 15 -->
<Line X1="40" Y1="145" X2="130" Y2="145" Stroke="Black" StrokeThickness="1"/>
<TextBlock Canvas.Left="135" Canvas.Top="140" Text="15" FontSize="10"/>
<!-- 20 -->
<Line X1="40" Y1="120" X2="130" Y2="120" Stroke="Black" StrokeThickness="1"/>
<TextBlock Canvas.Left="135" Canvas.Top="115" Text="20" FontSize="10"/>
<!-- 10 -->
<Line X1="40" Y1="170" X2="130" Y2="170" Stroke="Black" StrokeThickness="1"/>
<TextBlock Canvas.Left="135" Canvas.Top="165" Text="10" FontSize="10"/>
<!-- 15 -->
<Line X1="40" Y1="145" X2="130" Y2="145" Stroke="Black" StrokeThickness="1"/>
<TextBlock Canvas.Left="135" Canvas.Top="140" Text="15" FontSize="10"/>
<!-- 5 -->
<Line X1="40" Y1="195" X2="130" Y2="195" Stroke="Black" StrokeThickness="1"/>
<TextBlock Canvas.Left="135" Canvas.Top="190" Text="5" FontSize="10"/>
<!-- 10 -->
<Line X1="40" Y1="170" X2="130" Y2="170" Stroke="Black" StrokeThickness="1"/>
<TextBlock Canvas.Left="135" Canvas.Top="165" Text="10" FontSize="10"/>
<!-- 0 -->
<Line X1="40" Y1="220" X2="130" Y2="220" Stroke="Black" StrokeThickness="1"/>
<TextBlock Canvas.Left="135" Canvas.Top="215" Text="0" FontSize="10"/>
<!-- 5 -->
<Line X1="40" Y1="195" X2="130" Y2="195" Stroke="Black" StrokeThickness="1"/>
<TextBlock Canvas.Left="135" Canvas.Top="190" Text="5" FontSize="10"/>
<!-- -5 -->
<Line X1="40" Y1="245" X2="130" Y2="245" Stroke="Black" StrokeThickness="1"/>
<TextBlock Canvas.Left="135" Canvas.Top="240" Text="-5" FontSize="10"/>
<!-- 0 -->
<Line X1="40" Y1="220" X2="130" Y2="220" Stroke="Black" StrokeThickness="1"/>
<TextBlock Canvas.Left="135" Canvas.Top="215" Text="0" FontSize="10"/>
<!-- -10 -->
<Line X1="40" Y1="270" X2="130" Y2="270" Stroke="Black" StrokeThickness="1"/>
<TextBlock Canvas.Left="135" Canvas.Top="265" Text="-10" FontSize="10"/>
<!-- -5 -->
<Line X1="40" Y1="245" X2="130" Y2="245" Stroke="Black" StrokeThickness="1"/>
<TextBlock Canvas.Left="135" Canvas.Top="240" Text="-5" FontSize="10"/>
<!-- -15 -->
<Line X1="40" Y1="295" X2="130" Y2="295" Stroke="Black" StrokeThickness="1"/>
<TextBlock Canvas.Left="135" Canvas.Top="290" Text="-15" FontSize="10"/>
<!-- -10 -->
<Line X1="40" Y1="270" X2="130" Y2="270" Stroke="Black" StrokeThickness="1"/>
<TextBlock Canvas.Left="135" Canvas.Top="265" Text="-10" FontSize="10"/>
<!-- -20 -->
<Line X1="40" Y1="320" X2="130" Y2="320" Stroke="Black" StrokeThickness="1"/>
<TextBlock Canvas.Left="135" Canvas.Top="315" Text="-20" FontSize="10"/>
<!-- -15 -->
<Line X1="40" Y1="295" X2="130" Y2="295" Stroke="Black" StrokeThickness="1"/>
<TextBlock Canvas.Left="135" Canvas.Top="290" Text="-15" FontSize="10"/>
<!-- -25 -->
<Line X1="40" Y1="345" X2="130" Y2="345" Stroke="Black" StrokeThickness="1"/>
<TextBlock Canvas.Left="135" Canvas.Top="340" Text="-25" FontSize="10"/>
<!-- -20 -->
<Line X1="40" Y1="320" X2="130" Y2="320" Stroke="Black" StrokeThickness="1"/>
<TextBlock Canvas.Left="135" Canvas.Top="315" Text="-20" FontSize="10"/>
<!-- -30 -->
<Line X1="40" Y1="370" X2="130" Y2="370" Stroke="Black" StrokeThickness="1"/>
<TextBlock Canvas.Left="135" Canvas.Top="365" Text="-30" FontSize="10"/>
<!-- -25 -->
<Line X1="40" Y1="345" X2="130" Y2="345" Stroke="Black" StrokeThickness="1"/>
<TextBlock Canvas.Left="135" Canvas.Top="340" Text="-25" FontSize="10"/>
<!-- -35 -->
<Line X1="40" Y1="395" X2="130" Y2="395" Stroke="Black" StrokeThickness="1"/>
<TextBlock Canvas.Left="135" Canvas.Top="390" Text="-35" FontSize="10"/>
<!-- -30 -->
<Line X1="40" Y1="370" X2="130" Y2="370" Stroke="Black" StrokeThickness="1"/>
<TextBlock Canvas.Left="135" Canvas.Top="365" Text="-30" FontSize="10"/>
<!-- -40 -->
<Line X1="120" Y1="420" X2="130" Y2="420" Stroke="Black" StrokeThickness="1"/>
<TextBlock Canvas.Left="135" Canvas.Top="415" Text="-40" FontSize="10"/>
<!-- -35 -->
<Line X1="40" Y1="395" X2="130" Y2="395" Stroke="Black" StrokeThickness="1"/>
<TextBlock Canvas.Left="135" Canvas.Top="390" Text="-35" FontSize="10"/>
<!-- 小刻度线 - 每个大刻度之间3个小刻度 -->
<!-- 40到35之间的小刻度 -->
<Line X1="40" Y1="26.25" X2="125" Y2="26.25" Stroke="Black" StrokeThickness="0.5"/>
<Line X1="40" Y1="32.5" X2="125" Y2="32.5" Stroke="Black" StrokeThickness="0.5"/>
<Line X1="40" Y1="38.75" X2="125" Y2="38.75" Stroke="Black" StrokeThickness="0.5"/>
<!-- -40 -->
<Line X1="120" Y1="420" X2="130" Y2="420" Stroke="Black" StrokeThickness="1"/>
<TextBlock Canvas.Left="135" Canvas.Top="415" Text="-40" FontSize="10"/>
<!-- 35到30之间的小刻度 -->
<Line X1="40" Y1="51.25" X2="125" Y2="51.25" Stroke="Black" StrokeThickness="0.5"/>
<Line X1="40" Y1="57.5" X2="125" Y2="57.5" Stroke="Black" StrokeThickness="0.5"/>
<Line X1="40" Y1="63.75" X2="125" Y2="63.75" Stroke="Black" StrokeThickness="0.5"/>
<!-- 小刻度线 - 每个大刻度之间3个小刻度 -->
<!-- 40到35之间的小刻度 -->
<Line X1="40" Y1="26.25" X2="125" Y2="26.25" Stroke="Black" StrokeThickness="0.5"/>
<Line X1="40" Y1="32.5" X2="125" Y2="32.5" Stroke="Black" StrokeThickness="0.5"/>
<Line X1="40" Y1="38.75" X2="125" Y2="38.75" Stroke="Black" StrokeThickness="0.5"/>
<!-- 30到25之间的小刻度 -->
<Line X1="40" Y1="76.25" X2="125" Y2="76.25" Stroke="Black" StrokeThickness="0.5"/>
<Line X1="40" Y1="82.5" X2="125" Y2="82.5" Stroke="Black" StrokeThickness="0.5"/>
<Line X1="40" Y1="88.75" X2="125" Y2="88.75" Stroke="Black" StrokeThickness="0.5"/>
<!-- 35到30之间的小刻度 -->
<Line X1="40" Y1="51.25" X2="125" Y2="51.25" Stroke="Black" StrokeThickness="0.5"/>
<Line X1="40" Y1="57.5" X2="125" Y2="57.5" Stroke="Black" StrokeThickness="0.5"/>
<Line X1="40" Y1="63.75" X2="125" Y2="63.75" Stroke="Black" StrokeThickness="0.5"/>
<!-- 25到20之间的小刻度 -->
<Line X1="40" Y1="101.25" X2="125" Y2="101.25" Stroke="Black" StrokeThickness="0.5"/>
<Line X1="40" Y1="107.5" X2="125" Y2="107.5" Stroke="Black" StrokeThickness="0.5"/>
<Line X1="40" Y1="113.75" X2="125" Y2="113.75" Stroke="Black" StrokeThickness="0.5"/>
<!-- 30到25之间的小刻度 -->
<Line X1="40" Y1="76.25" X2="125" Y2="76.25" Stroke="Black" StrokeThickness="0.5"/>
<Line X1="40" Y1="82.5" X2="125" Y2="82.5" Stroke="Black" StrokeThickness="0.5"/>
<Line X1="40" Y1="88.75" X2="125" Y2="88.75" Stroke="Black" StrokeThickness="0.5"/>
<!-- 20到15之间的小刻度 -->
<Line X1="40" Y1="126.25" X2="125" Y2="126.25" Stroke="Black" StrokeThickness="0.5"/>
<Line X1="40" Y1="132.5" X2="125" Y2="132.5" Stroke="Black" StrokeThickness="0.5"/>
<Line X1="40" Y1="138.75" X2="125" Y2="138.75" Stroke="Black" StrokeThickness="0.5"/>
<!-- 25到20之间的小刻度 -->
<Line X1="40" Y1="101.25" X2="125" Y2="101.25" Stroke="Black" StrokeThickness="0.5"/>
<Line X1="40" Y1="107.5" X2="125" Y2="107.5" Stroke="Black" StrokeThickness="0.5"/>
<Line X1="40" Y1="113.75" X2="125" Y2="113.75" Stroke="Black" StrokeThickness="0.5"/>
<!-- 15到10之间的小刻度 -->
<Line X1="40" Y1="151.25" X2="125" Y2="151.25" Stroke="Black" StrokeThickness="0.5"/>
<Line X1="40" Y1="157.5" X2="125" Y2="157.5" Stroke="Black" StrokeThickness="0.5"/>
<Line X1="40" Y1="163.75" X2="125" Y2="163.75" Stroke="Black" StrokeThickness="0.5"/>
<!-- 20到15之间的小刻度 -->
<Line X1="40" Y1="126.25" X2="125" Y2="126.25" Stroke="Black" StrokeThickness="0.5"/>
<Line X1="40" Y1="132.5" X2="125" Y2="132.5" Stroke="Black" StrokeThickness="0.5"/>
<Line X1="40" Y1="138.75" X2="125" Y2="138.75" Stroke="Black" StrokeThickness="0.5"/>
<!-- 10到5之间的小刻度 -->
<Line X1="40" Y1="176.25" X2="125" Y2="176.25" Stroke="Black" StrokeThickness="0.5"/>
<Line X1="40" Y1="182.5" X2="125" Y2="182.5" Stroke="Black" StrokeThickness="0.5"/>
<Line X1="40" Y1="188.75" X2="125" Y2="188.75" Stroke="Black" StrokeThickness="0.5"/>
<!-- 15到10之间的小刻度 -->
<Line X1="40" Y1="151.25" X2="125" Y2="151.25" Stroke="Black" StrokeThickness="0.5"/>
<Line X1="40" Y1="157.5" X2="125" Y2="157.5" Stroke="Black" StrokeThickness="0.5"/>
<Line X1="40" Y1="163.75" X2="125" Y2="163.75" Stroke="Black" StrokeThickness="0.5"/>
<!-- 5到0之间的小刻度 -->
<Line X1="40" Y1="201.25" X2="125" Y2="201.25" Stroke="Black" StrokeThickness="0.5"/>
<Line X1="40" Y1="207.5" X2="125" Y2="207.5" Stroke="Black" StrokeThickness="0.5"/>
<Line X1="40" Y1="213.75" X2="125" Y2="213.75" Stroke="Black" StrokeThickness="0.5"/>
<!-- 10到5之间的小刻度 -->
<Line X1="40" Y1="176.25" X2="125" Y2="176.25" Stroke="Black" StrokeThickness="0.5"/>
<Line X1="40" Y1="182.5" X2="125" Y2="182.5" Stroke="Black" StrokeThickness="0.5"/>
<Line X1="40" Y1="188.75" X2="125" Y2="188.75" Stroke="Black" StrokeThickness="0.5"/>
<!-- 0到-5之间的小刻度 -->
<Line X1="40" Y1="226.25" X2="125" Y2="226.25" Stroke="Black" StrokeThickness="0.5"/>
<Line X1="40" Y1="232.5" X2="125" Y2="232.5" Stroke="Black" StrokeThickness="0.5"/>
<Line X1="40" Y1="238.75" X2="125" Y2="238.75" Stroke="Black" StrokeThickness="0.5"/>
<!-- 5到0之间的小刻度 -->
<Line X1="40" Y1="201.25" X2="125" Y2="201.25" Stroke="Black" StrokeThickness="0.5"/>
<Line X1="40" Y1="207.5" X2="125" Y2="207.5" Stroke="Black" StrokeThickness="0.5"/>
<Line X1="40" Y1="213.75" X2="125" Y2="213.75" Stroke="Black" StrokeThickness="0.5"/>
<!-- -5到-10之间的小刻度 -->
<Line X1="40" Y1="251.25" X2="125" Y2="251.25" Stroke="Black" StrokeThickness="0.5"/>
<Line X1="40" Y1="257.5" X2="125" Y2="257.5" Stroke="Black" StrokeThickness="0.5"/>
<Line X1="40" Y1="263.75" X2="125" Y2="263.75" Stroke="Black" StrokeThickness="0.5"/>
<!-- 0到-5之间的小刻度 -->
<Line X1="40" Y1="226.25" X2="125" Y2="226.25" Stroke="Black" StrokeThickness="0.5"/>
<Line X1="40" Y1="232.5" X2="125" Y2="232.5" Stroke="Black" StrokeThickness="0.5"/>
<Line X1="40" Y1="238.75" X2="125" Y2="238.75" Stroke="Black" StrokeThickness="0.5"/>
<!-- -10到-15之间的小刻度 -->
<Line X1="40" Y1="276.25" X2="125" Y2="276.25" Stroke="Black" StrokeThickness="0.5"/>
<Line X1="40" Y1="282.5" X2="125" Y2="282.5" Stroke="Black" StrokeThickness="0.5"/>
<Line X1="40" Y1="288.75" X2="125" Y2="288.75" Stroke="Black" StrokeThickness="0.5"/>
<!-- -5到-10之间的小刻度 -->
<Line X1="40" Y1="251.25" X2="125" Y2="251.25" Stroke="Black" StrokeThickness="0.5"/>
<Line X1="40" Y1="257.5" X2="125" Y2="257.5" Stroke="Black" StrokeThickness="0.5"/>
<Line X1="40" Y1="263.75" X2="125" Y2="263.75" Stroke="Black" StrokeThickness="0.5"/>
<!-- -15到-20之间的小刻度 -->
<Line X1="40" Y1="301.25" X2="125" Y2="301.25" Stroke="Black" StrokeThickness="0.5"/>
<Line X1="40" Y1="307.5" X2="125" Y2="307.5" Stroke="Black" StrokeThickness="0.5"/>
<Line X1="40" Y1="313.75" X2="125" Y2="313.75" Stroke="Black" StrokeThickness="0.5"/>
<!-- -10到-15之间的小刻度 -->
<Line X1="40" Y1="276.25" X2="125" Y2="276.25" Stroke="Black" StrokeThickness="0.5"/>
<Line X1="40" Y1="282.5" X2="125" Y2="282.5" Stroke="Black" StrokeThickness="0.5"/>
<Line X1="40" Y1="288.75" X2="125" Y2="288.75" Stroke="Black" StrokeThickness="0.5"/>
<!-- -20到-25之间的小刻度 -->
<Line X1="40" Y1="326.25" X2="125" Y2="326.25" Stroke="Black" StrokeThickness="0.5"/>
<Line X1="40" Y1="332.5" X2="125" Y2="332.5" Stroke="Black" StrokeThickness="0.5"/>
<Line X1="40" Y1="338.75" X2="125" Y2="338.75" Stroke="Black" StrokeThickness="0.5"/>
<!-- -15到-20之间的小刻度 -->
<Line X1="40" Y1="301.25" X2="125" Y2="301.25" Stroke="Black" StrokeThickness="0.5"/>
<Line X1="40" Y1="307.5" X2="125" Y2="307.5" Stroke="Black" StrokeThickness="0.5"/>
<Line X1="40" Y1="313.75" X2="125" Y2="313.75" Stroke="Black" StrokeThickness="0.5"/>
<!-- -25到-30之间的小刻度 -->
<Line X1="40" Y1="351.25" X2="125" Y2="351.25" Stroke="Black" StrokeThickness="0.5"/>
<Line X1="40" Y1="357.5" X2="125" Y2="357.5" Stroke="Black" StrokeThickness="0.5"/>
<Line X1="40" Y1="363.75" X2="125" Y2="363.75" Stroke="Black" StrokeThickness="0.5"/>
<!-- -20到-25之间的小刻度 -->
<Line X1="40" Y1="326.25" X2="125" Y2="326.25" Stroke="Black" StrokeThickness="0.5"/>
<Line X1="40" Y1="332.5" X2="125" Y2="332.5" Stroke="Black" StrokeThickness="0.5"/>
<Line X1="40" Y1="338.75" X2="125" Y2="338.75" Stroke="Black" StrokeThickness="0.5"/>
<!-- -30到-35之间的小刻度 -->
<Line X1="40" Y1="376.25" X2="125" Y2="376.25" Stroke="Black" StrokeThickness="0.5"/>
<Line X1="40" Y1="382.5" X2="125" Y2="382.5" Stroke="Black" StrokeThickness="0.5"/>
<Line X1="40" Y1="388.75" X2="125" Y2="388.75" Stroke="Black" StrokeThickness="0.5"/>
<!-- -25到-30之间的小刻度 -->
<Line X1="40" Y1="351.25" X2="125" Y2="351.25" Stroke="Black" StrokeThickness="0.5"/>
<Line X1="40" Y1="357.5" X2="125" Y2="357.5" Stroke="Black" StrokeThickness="0.5"/>
<Line X1="40" Y1="363.75" X2="125" Y2="363.75" Stroke="Black" StrokeThickness="0.5"/>
<!-- -35到-40之间的小刻度 -->
<Line X1="40" Y1="401.25" X2="125" Y2="401.25" Stroke="Black" StrokeThickness="0.5"/>
<Line X1="40" Y1="407.5" X2="125" Y2="407.5" Stroke="Black" StrokeThickness="0.5"/>
<Line X1="40" Y1="413.75" X2="125" Y2="413.75" Stroke="Black" StrokeThickness="0.5"/>
<!-- -30到-35之间的小刻度 -->
<Line X1="40" Y1="376.25" X2="125" Y2="376.25" Stroke="Black" StrokeThickness="0.5"/>
<Line X1="40" Y1="382.5" X2="125" Y2="382.5" Stroke="Black" StrokeThickness="0.5"/>
<Line X1="40" Y1="388.75" X2="125" Y2="388.75" Stroke="Black" StrokeThickness="0.5"/>
<!-- 柱状图数据 - 紧贴左右边界 -->
<Rectangle Name="DataBar"
Canvas.Left="40"
Canvas.Top="{Binding BarTop, RelativeSource={RelativeSource AncestorType=UserControl}}"
Width="80"
Height="{Binding BarHeight, RelativeSource={RelativeSource AncestorType=UserControl}}"
Fill="Blue"
Opacity="0.7"/>
<!-- -35到-40之间的小刻度 -->
<Line X1="40" Y1="401.25" X2="125" Y2="401.25" Stroke="Black" StrokeThickness="0.5"/>
<Line X1="40" Y1="407.5" X2="125" Y2="407.5" Stroke="Black" StrokeThickness="0.5"/>
<Line X1="40" Y1="413.75" X2="125" Y2="413.75" Stroke="Black" StrokeThickness="0.5"/>
<!-- 红色标记线 -->
<ItemsControl Name="RedLines" ItemsSource="{Binding RedLinePositions, RelativeSource={RelativeSource AncestorType=UserControl}}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<Canvas/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Line X1="40" Y1="{Binding}" X2="120" Y2="{Binding}" Stroke="Red" StrokeThickness="2"/>
</DataTemplate>
</ItemsControl.ItemTemplate>
<ItemsControl.ItemContainerStyle>
<Style TargetType="ContentPresenter">
<Setter Property="Canvas.Top" Value="0"/>
<Setter Property="Canvas.Left" Value="0"/>
</Style>
</ItemsControl.ItemContainerStyle>
</ItemsControl>
</Canvas>
<!-- 柱状图数据 - 紧贴左右边界 -->
<Rectangle Name="DataBar"
Canvas.Left="40"
Canvas.Top="{Binding BarTop, RelativeSource={RelativeSource AncestorType=UserControl}}"
Width="80"
Height="{Binding BarHeight, RelativeSource={RelativeSource AncestorType=UserControl}}"
Fill="Blue"
Opacity="0.7"/>
<!-- 红色标记线 -->
<ItemsControl Name="RedLines" ItemsSource="{Binding RedLinePositions, RelativeSource={RelativeSource AncestorType=UserControl}}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<Canvas/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Line X1="40" Y1="{Binding}" X2="120" Y2="{Binding}" Stroke="Red" StrokeThickness="2"/>
</DataTemplate>
</ItemsControl.ItemTemplate>
<ItemsControl.ItemContainerStyle>
<Style TargetType="ContentPresenter">
<Setter Property="Canvas.Top" Value="0"/>
<Setter Property="Canvas.Left" Value="0"/>
</Style>
</ItemsControl.ItemContainerStyle>
</ItemsControl>
</Canvas>
</Viewbox>
</Grid>
</Border>
</Border>
</UserControl>