我有一个项目控件,并在“项目控件”的项目面板中放置了一个面板。我想使用转换器设置我的面板的高度,所以在这个转换器中我需要访问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>
答案 0 :(得分:1)
你不应该需要这样做,我会建议不要这样做。如果Panel
自ItemsControl
未正确调整Panel.MeasureOverride
的大小,那么我只能假设Panel.ArrangeOverride
和/或{{1}}方法中的逻辑有一个或多个错误