J'ai une bordure en XAML/WPF que j'utilise pour souligner un en-tête de paragraphe entier dans les en-têtes de texte d'une boîte de dialogue. J'ai mis sa propriété BorderThickness à "0,0,0,1". Dans certains endroits, il finit par être rendu avec un soulignement de 2 pixels d'épaisseur tandis que dans d'autres, il apparaît correctement comme un soulignement d'un pixel. Qu'est-ce que je fais mal?BorderThickness de 1 rend avec une épaisseur de 2 pixels - qu'est-ce qui me manque ici?
Voici le modèle de contrôle que je utilise pour remplacer l'arbre visuel de mon étiquette (l'utilisation d'un modèle est sans conséquence, j'ai pensé):
<ControlTemplate x:Key="HeaderTemplate" TargetType="{x:Type Label}">
<Border BorderThickness="0,0,0,1" Margin="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Margin}">
<Border.BorderBrush>
<LinearGradientBrush StartPoint="0,0" EndPoint="1,0">
<GradientStop Offset="0" Color="Black"/>
<GradientStop Offset="0.6" Color="Black"/>
<GradientStop Offset="1" Color="Transparent"/>
</LinearGradientBrush>
</Border.BorderBrush>
<TextBlock Text="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Content}" Style="{StaticResource HeaderStyle}"
Margin="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Padding}"/>
</Border>
</ControlTemplate>
Je suis assez nouveau pour WPF, donc Je soupçonne qu'il me manque quelque chose de fondamental sur son modèle de rendu.
- La bordure est-elle rendue au-delà d'une limite de pixels? Cela ne semble pas être le cas, car j'aurais pensé que ce serait partiellement transparent si c'était le cas.
- Y at-il un moyen de garantir que je reçois ce que je demande en termes d'épaisseur?
- Ai-je même fait une erreur hurlante?
Et pour référence, je n'applique pas de transformée de mise à l'échelle (ou tout autre type de transformation). Toute aide serait appréciée. :)
Alors ce que nous disons, pour le moment étant, je dois abandonner mon désir de contrôler les choses aussi strictement que je peux avec, disons, HTML et CSS? :) –
En un mot, oui :) – GraemeF
J'ai travaillé sur un contrôle quelque peu complexe pendant quelques jours et ça me frustre continuellement en étalant les couleurs des bordures, etc. La première question que je regarde a la réponse et, pendant que mon nature obsessionnelle me dit qu'il doit y avoir une solution de rechange, j'apprécie la perspicacité. Je vous remercie! – Brad