首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >模糊图像无论在WPF中是什么

模糊图像无论在WPF中是什么
EN

Stack Overflow用户
提问于 2018-07-18 12:24:30
回答 1查看 247关注 0票数 2

我有一个带有图像的按钮,不管我做什么,呈现/编译后图像看起来都很模糊。

FYI -当不在WPF控件中时,图像看起来很好。

left上的图像在编译之前,right上的图像在编译后模糊。

我试着应用UseLayoutRounding,应用SnapsToDevicePixels,RenderOptions.BitmapScalingMode,直接移除按钮中的反走样,直接应用到图像上,但什么也没有。

知道如何提高WPF中的图像质量吗?

XAML:

直接应用于按钮的样式:

代码语言:javascript
运行
复制
  <Grid>
        <Button x:Name="recentButton" UseLayoutRounding="True" RenderOptions.BitmapScalingMode="HighQuality" SnapsToDevicePixels="True" RenderOptions.EdgeMode="Aliased"
            Margin="10,137,302,10"
            Width="auto"
            Height="23" 
            HorizontalAlignment="Stretch"
            BorderBrush="{x:Null}" 
            Foreground="White" 
            BorderThickness="0" 
            Style="{StaticResource {x:Static ToolBar.ButtonStyleKey}}">
            <Image Source="/Tool;component/Design/Images/more-icon-active.png" Stretch="None"/>
        </Button>
    </Grid>

直接应用于图像的样式:

代码语言:javascript
运行
复制
  <Grid>
        <Button x:Name="recentButton"
            Margin="10,137,302,10"
            Width="auto"
            Height="23" 
            HorizontalAlignment="Stretch"
            BorderBrush="{x:Null}" 
            Foreground="White" 
            BorderThickness="0" 
            Style="{StaticResource {x:Static ToolBar.ButtonStyleKey}}">
            <Image Source="/Tool;component/Design/Images/more-icon-active.png" UseLayoutRounding="True" RenderOptions.BitmapScalingMode="HighQuality" SnapsToDevicePixels="True" RenderOptions.EdgeMode="Aliased" Stretch="None"/>
        </Button>
    </Grid>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-18 12:45:56

问题是您直接在控件上使用UseLayoutRounding

但是,在相关文件中要注意到这一点,

您应该在根元素上将UseLayoutRounding设置为true。布局系统将子坐标添加到父坐标;因此,如果父坐标不在像素边界上,则子坐标也不在像素边界上。如果不能在根处设置UseLayoutRounding,请在子节点上设置SnapsToDevicePixels以获得所需的效果。

因此,在父容器上使用它而不是。在您的示例中,这将位于on <grid>元素上。

其他命令

  1. @克莱门斯在评论部分推荐,

根据图像的类型,RenderOptions.BitmapScalingMode="NearestNeighbor"可能会增加一些清晰度。

请注意,您必须直接将其应用到图像上。

  1. @BradleyUffner在评论部分推荐,

在顶级元素上设置TextOptions.TextFormattingMode="Display",可以极大地改进桌面计算机上的文本呈现。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51401969

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档