2011-10-31 109 views
6

我正在WPF中爲自定義需求構建應用程序。首先,我選擇了自定義控件,但後來發現我需要的大部分功能已經在Datagrid Control中實現。然而,有一個小的毛刺:如何強制WPF DataGrid中連續單元格之間的零像素間隙

與數據網格的問題是,它強制連續兩個小區​​之間的最小的2像素間隙(1上的網格線的每一側)。請看下圖清晰度:

。 請注意,兩個連續的細胞之間通過數據網格實施的2個像素差距: http://img265.imageshack.us/img265/3545/figurem.png

(堆棧溢出不會讓我添加圖片到我的問題援引爲新用戶的垃圾郵件保護政策)

這不符合我的要求,因爲我希望內容顯示爲「連續」(不得有2像素的間隙;我希望連接線看起來「連接」)。我嘗試過GridLinesVisibility,但它沒有幫助。數據網格將舉辦這樣的自定義控件:

<DataGrid.Columns> 
      <DataGridTemplateColumn Width="25" Header=""> 
       <DataGridTemplateColumn.CellTemplate> 
        <DataTemplate> 
         <ContentControl Content="{Binding Path=MyCustomControl}" Margin="0"></ContentControl> 
        </DataTemplate> 
       </DataGridTemplateColumn.CellTemplate> 
      </DataGridTemplateColumn> 

.... 
</DataGrid.Columns> 

我迄今爲止嘗試:

  1. 關掉網格線(見結果在這裏:http://img263.imageshack.us/img263/8602/figure2j.png
  2. 設置內容屬性的緣以
  3. 搜索谷歌和計算器
  4. 諮詢了一些書。

但似乎沒有出現。

有沒有解決這個/一些破解或解決方法,或者我將不得不從頭開始創建一切?我有與C#體面的經驗,但我是新來的WPF。

請幫忙。

回答

4

你需要做的是什麼,我們就到DataGridCell風格爲您的DataGrid並設置它了borderThickness爲0。這是硬編碼在默認樣式1,幸好很容易忽略這一點:

<Style TargetType="DataGridCell"> 
    <Setter Property="BorderThickness" Value="0" /> 
</Style> 

我會建議把它放到你的DataGrid的資源中,所以它隻影響那個網格,除非你希望它的範圍更廣。

<DataGrid> 
    <DataGrid.Resources> 
     <Style TargetType="DataGridCell">...</Style> 
    </DataGrid.Resources> 
    ... 
</DataGrid> 

還有其他地方,你可以把它,以及你的確切需要。

+0

哇!這工作!這爲我節省了很多時間!我無法想到這一點。非常感謝! –

相關問題