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