C# 如何获取列表框项目高度

C# 如何获取列表框项目高度,c#,wpf,canvas,listbox,C#,Wpf,Canvas,Listbox,这里有一个列表框: <ListBox Name="listbox1" ItemsSource="{Binding Area}" Grid.Column="0" Grid.Row="0" HorizontalContentAlignment="Stretch"> <ListBox.ItemTemplate> <DataTemplate> <Border

这里有一个
列表框

 <ListBox Name="listbox1"   ItemsSource="{Binding Area}" Grid.Column="0" Grid.Row="0"  HorizontalContentAlignment="Stretch">
            <ListBox.ItemTemplate>
                <DataTemplate>
                    <Border BorderBrush="Green" BorderThickness="2" Margin="5" >
                        <Grid>
                            <Grid.RowDefinitions>
                                <RowDefinition Height="1*"/>
                                <RowDefinition Height="1*"/>
                                <RowDefinition Height="2*"/>
                            </Grid.RowDefinitions>
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition Width="2*" />
                                <ColumnDefinition Width="8*" />
                            </Grid.ColumnDefinitions>
                            <DockPanel  Grid.Row="0" Grid.Column="0" Margin="2">
                                <TextBox PreviewTextInput="minMaxPreviewInput" IsReadOnly="{Binding AutoChange}" Text="{Binding MinIntValue, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" Width="30" DockPanel.Dock="Right" TextAlignment="Right"/>
                                <TextBlock Text="Minimum Value" DockPanel.Dock="Left"/>
                            </DockPanel>
                            <DockPanel  Grid.Row="1" Grid.Column="0" Margin="2">
                                <TextBox PreviewTextInput="minMaxPreviewInput" IsReadOnly="{Binding AutoChange}" Text="{Binding MaxIntValue, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" Width="30" DockPanel.Dock="Right" TextAlignment="Right"/>
                                <TextBlock Text="Maximum Value" DockPanel.Dock="Left"/>
                            </DockPanel>
                            <DockPanel  Grid.Row="2" Grid.Column="0" Margin="2">
                                <TextBlock Text="{Binding AreaName}" FontSize="20" DockPanel.Dock="Left"/>
                                <TextBlock Text=":" FontSize="20" DockPanel.Dock="Left"/>
                                <TextBlock Text="{Binding Start}" FontSize="20" DockPanel.Dock="Left"/>
                                <CheckBox FlowDirection="RightToLeft" DockPanel.Dock="Right" IsChecked="{Binding AutoChange, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}">
                                    <TextBlock FlowDirection="LeftToRight" Text="Auto-Change:" />
                                </CheckBox>

                            </DockPanel>
                            <Border BorderBrush="Blue" BorderThickness="1" Grid.Column="1" Grid.RowSpan="3" Margin="5">
                                <Canvas Name="canvas1" >
                                    <Canvas.LayoutTransform>
                                        <ScaleTransform ScaleX="1" ScaleY="-1" CenterX=".5" CenterY=".5" />
                                    </Canvas.LayoutTransform>
                                    <Polyline Points="{Binding SegmentPoints}" Stroke="Black"    StrokeThickness="1"/>
                                </Canvas>
                            </Border>
                        </Grid>
                    </Border>
                </DataTemplate>
            </ListBox.ItemTemplate>
        </ListBox>

一切都很好。访问
画布
大小时遇到问题。我如何访问它
Listbox.ActualHeight
Listbox.ActualWidth
大于
画布
,我需要得到画布的确切大小


提前感谢您的帮助。

当您试图将其他绑定值的值建立在
画布
大小的基础上时,请使用
绑定
上的
单向源
模式,将
实际宽度
实际高度
应用于ViewModel上的某些属性


这将把控件中的值推送到您的
视图模型中
,允许您调整
分段点中的值
,以便它们根据
画布
大小正确缩放。

访问方式和位置?通过XAML中的相对绑定?直接在代码中?直接在代码中,在MainWindow.xaml.cs中。上面的代码来自MainWindow.xamlAs,因为您已经进行了相当复杂的绑定-为什么需要在codebehind中访问它?画布用于实时显示传感器值。画布大小是可调整的,因为它位于网格中,网格列的大小为*8。为了显示这些值,我需要计算X和Y坐标的值,为此,我需要画布大小来匹配它。