WPF uygulamamda, içinde birkaç kontrol içeren bir Stackpanel var. Bu yığın paneline nasıl bir Kaydırma Çubuğu ekleyebilirim?
WPF uygulamamda, içinde birkaç kontrol içeren bir Stackpanel var. Bu yığın paneline nasıl bir Kaydırma Çubuğu ekleyebilirim?
Yanıtlar:
Bir ScrollViewer
.
Stackpanel, yerleşik kaydırma mekanizmasına sahip değildir, ancak StackPanel'i her zaman bir ScrollViewer'a sarabilirsiniz
<ScrollViewer VerticalScrollBarVisibility="Auto">
<StackPanel ... />
</ScrollViewer>
StackPanel
uygular IScrollInfo
ve sunar. Herhangi bir "yerleşik" kaydırma mekanizmasına sahip olmadığından emin misiniz?
Şu şekilde çalışır:
<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);
Yatay olarak yönlendirilmiş StackPanel için, her iki kaydırma çubuğu görünürlüğünü de açıkça koymak, yatay kaydırma çubuğunu elde etmem için çalıştı.
<ScrollViewer VerticalScrollBarVisibility="Hidden" HorizontalScrollBarVisibility="Auto" >
<StackPanel Orientation="Horizontal" />
</ScrollViewer>
Yığın panelinizdeki birden çok öğe arasında gezinmek istiyorsanız, etrafına bir ızgara koymayı deneyin. Tanım olarak, bir yığın panelinin sonsuz uzunluğu vardır.
Öyleyse şuna benzer bir şey deneyin:
<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>
Bunu bir ScrollViewer ile bile çalıştırabilirsiniz