wpf_界面_图片模糊解决之道整理

过客非归 过客非归     2022-08-24     451

关键词:

图片模糊:

图片尺寸:

 检查图片,png, DPI=72,Stretch="None",原图尺寸和xaml里面写的尺寸一致。如果替换为大尺寸的原图,使用时,size写的小一点,同比例缩小,没问题。

布局复杂程度:

把图片拷贝到空白的项目里面,发现有的图片模糊,有的不模糊。布局复杂一点,模糊的概率大。改变项目中的xaml 布局,神奇的出现了,左右两个边清晰了,上下还是模糊的,换个地方,上下左右都模糊。

图片缩放反方式:

<Image>属性:RenderOptions.BitmapScalingMode里面枚举值:

Unspecified使用默认位图缩放模式,即 Linear。

LowQuality使用双线性位图缩放,虽然速度比 HighQuality 快,但输出质量较低。 LowQuality 模式与 Linear 模式相同。

HighQuality使用高质量位图缩放,虽然速度比 LowQuality 模式慢,但输出质量更高。 HighQuality 模式与 Fant 模式相同。

Linear使用线性位图缩放,虽然速度比 HighQuality 模式快,但输出质量较低。

Fant使用超高质量 Fant 位图缩放,虽然速度比所有其他位图缩放模式都慢,但输出质量更高。

NearestNeighbor使用最近邻域位图缩放,当使用软件光栅器时,该缩放提供优于 LowQuality 模式的性能。 该模式常用于放大位图。 

替换控件:

Rectangle+ImageBrush,替换工作量大,可修改

边缘模糊:(抗锯齿)
1)UserLayoutRounding为False,导致控件布局相对屏幕若不是整数则不会四舍五入,导致边缘模糊。
UIElement.UseLayoutRounding 属性
获取或设置一个值,该值确定对象及其可视化子树的呈现是否应使用将呈现与整像素对齐的舍入行为。(一般在容器元素上设置, 发生在Measure&Arrange期间) 
元素对齐:
2)SnapsToDevicePixels默认为false, 为true可以让元素像素级对齐。
UIElement.SnapsToDevicePixels 属性

获取或设置一个值,该值决定呈现元素期间是否应使用设备特定的像素设置。这是一个依赖项属性。(一般在根元素设置, 发生在Render, 不是容器元素)

 

文字渲染:

WPF4.0 对字体渲染做了很大的改善,增加了TextOptions属性,该属性可以设置TextFormattingMode,TextRenderingMode,TextHintingMode

1.TextFormattingMode
它提供了两种设置:

· Ideal  —— WPF4之前的模式

· Display —— 新的模式,可以使字体显示更清晰

(一般将TextFormattingMode设置为Display,可以提高字体显示的清晰度)

2.TextRenderingMode

设置渲染模式,可以有以下设置:

Auto – This mode will use ClearType unless system settings have been set to specifically disable ClearType on the machine.

Aliased – No antialiasing will be used to draw text.

Grayscale – Grayscale antialiasing will be used to draw text.

ClearType – ClearType antialising will be used to draw text.

(一般用ClearType渲染出来的字体会比较平滑)
3.TextHintingMode
获取或设置一个值,该值影响文本元素的呈现行为,这是一种性能优化方式,当您对文本元素的任何文本属性进行动画处理时,可以使用此方式。

此属性的值采用以下两种可能的值:

Animated 通过使用一个更高效、但视觉精确下降的平滑算法来针对动画进行优化。(文本仍然是可读的;精度损失并不严重。)

Fixed(默认值)使用的算法针对视觉上精确的字体平滑效果进行了优化,但当将动画应用于字体元素的属性时,可能导致性能问题以及抖动,尤其是对于 FontSize 或转换/定位/投影。

(在需要对字体做一些动态效果,例如将字体缩放时,使用Animated能获取较高的性能,但同时也影响了其显示的清晰度)

 

4.WPF4.0中同时针对东亚字体的渲染进行了优化,现在它支持点阵字体了,而开启这个新特性十分简单,只需为FontFamily设置一种点阵字体就可以了

以下是一张推荐设置表

Language

Font

Traditional Chinese

MingLiu

Simplified Chinese

SimSun

Japanese

MS Gothic

Korean

Gulium

Korean

Batang

 

项目一众筹网03_1_管理员维护_页码导航条bug解决_关键词查询_主页搜索框模糊查询_模糊查询怎么传参页码导航条优化

系列文章目录文章目录系列文章目录04-管理员维护-分页导航条-修改库文件bug关于程序正常运行,但是代码报错的情况05-管理员维护-分页导航条-整理笔记06-管理员维护-关键词查询04-管理员维护-分页导航条-修改库文件bug库文... 查看详情

wpf教程_编程入门自学教程_菜鸟教程-免费教程分享

...(WindowsPresentationFoundation)是微软推出的基于Windows的用户界面框架,属于.NETFramework的一部分。它提供了统一的编程模型、语言和框架,真正做到了分离界面设计人员与开发人员的工作;同时它提供了全新的多媒体交互用户图形... 查看详情

php中面相对象对象的知识点整理

...的目的不是为了完成一个工作,而是为了描述某个事务在解决问题中的行为,更符合人的思维习惯,代码重用性高,可扩展性.__________________________________________________________________类的概念类是一种抽象的概念,是具有相同语义定... 查看详情

