2

私のスタックパネルには、各アイテム (TextBlocks) 間にギャップがあります。背景キャンバスの背後にあるものは何でも透けて見ることができます。私はギャップを望んでいません。stackpanel と 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 での簡単なテストにより、要素間にギャップがないことが確認されます。考えられる 2 つの原因は、1) アプリケーション リソースまたはビジュアル ツリーのどこかに設定されている暗黙的なスタイル、または 2) ビジュアル ツリーのどこかで SnapsToDevicePixels=false または UseLayoutRounding=true です。

于 2010-03-31T06:23:10.560 に答える