可能是一个令人困惑的问题标题。
带有红色矩形的网格是它的外观示例。
带有蓝色矩形的网格(未出现在图像中)具有强制第二个网格小于我明确设置的边距。这似乎导致 WPF 翻转并隐藏其安排范围之外的所有内容。
我尝试将剪辑设置为大于网格。
我能够避免这种情况的唯一方法是编写一个自定义面板,用 PositiveInfinity 的约束来测量它的孩子,然后以正确的宽度排列孩子。这种方法有很多问题。对孩子撒谎是不好的。
无论如何,这是代码:
<Window
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="NegativeMarginTooMuchClipping.MainWindow"
x:Name="Window"
Title="MainWindow"
Width="640"
Height="400">
<Grid>
<StackPanel Width="600" Height="300">
<Grid Margin="40,50,60,50" Background="#FFB8B8B8" Width="500" Height="50">
<Rectangle Fill="Red" HorizontalAlignment="Left" Height="50" VerticalAlignment="Top" Width="50" Margin="0,-50,0,0"/>
</Grid>
<Grid Margin="40,50,61,50" Background="#FFB8B8B8" Width="500" Height="50">
<Rectangle Fill="Blue" HorizontalAlignment="Left" Height="50" VerticalAlignment="Top" Width="50" Margin="0,-50,0,0"/>
</Grid>
</StackPanel>
</Grid>
已知问题?我做错了吗?需要更多说明吗?