Dans mon application, essayez de positionner 8 petits carrés autour d'un grand. Voir l'image ci-dessous.Comportement de remplissage étrange
<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>
Et ce qui suit rend carré rouge 62x62. Mais pour autant que je sache 80 - 8 * 2 = 64. Alors pourquoi est-il rendu comme 62 par 62 carrés?
Droit! Mais je pensais que la frontière est rendue à l'intérieur, n'est-ce pas? Donc, si j'ai UserControl avec largeur et hauteur 50 et 5 frontière, ça va être 60 par 60? – Vitalij
La bordure est un conteneur externe de son contenu enfant, il prend donc tout l'espace dont il a besoin en premier. Puisque le carré rouge est le rectangle à l'intérieur de la bordure, sa taille est déterminée par la combinaison de - - <Épaisseur de bordure> - - –