2010-11-24 5 views
1

제목 : 동적 UniformGrid의 특정 열을 크기를 조정할 수있는 우아한 방법이 있습니까?동적 WPF UniformGrid에서 특정 열을 활성화 할 수있는 우아한 방법

세부는 :

나는 ItemsControl에이 있고 ItemsPanelTemplate 유형 UniformGrid의로 설정. ItemTemplate은 열 내용을 렌더링하는 사용자 정의 컨트롤로 설정됩니다.

<ItemsControl x:Name="PART_Dimensions" 
      Grid.Column="1" HorizontalAlignment="Stretch"> 
    <ItemsControl.ItemsPanel> 
    <ItemsPanelTemplate> 

     <UniformGrid Columns="{Binding 
      Path=ItemsSource.Count, 
      RelativeSource={RelativeSource FindAncestor, 
      AncestorType={x:Type ItemsControl}}}" 
         IsItemsHost="True"/> 

    </ItemsPanelTemplate> 
    </ItemsControl.ItemsPanel> 
    <ItemsControl.ItemTemplate> 
    <DataTemplate> 

      <local:Dimension 
       PropertyA="{Binding SourceA}" 
       ItemsSource="{Binding SourceB}" /> 

    </DataTemplate> 
</ItemsControl.ItemTemplate> 
이제

, 내가 달성하기 위해 노력하고있어 여전히 허용하면서 특정 열이 그들에게 고정 폭을 제공, 크기 조정, 그것은 가능하게하는 것입니다 : 여기

는 XAML의 발췌 한 것입니다 다른 열은 너비가 균일하게 크기가 지정됩니다.

나를 가리키는 누군가가 있습니까? UniformGrid의 렌더링에 대한 너무 특정한 사용자 정의 구현을 피하기를 바랬습니다. 이렇게하는 것이 현명하고 쉬운 방법입니까?

덕분에 관해서 올레

답변

1

정적 폭이 약간의 열을 유지하고 수 있도록하려는 경우에 사전 다른 사람들은 내가 UniformGrid가 함께 가야 할 권리 Panel없는 말을, 동적 폭을 가지고있다.

StackPanelHorizontal Orientation을 함께 사용하면 어떻습니까? 당신 코드에서, 당신은 하나의 행만 필요하다는 것을 알았습니다.

그래도 문제가 해결되지 않으면 Grid으로 가십시오. 코드를 작성해야하지만 최상의 결과를 얻을 수 있습니다. GridSplitter을 사용하여 Grid 열의 크기를 조정할 수 있습니다.

+0

감사합니다 decyclone. 처음에는 StackPanel을 시도했지만, "columns"의 내용을 가능한 가장 큰 너비로 자동 크기 조정하는 데 문제가있었습니다. 처음에는 그리드가 좋은 선택 인 것처럼 보이지만 ItemsControl에서 수행 할 수있는 템플릿 작업을 수행 할 수 있습니까? –

+1

물론 가능합니다. 이 기사 (http://www.scottlogic.co.uk/blog/colin/2010/11/using-a-grid-as-the-panel-for-an-itemscontrol/)에서는이를 수행하는 방법을 보여줍니다. – decyclone

+0

내 하루를 구한 것 같습니다. 고마워. 나는 그것을 시도 할 것이다. –

관련 문제