如何将ScrollBar添加到Stackpanel

Sha*_*fiz 98 c# wpf xaml scrollbars stackpanel

在我的WPF应用程序中,我有一个包含几个控件的Stackpanel.如何将滚动条添加到此堆栈面板.

Joe*_*oey 147

把它放进去ScrollViewer.

  • 我没有线索.你的问题是两句长,这有点细节,以预测任何潜在的问题. (4认同)

bij*_*iju 87

Stackpanel没有内置的滚动机制,但您始终可以将StackPanel包装在ScrollViewer中

<ScrollViewer VerticalScrollBarVisibility="Auto">
  <StackPanel ... />
</ScrollViewer>
Run Code Online (Sandbox Code Playgroud)

  • 来自https://msdn.microsoft.com/en-us/library/system.windows.controls.stackpanel.canverticallyscroll(v = vs.110).aspx ..."此属性不适用于您的代码.它公开暴露以实现接口契约(IScrollInfo).设置此属性无效.如果需要物理滚动而不是逻辑滚动,请将StackPanel包装在ScrollViewer中并将其CanContentScroll属性设置为false. (4认同)
  • 好吧,`StackPanel`确实实现了`IScrollInfo`并提供了许多与滚动相关的方法.你确定它没有任何"内置"滚动机制吗? (3认同)

小智 10

它的工作原理如下:

<ScrollViewer VerticalScrollBarVisibility="Visible" HorizontalScrollBarVisibility="Disabled" Width="340" HorizontalAlignment="Left" Margin="12,0,0,0">
        <StackPanel Name="stackPanel1" Width="311">

        </StackPanel>
</ScrollViewer>
Run Code Online (Sandbox Code Playgroud)
TextBox tb = new TextBox();
tb.TextChanged += new TextChangedEventHandler(TextBox_TextChanged);
stackPanel1.Children.Add(tb);
Run Code Online (Sandbox Code Playgroud)