0
在我的应用程序中,尝试在一个大的方块中放置8个小方块。见下图。奇怪的填充行为
<UserControl
<UserControl.Resources>
<Style x:Key="ResizerStyle" TargetType="UserControl">
<Setter Property="Width" Value="{Binding Padding.Top, ElementName=border, Mode=Default}"/>
<Setter Property="Height" Value="{Binding Padding.Top, ElementName=border, Mode=Default}"/>
</Style>
<Thickness x:Key="ScalersSize">8</Thickness>
</UserControl.Resources>
<Grid x:Name="LayoutRoot">
<Border x:Name="border" BorderThickness="1" Panel.ZIndex="-1000" Padding="{DynamicResource ScalersSize}" Background="#00000000">
<Rectangle Fill="#FFC00000"/>
</Border>
<local:Scaler VerticalAlignment="Top" Cursor="SizeNS" HorizontalAlignment="Center" Style="{StaticResource ResizerStyle}"/>
<local:Scaler VerticalAlignment="Top" Cursor="SizeNESW" HorizontalAlignment="Right" Style="{StaticResource ResizerStyle}"/>
<local:Scaler VerticalAlignment="Top" HorizontalAlignment="Left" Cursor="SizeNWSE" Style="{StaticResource ResizerStyle}"/>
<local:Scaler VerticalAlignment="Bottom" Cursor="SizeNS" Style="{StaticResource ResizerStyle}"/>
<local:Scaler VerticalAlignment="Bottom" Cursor="SizeNWSE" Style="{StaticResource ResizerStyle}" HorizontalAlignment="Right"/>
<local:Scaler VerticalAlignment="Bottom" Cursor="SizeNESW" Style="{StaticResource ResizerStyle}" HorizontalAlignment="Left"/>
<local:Scaler HorizontalAlignment="Right" VerticalAlignment="Center" Cursor="SizeWE" Style="{StaticResource ResizerStyle}"/>
<local:Scaler HorizontalAlignment="Left" VerticalAlignment="Center" Cursor="SizeWE" Style="{StaticResource ResizerStyle}"/>
</Grid>
</UserControl>
及以下呈现红色62x62平方。但据我所知80 - 8 * 2 = 64.那么为什么它被呈现为62乘62平方?
对!但我认为边界是在内部呈现的,不是吗?所以,如果我有宽度和高度50和5边界的用户控件,它将是60乘60? – Vitalij 2010-11-08 13:46:03
边框是其子内容的外部容器,因此它首先占用所有需要的空间。由于红色正方形是边框内的矩形,其大小由所有<边框容器大小(网格)> - <边框边距> - <边框厚度> - <边框填充> - <矩形边距> – 2010-11-08 13:51:48