WPF StackPanel проблема расстояния - PullRequest
2 голосов
/ 31 марта 2010

Мои стековые панели имеют промежутки между каждым элементом (TextBlocks). Вы можете видеть все, что находится позади, на фоне холста. Я не хочу пробелов. Я попытался установить поле стека и текстовых блоков на ноль. Не исправить это. Создание того же самого в Blend не показывает пробелов (AFAIK).

стековая панель 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 );

1 Ответ

2 голосов
/ 31 марта 2010

Там не должно быть необходимости устанавливать поля. Простой тест в Kaxaml подтверждает, что между элементами не должно быть зазора. Двумя возможными причинами могут быть: 1) неявный стиль, установленный в ресурсах вашего приложения или где-то в визуальном дереве, или 2) SnapsToDevicePixels = false или UseLayoutRounding = true где-то в визуальном дереве.

...