我有一个ItemsControl,显示一个按钮列表。每个按钮都有一个图像作为内容(png),但每行的图像看起来略有不同。
下面的图片是我所看到的放大版本:
这是xaml:
<ItemsControl ItemsSource="{Binding Items}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock Name="tb1">hello</TextBlock>
<Button Height="{Binding ElementName=tb1, Path=ActualHeight}" Padding="0,-3,-3,-3" BorderBrush="Transparent" Background="Transparent" >
<Image Stretch="Fill" Source="stock_standard_filter.png" Margin="0">
</Image>
</Button>
</StackPanel>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
我有一个similar issue previously并且能够使用SnapsToDevicePixels="True"
来解决它,但这次解决方案无效。我还尝试了UseLayoutRounding="True"
和RenderOptions.EdgeMode="Aliased"
答案 0 :(得分:1)
按钮的高度已绑定,因此图像将被拉伸以填充按钮。因为WPF使用双打(1/96英寸单位),所以必然会有一些四舍五入。当你在StackPanel上使用它们时,SnapsToDevicePixels和Layout舍入可能有所帮助,但只要你拉伸图像就会变得模糊。
我最好的猜测是将“拉伸到无”设置并尝试使用SnapsToDevicePixels和布局舍入。