如何调整UserControl的大小

时间:2016-02-03 15:35:16

标签: wpf xaml

我的WPF应用程序中有一个UserControl。 UserControl有一个列表框,可以是任意大小,下面是一些{% for picture_field in picture_formset %} {% if picture_field.instance.image %} <img width="25%" src="{{ picture_field.instance.image.url }}" /> {% endif %} {% endfor %}

当我将UserControl放在我的一个视图中时,我希望它在父级调整大小时垂直调整大小。但是,我希望ListBox减少高度,而不是整个控件。这意味着在较小的屏幕上,按钮保留在屏幕上,但它们在ListBox中看不到太多内容。我可以使用MinHeight来确保按钮和列表框中的至少一个项目可见!

我发现类似问题,例如WPF user control does not resize with main window,但我的代码没有任何高度或宽度

我的用户控件

buttons

和视图

<Grid>
    <StackPanel>
    <ListBox ItemsSource="{Binding MessageList" ></ListBox>
        <WrapPanel HorizontalAlignment="Center">
        <Button Content="Expand" HorizontalAlignment="Left" Margin="0,0,40,0"/>
        </WrapPanel>
    </StackPanel>
</Grid>

无论我如何调整View的大小,UserControl似乎都保持完全相同的大小。

我尝试了<Grid> <StackPanel> <uc:RecentList MessageList="{Binding Messages}" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" /> </StackPanel> </Grid> ,但这缩小了一切!

我也尝试过(在ViewBox

UserControl

但没有区别。

1 个答案:

答案 0 :(得分:2)

StackPanel不会将其子元素拉伸到<Grid> <uc:RecentList ... /> </Grid> 的方向。

因此,删除所有StackPanel并在UserControl中的Grid中定义两行:

Build after other projects are built

在主视图中:

{{1}}

查看MSDN上的videos/list文章。