2010-03-31 6 views
2

Mes panneaux de pile présentent des espaces entre chaque élément (TextBlocks). Vous pouvez voir à travers ce qui se trouve derrière le Canvas. Je ne veux pas de lacunes. J'ai essayé de mettre à zéro la marge de la pile et des blocs de texte. Je ne l'ai pas réparé. La création de la même chose dans Blend n'indique aucun espace (AFAIK).Problème d'espacement StackPanel WPF

stackpanel http://www.synthedit.com/test-files/stackpanel.png Ici, vous pouvez voir l'objet derrière la souris/l'orignal à travers l'espace.

StackPanel^ tstack = gcnew StackPanel; 
canvas->Children->Add(tstack); 
canvas->SetLeft(tstack, 100); 
canvas->SetTop(tstack, 100); 
canvas->SetZIndex(tstack, 3); 

TextBlock^ tBlock = gcnew TextBlock(); 
tBlock->FontSize = 10; 
tBlock->Text = L"mouse"; 
tBlock->Background = Brushes::LightGray; 
tstack->Children->Add(tBlock); 

tBlock = gcnew TextBlock(); 
tBlock->FontSize = 10; 
tBlock->Text = L"moose"; 
tBlock->Background = Brushes::LightGray; 
tstack->Children->Add(tBlock); 

Répondre

2

Il ne devrait pas être nécessaire de définir des marges. Un test simple dans Kaxaml confirme qu'il ne devrait pas y avoir d'écart entre les éléments. Deux causes possibles seraient 1) un style implicite qui est défini dans les ressources de votre application ou quelque part dans l'arborescence visuelle ou 2) SnapsToDevicePixels = false ou UseLayoutRounding = true quelque part dans l'arborescence visuelle.

+0

vous êtes l'homme! Je mets SnapsToDevicePixels = true sur mon Canvas. Ça a l'air bien maintenant. –