문제

이 질문은 이것과 동일합니다 답이없는 질문.

확장기 외부를 확장합니다 목록보기 확장기 내용을위한 공간을 만들기 위해 성장하지만 확장기 그런 다음 뷰가 무너지면 ListView가 크기를 조정하지 않습니다.

감소 된 코드, 다음의 메모와 함께 :

<!--<StackPanel>-->
<ItemsControl>

  <!-- ParameterGroupView -->
  <Border BorderBrush="Brown" BorderThickness="1" CornerRadius="4" Padding="4">
    <ListView HorizontalContentAlignment="Stretch">
      <Expander Header="Expander A" IsExpanded="False">
        <ListView HorizontalContentAlignment="Stretch">

          <!-- TextView -->
          <TextBlock >Content A</TextBlock>
          <TextBlock >Content B</TextBlock>

        </ListView>
      </Expander>

    </ListView>
  </Border>

</ItemsControl>
<!--</StackPanel>-->

나는 이것 가지다 ParameterGroupView 안에 항목 통제 또는 스택 패널 실제로 많은 것이 있기 때문입니다 ParameterGroupView 항목. a로 바꾸는 것 스택 패널 행동을 바꾸지 않습니다.

제거 하숙인 행동에 영향을 미치지는 않지만 그것을 갖는 것은 단 하나의 행동으로 행동을 보여줍니다. ParameterGroupView.

많은 사람들이있을 수 있습니다 확장기 외부의 섹션 목록보기, 그리고 확장기 내부 안에 많은 개체가있을 수 있습니다 목록보기.

외부 목록보기 그리고 확장기 교체하는 것입니다 트리 뷰, 그것은 접을 수있는 노드 목록을 가지고 있었지만 트리 뷰그리드의 내부 사용은 텍스트 뷰 항목이 에테르를 제거하는 것과 마찬가지로 horizonatlly를 스쿼시했음을 의미합니다. HorizontalContentalIngment = "Stretch" 속성.

따라서이 모든 것을 마무리/전선하는 또 다른 방법이 있다면, 나는 또한 행복 할 것입니다.

이것은 우리의 문제입니다 텍스트 뷰 블록은 크고 많은 것이 있습니다 확장기에스.

편집하다: 텍스트 뷰 코드가 데이터 바운드로 사용되므로 동적으로 구성됩니다. 따라서 ListView를 대체하는 것은 어떤 형태의 형태가 필요합니다. 항목 소스

도움이 되었습니까?

해결책

해결책을 찾았으며 이미 질문의 위치에 대해 자세히 설명합니다.

Itemcontrol 수락합니다 항목 소스 그리고 자동 크기가 있습니다. 그래서 둘을 대체합니다 목록보기S와 함께 ItemcontrolS는 중첩 된 붕괴를받습니다.

하지만 스크롤이 없으므로 외부를 감싸십시오. Itemcontrol a 스크롤 뷰어, 완전한 원하는 효과를 재현합니다.

<ScrollViewer
    VerticalScrollBarVisibility="Auto">
    <ItemsControl>
        <!-- ParameterGroupView -->
        <Border
            BorderBrush="Brown"
            BorderThickness="1"
            CornerRadius="4"
            Padding="4"
            Height="Auto">
            <ItemsControl
                HorizontalContentAlignment="Stretch">
                <Expander
                    Header="Expander A"
                    IsExpanded="False">
                    <ItemsControl
                        HorizontalContentAlignment="Stretch">
                        <!-- TextView -->
                        <TextBlock>Content A</TextBlock>
                        <TextBlock>Content B</TextBlock>
                    </ItemsControl>
                </Expander>
            </ItemsControl>
        </Border>
    </ItemsControl>
</ScrollViewer>

국경과 이중 테두리 섹션에서 이중 확장기로 테스트하고있었습니다.

다른 팁

여기서 가장 분명한 일은 확장기를 ListView 이외의 컨테이너에 넣는 것입니다.

<Border BorderBrush="Brown" BorderThickness="1" CornerRadius="4" Padding="4">
    <StackPanel>

        <Expander Header="Expander A" IsExpanded="False">
            <ListView HorizontalContentAlignment="Stretch" MinWidth="100">
                <ListBox Name="listb"></ListBox>

                <!-- TextView -->
                <TextBlock >Content A</TextBlock>
                <TextBlock>Content B</TextBlock>

            </ListView>
        </Expander>
    </StackPanel>
</Border>

컨테이너는 콘텐츠 주위에 크게 선별합니다.

ListView (가능)에 절대적으로 가져야한다면 ListView가 재배되면 쉽게 크기를 조정할 수있는 방법을 모릅니다 (모든 것의 명시 적 크기를 설정하는 것 이상은 서투르고 유용하지 않습니다). . 그렇다면 제어 가능한 Listbox를 사용하여 모든 열린 확장기를 표시하거나 다른 방식으로 콘텐츠를 표시해야 할 수 있습니다 (팝업과 같이 팝업과 같이)를 표시 할 수 있습니다. 모두 한 눈에.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top