prosource

스택 패널에 ScrollBar를 추가하는 방법

probook 2023. 4. 18. 23:05
반응형

스택 패널에 ScrollBar를 추가하는 방법

WPF 어플리케이션에는 내부에 여러 컨트롤이 포함된 스택패널이 있어요이 스택 패널에 스크롤바를 추가하려면 어떻게 해야 하나요?

에 넣습니다.

스택 패널에는 스크롤 메커니즘이 내장되어 있지 않지만 StackPanel은 ScrollViewer로 언제든지 랩할 수 있습니다.

<ScrollViewer VerticalScrollBarVisibility="Auto">
  <StackPanel ... />
</ScrollViewer>

다음과 같이 동작합니다.

<ScrollViewer VerticalScrollBarVisibility="Visible" HorizontalScrollBarVisibility="Disabled" Width="340" HorizontalAlignment="Left" Margin="12,0,0,0">
        <StackPanel Name="stackPanel1" Width="311">

        </StackPanel>
</ScrollViewer>

TextBox tb = new TextBox();
tb.TextChanged += new TextChangedEventHandler(TextBox_TextChanged);
stackPanel1.Children.Add(tb);

수평 방향의 StackPanel의 경우 스크롤바를 모두 명시적으로 배치하면 수평 스크롤바를 얻을 수 있었습니다.

    <ScrollViewer VerticalScrollBarVisibility="Hidden" HorizontalScrollBarVisibility="Auto" >
        <StackPanel Orientation="Horizontal" />
    </ScrollViewer>

스택 패널의 여러 항목을 스크롤하려면 그 주위에 그리드를 그려 보십시오.정의상 스택패널의 길이는 무한입니다.

다음과 같은 방법을 시도해 보십시오.

   <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
        <StackPanel Width="311">
              <TextBlock Text="{Binding A}" TextWrapping="Wrap" Style="{StaticResource PhoneTextExtraLargeStyle}" FontStretch="Condensed" FontSize="28" />
              <TextBlock Text="{Binding B}" TextWrapping="Wrap" Margin="12,-6,12,0" Style="{StaticResource PhoneTextSubtleStyle}"/>
        </StackPanel>
    </Grid>

ScrollViewer를 사용하여 이 작업을 수행할 수도 있습니다.

언급URL : https://stackoverflow.com/questions/6250240/how-to-add-a-scrollbar-to-a-stackpanel

반응형