【问题标题】:Height and actual height returning zero in converter高度和实际高度在转换器中返回零
【发布时间】:2013-10-07 09:54:46
【问题描述】:

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

【问题讨论】:

    标签: wpf xaml


    【解决方案1】:

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

    【讨论】:

    • 好的可能是我没有提供完整的信息,我需要在面板的 ArrangeOverride 方法中根据面板的高度以特定的顺序排列对象,所以我需要知道高度或在 ArrangeOverride 方法中将获取宽度面板。
    • 你不能只使用ArrangeOverride方法中的Size输入参数吗...通常是这样实现的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-03
    • 1970-01-01
    相关资源
    最近更新 更多