我在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。
答案 0 :(得分:3)
使用与StackPanel
不同的容器。这里最好的候选人是Grid
和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>
网格将随窗口自动调整大小,然后统一调整其内容大小。