图像根据位置呈现不同

时间:2011-04-12 04:44:08

标签: wpf image rendering

我有一个ItemsControl,显示一个按钮列表。每个按钮都有一个图像作为内容(png),但每行的图像看起来略有不同。

下面的图片是我所看到的放大版本:
enter image description here

这是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"

1 个答案:

答案 0 :(得分:1)

按钮的高度已绑定,因此图像将被拉伸以填充按钮。因为WPF使用双打(1/96英寸单位),所以必然会有一些四舍五入。当你在StackPanel上使用它们时,SnapsToDevicePixels和Layout舍入可能有所帮助,但只要你拉伸图像就会变得模糊。

我最好的猜测是将“拉伸到无”设置并尝试使用SnapsToDevicePixels和布局舍入。