图像根据位置呈现不同的效果

发布于 2024-10-31 10:46:50 字数 1121 浏览 0 评论 0原文

我有一个显示按钮列表的 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>

我有一个 之前有类似问题,并能够使用 SnapsToDevicePixels="True" 解决该问题,但这次该解决方案不起作用。我还尝试过 UseLayoutRounding="True"RenderOptions.EdgeMode="Aliased"

I have an ItemsControl presenting a list of buttons. Each button has an image as it's content (png), but the image looks slightly different for each row.

The below image is magnified version of what I'm seeing:
enter image description here

Here is the 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>

I've had a similar issue previously and was able to solve it using SnapsToDevicePixels="True", but that solution is not working this time. I've also tried UseLayoutRounding="True" and RenderOptions.EdgeMode="Aliased"

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

白芷 2024-11-07 10:46:50

按钮的高度受到限制,因此图像将被拉伸以填充按钮。由于 WPF 使用双精度(1/96 英寸单位),因此必然会进行一些舍入。当您在 StackPanel 上使用 SnapsToDevicePixels 和布局舍入时,它们可能会有所帮助,但只要您拉伸图像,它就会变得模糊。

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

The height of the button is bound so the image will be stretched to fill the button. Because WPF uses doubles (1/96 inch units) there is bound to be some rounding off. SnapsToDevicePixels and Layout rounding might help when you use them on the StackPanel but as long as you stretch the image it will get blurred.

My best guess is to set "Stretch to None" and experiment with SnapsToDevicePixels and Layout rounding.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文