2010-03-31 95 views
2

我的堆疊面板在每個項目(TextBlocks)之間有間隙。你可以看到背景Canvas背後的任何內容。我不想缺口。 我試着將stackpanel和textblocks的邊距設置爲零。沒有修復它。 在Blend中創建相同的事物顯示沒有空白(AFAIK)。WPF StackPanel間距問題

stackpanel http://www.synthedit.com/test-files/stackpanel.png在這裏,您可以看到鼠標/駝鹿背後顯示的對象。

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); 

回答

2

應該沒有必要設置邊距。 Kaxaml的一個簡單測試證實,元素之間不應該有差距。兩種可能的原因是1)在應用程序資源中設置的隱式樣式,或者在視覺樹中的某處設置的隱式樣式,或者2)可視樹中SnapsToDevicePixels = false或UseLayoutRounding = true。

+0

你是男人! 我在我的Canvas上設置了SnapsToDevicePixels = true。現在看起來很好。 – 2010-03-31 06:47:26