2013-10-07 65 views
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> 

回答

1

應該要做到這一點,我建議不要它。如果您的PanelItemsControl的自動尺寸不正確,那麼我只能假定您的邏輯在Panel.MeasureOverride和/或Panel.ArrangeOverride方法中有一個或多個錯誤。

+0

好的可能是我沒有提供完整的信息,我需要在面板的ArrangeOverride方法中以特定順序排列對象,在面板高度的基礎上,所以我需要知道面板的高度或寬度會越來越大,在ArrangeOverride方法中。 – Rishi

+0

你不能只使用'ArrangeOverride'方法中的'Size'輸入參數......通常這是如何實現的。 – Sheridan

相關問題