私はWinXPでWPFアプリケーションを開発しました。私のListViewは私の期待するレイアウトでした。 Win7で同じソフトウェアを起動した後、ListViewItemの各行の間に小さなギャップがあることがわかりました。 私はMargin und Paddingで各要素を演奏しましたが、個々のコードを書かずにWinXPとWin7ではレイアウトが同じである解決策を見つけることができません。
私はそれが現在のWindowsのテーマと関係があると思いますが、私はそれをキャッチできません。いくつかはヒントを持っていますか?ここでWin7でListViewItems間のギャップを取り除く方法
スクリーンショットWindowsXPの
スクリーンショットWindows 7の
は、リストビューにフォーカスを置く場合、私は余分なスペース
<ListView x:Name="ListView">
<ListView.Resources>
<Style x:Key="CellBorderStyle" TargetType="{x:Type Border}">
<Setter Property="BorderThickness" Value="0,0,1,1"></Setter>
<Setter Property="BorderBrush" Value="LightGray"></Setter>
<Setter Property="Margin" Value="-6,0,-6,0"></Setter>
</Style>
<DataTemplate x:Key="NameTemplate">
<Border Name="NameBorder" Style="{StaticResource CellBorderStyle}">
<TextBlock>MyName</TextBlock>
</Border>
</DataTemplate>
<DataTemplate x:Key="AddressTemplate">
<Border Name="AddressBorder" Style="{StaticResource CellBorderStyle}" Background="LightSteelBlue">
<TextBlock>MyAddress</TextBlock>
</Border>
</DataTemplate>
<DataTemplate x:Key="StreetTemplate">
<Border Name="StreetBorder" Style="{StaticResource CellBorderStyle}" Background="LightGreen">
<TextBlock>MyStreet</TextBlock>
</Border>
</DataTemplate>
<DataTemplate x:Key="CityTemplate">
<Border Name="CityBorder" Style="{StaticResource CellBorderStyle}">
<TextBlock>MyCity</TextBlock>
</Border>
</DataTemplate>
</ListView.Resources>
<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem">
<Setter Property="HorizontalContentAlignment" Value="Stretch"></Setter>
<Setter Property="VerticalContentAlignment" Value="Stretch"></Setter>
</Style>
</ListView.ItemContainerStyle>
<ListView.View>
<GridView>
<GridView.Columns>
<GridViewColumn Header="Name" x:Name="colName"
CellTemplate="{StaticResource NameTemplate}"></GridViewColumn>
<GridViewColumn Header="Address" x:Name="colAddress"
CellTemplate="{StaticResource AddressTemplate}"></GridViewColumn>
<GridViewColumn Header="Street" x:Name="colStreet"
CellTemplate="{StaticResource StreetTemplate}"></GridViewColumn>
<GridViewColumn Header="City" x:Name="colCity"
CellTemplate="{StaticResource CityTemplate}"></GridViewColumn>
</GridView.Columns>
</GridView>
</ListView.View>
</ListView>
私はあなたが直接質問に答えることはできませんが、WPFのスパイユーティリティをお勧めすることができますスヌープ。アプリケーションが実行されている間は、アプリケーションの各要素を分析し、そのプロパティを即座に変更できます。おそらく、このツールを使ってリスト項目を見たいようにプロパティを変更し、xamlファイルでこれらの変更を行う方法を見つけることができます。 – MatthiasG