我是WPF的新手,如果答案如此明显,请道歉。 我有一个WPF可调整大小的窗口,其中有一个垂直和水平拉伸的单个堆栈面板控件,以填充窗口。 在窗口激活事件中,我使用“.Children.Add”向面板添加按钮控件。我不知道在运行时会有多少按钮,所以我在面板中检查了“CanVerticallyScroll”。默认情况下,ScrollViewer.VerticalScrollBarVisibility设置为Visible。
我仍然没有在运行时看到滚动条。
使用按钮显示滚动面板时,我错过了哪些属性?
由于
XAML:
<Window x:Class="ResMed.Ecp.Utility.ConnectionWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="ConnectionWindow" Height="388" Width="641.6" Activated="Window_Activated">
<Grid>
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition Height="359*"/>
</Grid.RowDefinitions>
<StackPanel x:Name="pnlConnectionButtons" Margin="10,10.2,10.2,10" Grid.Row="1" CanVerticallyScroll="True"/>
</Grid>
</Window>
代码背后:
private void Window_Activated(object sender, EventArgs e)
{
for (int i = 0; i < 20; i++)
{
Button btn = new Button();
btn.Content = "Hello";
pnlConnectionButtons.Children.Add(btn);
}
}
答案 0 :(得分:4)
将StackPanel
放入ScrollViewer
:
<ScrollViewer>
<StackPanel>
<Button Content="Hello World"></Button>
...
...
</StackPanel>
</ScrollViewer>
您也可以删除CanVerticallyScroll="True"
。来自MSDN:
此属性不适用于您的代码。它公开暴露以履行接口合同(IScrollInfo)。设置此属性无效。