下面的代码是问题的完整表示。本质上,当我在 ScrollViewer 中有一个 ListBox 时,ListBox 不会显示它自己的滚动条。相反,它依赖于父 ScrollViewer 的滚动条。在我的情况下,我将整个控件包装在 ScrollViewer 中,以便在违反 MinHeight/MinWidth 时获得滚动条。ListBox 只是我的 UserControl 中的众多控件之一,我不希望我的 UserControl 跳到很大的比例以匹配 ListBox 中的项目。你会在下面的代码中添加什么来强制 ListBox 使用它自己的滚动条?
using System;
using System.Windows;
using System.Windows.Controls;
namespace TestExpanderWidth
{
class Program
{
[STAThread]
static void Main()
{
var listbox = new ListBox { Margin = new Thickness(10.0), MinWidth = 400 };
listbox.Items.Add(new string('c', 3000));
var sv = new ScrollViewer {HorizontalScrollBarVisibility = ScrollBarVisibility.Auto, VerticalScrollBarVisibility = ScrollBarVisibility.Auto};
sv.Content = listbox; // remove for test
var window = new Window { Width = 600, Height = 400 };
window.Content = sv; // remove for test
//window.Content = listbox; // add for test
var application = new Application();
application.Run(window);
}
}
}