2

我的堆栈面板在每个项目(TextBlocks)之间都有间隙。您可以看到背景画布上的任何内容。我不想要空隙。我尝试将堆栈面板和文本块的边距设置为零。没修。在 Blend 中创建相同的东西没有任何间隙(AFAIK)。

堆栈面板
(来源:synthedit.com
在这里,您可以看到鼠标/驼鹿背后的物体通过间隙显示。

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

1 回答 1

2

应该不需要设置边距。Kaxaml 中的一个简单测试确认元素之间不应该有间隙。两个可能的原因是 1) 在应用程序资源或可视树中某处设置的隐式样式或 2) 可视树中某处的 SnapsToDevicePixels=false 或 UseLayoutRounding=true。

于 2010-03-31T06:23:10.560 回答