2

我在堆栈面板中有 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。

4

1 回答 1

3

使用不同于StackPanel. 这里最好的候选者是Gridand UniformGrid,但由于后者需要更少的输入,这里是:

<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>

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

于 2012-07-21T01:36:41.260 回答