0

我有一个项目控件,并在项目控件的项目面板中放置了一个面板。我想使用转换器设置面板的高度,因此在此转换器中,我需要访问 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>
4

1 回答 1

1

不应该这样做,我建议不要这样做。如果您Panel没有自动正确调整大小ItemsControl,那么我只能假设您在Panel.MeasureOverrideand/orPanel.ArrangeOverride方法中的逻辑有一个或多个错误。

于 2013-10-07T10:09:32.730 回答