2011-10-03 369 views
3

我是新來的WPF,並試圖在UniformGrid中的元素之間添加1像素的邊框或空間。我怎樣才能做到這一點?我試圖給每個子元素添加一個邊距,但是在中間的單元格之間創建了一個兩像素邊框。我可以在頂部和左側添加一個邊距,但這會使底部和右側的單元格沒有外部邊距。WPF中的單元格之間的邊框UniformGrid

我試過Google搜索,可能沒有使用正確的術語。

+0

您可以粘貼網格代碼嗎? – VoodooChild

+0

嗨,只是由 - 你確定你使用正確的面板類型,因爲UniformGrid是一個可調整大小的控件?您是否可以不將左邊距設置爲邊框的寬度,最後一個邊距也是正確的?據我所知,wpf中沒有標準控件可以支持你正在尋找的功能。 – 2011-10-03 22:07:36

回答

3

你說你嘗試將Margin設置爲1,它給出了每個元素周圍總共2個像素。

所以把它切成兩半;相反,請將項目的邊距設置爲0.5。您還需要將0.5的邊距添加到UniformGrid本身,因此所有內容最終都會排列在像素邊界上。

(最左邊一列的項目將有UniformGrid的0.5像素左邊距,加上項目的0.5像素邊距,總共爲1像素,然後在第一列和下一列之間,您將擁有第一列的0.5像素右邊距,再加上下一列的0.5像素左邊距,所以再次在列之間總共有1個像素。它很好地工作。)

2

這裏的標記唯一的解決方案,你可以創建一個DP - 邊框寬度,並綁定到它,只是給我們留言,如果你需要幫助:

<Window x:Class="Margins.MainWindow" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     xmlns:s="clr-namespace:System;assembly=mscorlib" 
     Title="MainWindow" Height="350" Width="525"> 
    <Grid> 
     <Border Background="Green" Padding="0,0,10,0" HorizontalAlignment="Center" VerticalAlignment="Center"> 
      <StackPanel Orientation="Horizontal"> 
       <Rectangle Fill="White" Width="100" Height="100" Margin="10,10,0,10"/> 
       <Rectangle Fill="White" Width="100" Height="100" Margin="10,10,0,10" /> 
       <Rectangle Fill="White" Width="100" Height="100" Margin="10,10,0,10" /> 
       <Rectangle Fill="White" Width="100" Height="100" Margin="10,10,0,10" /> 
      </StackPanel> 
     </Border> 
    </Grid> 
</Window> 
2

選項1:Grid面板ShowGridLines財產,但只是虛線。

選項2:DataGridGridLinesVisibility=DataGridGridLinesVisibility.All。在這裏,您可以用VerticalGridLinesBrushHorizontalGridLinesBrush

選項3指定不同的線路刷:自己的面板

我相信是有更多的選擇,但我知道,只是那些我列出。