2015-04-22 64 views
2

我有一個彈出窗口,它包含一個堆棧面板。並且在面板中有一些控件。WPF - 減少堆棧面板中的項目之間的差距

<Popup Name="popTest" Placement="Mouse" AllowsTransparency="True"  AllowDrop="True" PopupAnimation="Slide" Height="400" Width="500" > 

     <Border BorderThickness="5" > 
      <StackPanel Background="WhiteSmoke"> 
       <TextBlock Text="SomeName" MaxWidth="100" MaxHeight="100" /> 
       <Image Source="{Binding TestImage, Mode=TwoWay}" Width="300" Height="300" /> 
       <TextBlock Text="TheOtherName" Margin="0,2,0,0" /> 
       <TextBlock Text="AnotherName" TextWrapping="Wrap" /> 
      </StackPanel> 
     </Border> 

     </Popup> 

堆棧面板中的項目之間存在一個大小差距。我試過用分離器。這並沒有幫助我縮小差距。我甚至嘗試設置寬度和高度。這也是行不通的。

有沒有其他方法可以做到這一點?

+2

StackPanel不會在其子元素之間放置任何間隙。但是,您可以嘗試在元素上設置負邊距。 – Clemens

+0

瞭解全球風格和邊距設置 – Muds

回答

0

從TextBlock中刪除MaxWidth =「100」MaxHeight =「100」。對於圖片寬度=「300」高度=「300」,您加載的圖片的寬度和高度是300和300,如果圖片很小,顯然您會看到空白區域。您可以使用網格而不是堆疊面板。

0

對於該圖像,如果原始資源圖像的實際寬高比爲3比2,並且指定了Width="300" Height="200",則圖像將在其與上下方的環繞文本塊之間沒有間隔的情況下顯示。

如果要保證在這樣的圖像周圍沒有填充,請指定HeightWidth,但不能同時指定兩者。

或者,如果要強制圖像顯示爲300 x 200(即使它在物理上較大或具有不同的縱橫比),請通過設置「拉伸」屬性將其填充到所需的尺寸: -

<Image Source="TestImage.jpg" Width="300" Height="200" Stretch="Fill"/>