我在用wpf做一个tabcontrol的控件但是tabitem不能填满上半部分如图所示求解决之道

参考技术A你TabControl的Style里的TabPanel的Margin设为0就行了本回答被提问者采纳 查看详情

wpf的image控件图片不能显示出来的问题探究

在wpf项目中,用Image来显示资源图片,在界面是可以显示,但是在运行的时候却显示不出来。<ImageSource="/Reform.STBHQ.Common;component/Images/huaiy_0.png"Height="80"HorizontalAlignment="Left"Margin="80,0,0,0"Cursor="Hand"cm:Message.Attach="[ 查看详情

程序员修炼之道_从小工到专家_读书分享

...用两天多的时间读了一本和工匠有关的书籍《程序员修炼之道-从小工到专家》这本书,现在分享给大家,因本人能力有限,拙劣之处请包涵。 从这本书的名字说起,这本书现在的名字体现不出来书中的主题内容,书的原名... 查看详情

灵活提供函数功能界面(来自小白的笔记)

...on#-*-coding:utf-8-*-#mysql_function.py提供用户查看、更改、删除界面defshow():passdefupdate():passdefdelete():pass###一般情况下,我们在给函数定义框架或者功能的时候,一般先定义函数或者类,先用占位语句pass取代内容,整理出框架。if__name__... 查看详情

模糊计时器(边界内随机)(Arduino)

】模糊计时器(边界内随机)(Arduino)【英文标题】:FuzzyTimer(randomwithinboundaries)(Arduino)【发布时间】:2016-01-2901:08:39【问题描述】:我需要一些帮助,试图让计时器变得有点模糊。我想使用这样的固定时间间隔:____|_______|____|_... 查看详情

Windows XP 中的 WPF DataGrid 显示问题

】WindowsXP中的WPFDataGrid显示问题【英文标题】:WPFDataGridDisplayIssueInWindowsXP【发布时间】:2013-08-2902:32:52【问题描述】:谁能帮帮我...1)问题-->|姓名__|地址__|________________行被切割。2)想要这个->|姓名__|__地址____|________________ABC_... 查看详情

u3dshader_图片模糊处理

shader"practice/12.14"properties_MainTex("MainTex",2D)=""SubshaderpassCGPROGRAM#pragmavertexvert#pragmafragmentfrag#include"UnityCG.cginc"sampler2D_MainTex;float4_MainTex_ST;structv2ffloat4pos:POSITION;fixed2uv:TEXCOORD0;fixed2uv2:TEXCOORD1;floatz:TEXCOORD2;;v2fvert(appdata_fulla)v2fv;v.pos=UnityObj... 查看详情

系统无法正常启动的解决之道

先来看下配置文件的格式:[[email protected] ~]# uname -r2.6.32-642.el6.x86_64[[email protected] ~]# cat /boot/grub/grub.conf # Note that you do  查看详情

wpf4文字模糊不清晰边框线条粗细不一致的解决方法

原文:WPF4文字模糊不清晰、边框线条粗细不一致的解决方法软件测试过程中发现在一台1600*900的分辨率电脑上文字模糊,甚至某些个文字出现压缩扭曲经过实践,发现按下面方法能解决一点问题:在窗口或控件上设置字体属性就... 查看详情

wpf切换窗口闪屏

  最近在项目需要从主界面切换到配置界面,配置界面主要是一个TabControl,有几个不同的配置界面。之前刚刚创建项目的时候,从主界面切换到配置界面是没有闪屏现象,后来才发现有闪屏现象,不过一直没有时间解决,今... 查看详情

bee:commandnotfound问题解决之道

$beebash:bee:commandnotfound遇到这个错误的时候,我希望您是所有环境全部安装好的情况下遇到的,如果你的环境没有安装好请参考beego环境搭建http://blog.csdn.net/qq_534019165/article/details/482881331、不能识别bee命令,手动配置GOPATH,GOROOT在安... 查看详情

wpf在绑定表达式添加计算(代码片段)

...写起来不好看本文告诉大家通过一个简单的库可以实现在界面绑定的时候通过表达式不需要转换首先通过Nuget安装CalcBinding库,注意Nuget的地址是https://api.nuget.org/v3/index.json如果没有找到这个库就请复制链接点击更新,再输入CalcBin... 查看详情

洛谷_递归整理

...才多大,其中一部分还是好吃的肉!所以请你帮小鱼编程解决这个问题。输入输出格式输入格式:一行内输入一串整 查看详情

对成员 'upload(_:_:headers:file:)' 的模糊引用

】对成员\\\'upload(_:_:headers:file:)\\\'的模糊引用【英文标题】:Ambiguousreferencetomember\'upload(_:_:headers:file:)\'对成员\'upload(_:_:headers:file:)\'的模糊引用【发布时间】:2017-02-1715:34:40【问题描述】:下面的代码在Swift3中完美地工作以将图... 查看详情

wpf4文字模糊不清晰边框线条粗细不一致的解决方法

软件测试过程中发现在一台1600*900的分辨率电脑上文字模糊,甚至某些个文字出现压缩扭曲经过实践,发现按下面方法能解决一点问题:在窗口或控件上设置字体属性就可以了(红色标注部分),如下:<UserControlx:Class="..." ... 查看详情