Di aplikasi WPF saya, saya memiliki Stackpanel yang berisi beberapa kontrol di dalamnya. Bagaimana cara menambahkan Scrollbar ke stackpanel ini.
Di aplikasi WPF saya, saya memiliki Stackpanel yang berisi beberapa kontrol di dalamnya. Bagaimana cara menambahkan Scrollbar ke stackpanel ini.
Jawaban:
Masukkan ke dalam ScrollViewer
.
Stackpanel tidak memiliki mekanisme scrolling bawaan, tetapi Anda selalu dapat menggabungkan StackPanel di ScrollViewer
<ScrollViewer VerticalScrollBarVisibility="Auto">
<StackPanel ... />
</ScrollViewer>
StackPanel
menerapkan IScrollInfo
dan menawarkan sejumlah metode terkait pengguliran. Anda yakin tidak ada jenis mekanisme pengguliran "bawaan"?
Ini bekerja seperti ini:
<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);
Untuk StackPanel yang berorientasi horizontal, secara eksplisit menempatkan kedua visibilitas scrollbar berfungsi bagi saya untuk mendapatkan scrollbar horizontal.
<ScrollViewer VerticalScrollBarVisibility="Hidden" HorizontalScrollBarVisibility="Auto" >
<StackPanel Orientation="Horizontal" />
</ScrollViewer>
Jika maksud Anda, Anda ingin menggulir beberapa item di stackpanel Anda, coba letakkan kotak di sekitarnya. Menurut definisi, stackpanel memiliki panjang tak terbatas.
Jadi cobalah sesuatu seperti ini:
<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>
Anda bahkan dapat membuat ini berfungsi dengan ScrollViewer