根据窗口宽度调整控件大小

时间:2012-07-21 01:30:35

标签: wpf

我在stackpanel中有5个边框,每个边框的宽度为Window width / 5。当我最大化窗口时,每个边框宽度应根据窗口宽度/ 5调整大小。

我尝试使用转换器,但它确实不起作为转换器将如何知道窗口已调整大小。

<Window x:Class="ItemPanelTemplateTest.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
    <StackPanel Orientation="Horizontal">
        <Border Height="20" Background="Red" Width="105" />
        <Border Height="20" Background="Green" Width="105" />
        <Border Height="20" Background="Yellow" Width="105" />
        <Border Height="20" Background="Blue" Width="105" />
        <Border Height="20" Background="Orange" Width="105" />
    </StackPanel>
</Window>

我不想在代码隐藏上写任何东西,因为我正在使用MVVM。

1 个答案:

答案 0 :(得分:3)

使用与StackPanel不同的容器。这里最好的候选人是GridUniformGrid,但由于后者需要较少的输入,因此这里是:

<Window x:Class="WpfApplication1.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
    <UniformGrid Height="20" Rows="1">
        <Border Background="Red" />
        <Border Background="Green" />
        <Border Background="Yellow" />
        <Border Background="Blue" />
        <Border Background="Orange" />
    </UniformGrid>
</Window>

网格将随窗口自动调整大小,然后统一调整其内容大小。