Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 与窗口大小匹配的UserControl_C#_Wpf_Xaml_User Controls_Listbox - Fatal编程技术网

C# 与窗口大小匹配的UserControl

C# 与窗口大小匹配的UserControl,c#,wpf,xaml,user-controls,listbox,C#,Wpf,Xaml,User Controls,Listbox,我的应用程序是用WPF编写的。我有一个初始宽度为400的窗口。在该窗口中,我有一个DockPanel,其中包含一个名为ElementsPanel的自定义用户控件 代码如下: ... ElementsPanel控件由带有列表框的StackPanel组成。ListBox的ItemsPanel以一个简单的ScrollViewer和ItemsPresenter为模板 下面是代码: ... 我希望我的ElementsPanel及其内容的宽度在窗口调整大小时都能调整大小,以便在有太多按钮无法显示

我的应用程序是用WPF编写的。我有一个初始宽度为400的窗口。在该窗口中,我有一个DockPanel,其中包含一个名为
ElementsPanel
的自定义用户控件

代码如下:


...
ElementsPanel控件由带有
列表框的StackPanel组成。ListBox的ItemsPanel以一个简单的ScrollViewer和ItemsPresenter为模板

下面是代码:


... 

我希望我的ElementsPanel及其内容的宽度在窗口调整大小时都能调整大小,以便在有太多按钮无法显示时启用水平滚动。现在我得到的是:

500x400窗口:

更广泛的:


如何实现我的目标?

将用户控件的
宽度绑定到窗口的
实际宽度:

<Window x:Class="Adiastemo2.EditWindow" ... Height="500"
        Width="400" x:Name="view2" ... >
    <DockPanel>
        <StackPanel Height="70" DockPanel.Dock="Top" Background="Beige">
            <local:ElementsPanel Width="{Binding ActualWidth,
                                                 ElementName=view2}"/>
        </StackPanel> ...

...

谢谢,当我将ListBox的VirtualzingStackPanel的宽度绑定到UserControl的宽度时,它也很有帮助。