방법: ScrollViewer가 있는 Expander 만들기

업데이트: 2007년 11월

이 예제에서는 이미지 및 텍스트와 같은 복합 콘텐츠를 포함하는 Expander 컨트롤을 만드는 방법을 보여 줍니다. 이 예제에서는 ScrollViewer 컨트롤에 Expander의 콘텐츠도 포함합니다.

예제

다음 예제에서는 Expander를 만드는 방법을 보여 줍니다. 이 예제에서는 이미지 및 텍스트가 포함된 BulletDecorator 컨트롤을 사용하여 Header를 정의합니다. ScrollViewer 컨트롤은 확장된 콘텐츠를 스크롤하기 위한 메서드를 제공합니다.

이 예제에서는 콘텐츠가 아닌 ScrollViewer에서 Height 속성을 설정합니다. Height가 콘텐츠에 설정되어 있는 경우에는 사용자가 ScrollViewer에서 콘텐츠를 스크롤할 수 없습니다. Width 속성은 Expander 컨트롤에 설정되며 이 설정은 Header 및 확장된 콘텐츠에 적용됩니다.

<Expander Width="200" HorizontalContentAlignment="Stretch">
   <Expander.Header>
     <BulletDecorator>
       <BulletDecorator.Bullet>
         <Image Width="10" Source="images\icon.jpg"/>
       </BulletDecorator.Bullet>
       <TextBlock Margin="20,0,0,0">My Expander</TextBlock>
     </BulletDecorator>
   </Expander.Header>
   <Expander.Content>
     <ScrollViewer Height="50">
       <TextBlock TextWrapping="Wrap">
         Lorem ipsum dolor sit amet, consectetur adipisicing elit, 
         sed do eiusmod tempor incididunt ut labore et dolore magna 
         aliqua. Ut enim ad minim veniam, quis nostrud exercitation 
         ullamco laboris nisi ut aliquip ex ea commodo consequat. 
         Duis aute irure dolor in reprehenderit in voluptate velit 
         esse cillum dolore eu fugiat nulla pariatur. Excepteur sint 
         occaecat cupidatat non proident, sunt in culpa qui officia 
         deserunt mollit anim id est laborum.
       </TextBlock>
     </ScrollViewer>
   </Expander.Content>
 </Expander>
//Create Expander object
Expander exp = new Expander();

//Create Bullet Panel for Expander Header
BulletDecorator bp = new BulletDecorator();
Image i = new Image();
BitmapImage bi= new BitmapImage(); 
bi.UriSource = new Uri(@"pack://application:,,/images/icon.jpg");
i.Source = bi;
i.Width = 10;
bp.Bullet = i;
TextBlock tb = new TextBlock();
tb.Text = "My Expander";
tb.Margin = new Thickness(20,0,0,0);     
bp.Child = tb;
exp.Header = bp;

//Create TextBlock with ScrollViewer for Expander Content
StackPanel spScroll = new StackPanel();
TextBlock tbc = new TextBlock();
tbc.Text =
        "Lorem ipsum dolor sit amet, consectetur adipisicing elit," +
        "sed do eiusmod tempor incididunt ut labore et dolore magna" +
        "aliqua. Ut enim ad minim veniam, quis nostrud exercitation" +
        "ullamco laboris nisi ut aliquip ex ea commodo consequat." +
        "Duis aute irure dolor in reprehenderit in voluptate velit" +
        "esse cillum dolore eu fugiat nulla pariatur. Excepteur sint" +
        "occaecat cupidatat non proident, sunt in culpa qui officia" +
        "deserunt mollit anim id est laborum.";
tbc.TextWrapping = TextWrapping.Wrap;

spScroll.Children.Add(tbc);
ScrollViewer scr = new ScrollViewer();
scr.Content = spScroll;
scr.Height = 50;
exp.Content = scr;

exp.Width=200;  
exp.HorizontalContentAlignment= HorizontalAlignment.Stretch;

참고 항목

개념

Expander 개요

참조

Expander

기타 리소스

Expander 샘플

Expander 방법 항목