Gewusst wie: Erstellen eines Expanders mit einem ScrollViewer
In diesem Beispiel wird das Erstellen eines Expander-Steuerelements veranschaulicht, das komplexen Inhalt, etwa ein Bild und Text, enthält. Dieses Beispiel enthält auch den Inhalt vom Expander in einem ScrollViewer-Steuerelement.
Beispiel
Im folgenden Beispiel wird gezeigt, wie Sie einen Expander erstellen. Im Beispiel wird ein BulletDecorator-Steuerelement verwendet, das ein Bild und Text enthält, um den Header zu definieren. Ein ScrollViewer-Steuerelement stellt eine Methode bereit, mit der Sie einen Bildlauf durch den erweiterten Inhalt durchführen können.
Beachten Sie, dass im Beispiel die Height-Eigenschaft für den ScrollViewer, nicht für den Inhalt festgelegt wird. Wenn die Height für den Inhalt festgelegt wird, kann der Benutzer mit dem ScrollViewer keinen Bildlauf durch den Inhalt durchführen. Die Width-Eigenschaft wird für das Expander-Steuerelement festgelegt, und diese Einstellung gilt für den Header und den erweiterten Inhalt.
<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;
Siehe auch
Referenz
Konzepte
Übersicht über Expander-Steuerelemente