转换器中的高度和实际高度返回零

时间:2013-10-07 09:54:46

标签: wpf xaml

我有一个项目控件,并在“项目控件”的项目面板中放置了一个面板。我想使用转换器设置我的面板的高度,所以在这个转换器中我需要访问Items控件的height属性,但它返回0.0。

实际上要求是,我需要在面板的ArrangeOverride方法中按特定顺序排列对象,在面板高度的基础上,所以我需要知道面板的高度或宽度,在ArrangeOverride方法中。

<Grid Grid.Row="0" x:Name="CircleGrid"
                          Grid.Column="0"
                          Grid.ColumnSpan="3">
                        <ItemsControl Name="CircleNavigatorItemsControl"
                                      Grid.Row="1"
                                      ItemsSource="{Binding RelativeSource={RelativeSource FindAncestor,AncestorType={x:Type UserControl}},
                            Path=DataContext.DocumentsItemsSource}">
                            <ItemsControl.ItemsPanel>
                                <ItemsPanelTemplate>
                                    <controls:CircularLayoutPanel x:Name="CircularPanel"  >
                                        <controls:CircularLayoutPanel.InnerRadius>
                                            <MultiBinding Converter="{StaticResource CircleNavigatorWidthConverter}" ConverterParameter="True">
                                                <Binding  Path="ActualHeight" ElementName="CircleNavigatorItemsControl" Mode="TwoWay"/>
                                            </MultiBinding>

1 个答案:

答案 0 :(得分:1)

不应该需要这样做,我会建议不要这样做。如果PanelItemsControl未正确调整Panel.MeasureOverride的大小,那么我只能假设Panel.ArrangeOverride和/或{{1}}方法中的逻辑有一个或多个错误