2013-02-15 41 views
10

我已經設計了一個WPF列表框。我在Windows 8下開發。設置樣式如下(見圖),當我在Windows 7中測試應用程序時,邊距不一樣。正如你可以在imagen畫質節點之間的分離是1px的在Windows 8中看到的,但0 PX在Windows 7列表框邊距在Windows 7和Windows 8是不一樣的

enter image description here

你知道這是爲什麼,以及如何解決呢?

在此先感謝。

+1

您是否嘗試過使用snoop(http://snoopwpf.codeplex.com/)查看W7列表框是否正在考慮您正在設置的邊框? – 2013-02-15 18:32:47

+0

我有同樣的問題,額外的保證金空間不會出現在窺探中。 – Andy 2013-03-25 14:48:17

回答

6

我實際上設法擺脫它自己,它看起來像是由Windows8更改的ListViewItem樣式,添加樣式到ListView的本地資源已爲我工作。

<ListView.Resources> 
     <Style TargetType="ListViewItem"> 
      <Setter Property="Margin" Value="0"/> 
      <Setter Property="Padding" Value="0"/> 
      <Setter Property="BorderThickness" Value="0"/> 
     </Style> 
    </ListView.Resources> 
+0

這很好。似乎只有填充和BorderThickness才能解決它。 – 2014-05-02 03:00:40

-1

您可以嘗試在DataContext中顯式設置ListBoxItem邊距。 例如:

<ListBox> 
    <ListBox.ItemTemplate> 
     <DataTemplate> 
      <TextBlock Text="{Binding}" Margin="0,0,0,1" /> 
     </DataTemplate> 
    </ListBox.ItemTemplate> 
</ListBox> 

可能是因爲Windows 7和Windows 8對列表框不同的風格。

+0

設置邊距實際上並沒有爲我解決這個問題,看起來這是在列表項周圍出現的額外邊距。 – Andy 2013-03-25 15:33:18

+0

嘗試設置填充值和邊框厚度值。您可以使用[snoop](http://snoopwpf.codeplex.com/)查看正在設置的值。 – 2013-03-27 17:02:59

-1

默認的ListBoxItem包含邊框。 ListBoxItem還指定由此邊框繼承的填充。它的填充DP需要像安迪提到的那樣設置。