零元学Expression Blend 4 - Chapter 34 啊~!!我不要毛毛的感觉!-使用布局修整「UseLayoutRounding」
原文:零元学Expression Blend 4 - Chapter 34 啊~!!我不要毛毛的感觉!-使用布局修整「UseLayoutRounding」
本章将介绍UseLayoutRounding,中文我把它翻译为「布局修整」
英文原文为:Gets or sets a value that determines whether to use rounding behavior that aligns layout to whole pixels.
?
本章将介绍UseLayoutRounding,中文我把它翻译为「布局修整」
?
根据MSDN对UseLayoutRounding的介绍
UseLayoutRounding:为取得或设定值,这个值决定是否要使用将配置对齐整数像素的进位行为。
?
我查了一下英文原文为:
Gets or sets a value that determines whether to use rounding behavior that aligns layout to whole pixels.
?
我想,应该还有更好的表达方式
让我来带大家看看何谓UseLayoutRounding吧!
?
就是要让不会的新手都看的懂!
?
01
请在专案的工作区中放入两个Rectangle
宽高皆设定为:100.7
按下进阶箭头,你可以在延伸的功能中找到UseLayoutRounding
如下图:

?
请设定一个Rectangle勾选UseLayoutRounding,另一个Rectangle则不勾选
你也可以直接复制下面的Xaml
1: <Grid x:Name="LayoutRoot" Background="White">
2:?
3: <Grid.ColumnDefinitions>
4:?
5: <ColumnDefinition Width="0.5*"/>
6:?
7: <ColumnDefinition Width="0.5*"/>
8:?
9: </Grid.ColumnDefinitions>
10:?
11: <Rectangle Fill="#FFF4F4F5" HorizontalAlignment="Center" Margin="0" Stroke="Black" Width="100.7" Height="100.7" VerticalAlignment="Center" StrokeThickness="10"/>
12:?
13: <Rectangle Fill="#FFF4F4F5" HorizontalAlignment="Center" Margin="0" Stroke="Black" Width="100.7" UseLayoutRounding="False" Height="100.7" Grid.Column="1" VerticalAlignment="Center" StrokeThickness="10"/>
14:?
15: </Grid>
?
请把工作区的大小倍数拉大,或是仔细看
发现不一样的地方了吗?

?
左边的Rectangle边框是清楚的,但右边的边框有点模糊
看右边的Rectangle时会感觉好像是眼睛度数不够一样,物件边框会雾化,不够精细
?
这就是UseLayoutRounding设定值的差异
UseLayoutRounding可以改善边框锯齿状与雾化的状态,取而代之的是明亮乾净的画面
?
我将画面截下来使用绘图软体放大到300倍以上
差异就很明显了
下图是右边未使用UseLayoutRoundin的左上角

?
右边没有使用UseLayoutRounding的Rectangle周围出现了灰色的线条
但左边有使用UseLayoutRounding的Rectangle周围却是很平整的

?
有的布局会用切Grid或百分比的方式来切割版面(Grid的介绍请看这里)
假如说切三等分,那每一等份就是0.33333333,不会是一个整数

?
所以在里面的物件大小也就不会是整数,画出来就会有毛毛的感觉
有使用UseLayoutRounding的话,绘图引擎会强制把它用整数画出来
看起来就不会毛毛的
?
但另一个布局容器Canvas里面的物件就不会被影响到,因为Canvas不会影响布局
想了解更多Canvas请到这里
?
UseLayoutRounding是个很容易被忽略的设定项目
但若能注意到很小的设定,会对你Silverlight的制作加分喔!
?
?
本篇的教学就到此。
?
?
?
(若有任何错误的地方,请各位前辈或同好能不吝指教,小女子都会虚心接受;若是你喜欢我的教学,请给我点鼓励,谢谢。)
一步一步迈向HIE之路
喜欢我文章请推我一下或给我个回应,你的鼓励会给我无限的动力喔!
若是您有其他问题或是特别需要,请在文章回应处留言,我会尽快回覆您
零元学Expression Blend 4 - Chapter 34 啊~!!我不要毛毛的感觉!-使用布局修整「UseLayoutRounding」的更多相关文章
- 零元学Expression Blend 4 - Chapter 46 三分钟快速充电-设定Margin的小撇步
原文:零元学Expression Blend 4 - Chapter 46 三分钟快速充电-设定Margin的小撇步 如果需要经常的使用某一项工具,总会希望能够更快速的使用各项设定达到效果 今天要介绍 ...
- 零元学Expression Blend 4 - Chapter 47 超简单!运用StackPanel配合OpacityMask做出倒影效果
原文:零元学Expression Blend 4 - Chapter 47 超简单!运用StackPanel配合OpacityMask做出倒影效果 有网友问我如何在Blend内制作出倒影效果 我提供了 ...
- 零元学Expression Blend 4 - Chapter 44 Flash做的到的Blend也可以!轻松制作拥有动画的MenuBar!(下)
原文:零元学Expression Blend 4 - Chapter 44 Flash做的到的Blend也可以!轻松制作拥有动画的MenuBar!(下) 抱歉久等了!!!! 终於到了动画MenuBar ...
- 零元学Expression Blend 4 - Chapter 45 ListBox里的物件不能换行吗?
原文:零元学Expression Blend 4 - Chapter 45 ListBox里的物件不能换行吗? ListBox里的排列不是垂直就是水平,觉得这样的排列很枯燥乏味吗? 想要它变聪明吗? ...
- 零元学Expression Blend 4 - Chapter 42 五分钟快速完成扇形变圆形动画
原文:零元学Expression Blend 4 - Chapter 42 五分钟快速完成扇形变圆形动画 零元学Expression Blend 4 - Chapter 42 五分钟快速完成扇形变圆形 ...
- 零元学Expression Blend 4 - Chapter 41 Flash做的到的Blend也可以!轻松制作拥有动画的MenuBar!(中)
原文:零元学Expression Blend 4 - Chapter 41 Flash做的到的Blend也可以!轻松制作拥有动画的MenuBar!(中) 我们接着进行动画MenuBar的制作 接续着上 ...
- 零元学Expression Blend 4 - Chapter 40 Flash做的到的Blend也可以!轻松制作拥有动画的MenuBar!(上)
原文:零元学Expression Blend 4 - Chapter 40 Flash做的到的Blend也可以!轻松制作拥有动画的MenuBar!(上) 一直以来都有人拿Flash的动画问我Blend ...
- 零元学Expression Blend 4 - Chapter 39 虾米?!同款?不同师傅!告诉你Visible、Hidden与Collapsed的差异!
原文:零元学Expression Blend 4 - Chapter 39 虾米?!同款?不同师傅!告诉你Visible.Hidden与Collapsed的差异! 由此可知 Hidden为隐藏项目,但 ...
- 零元学Expression Blend 4 - Chapter 38 看如何使用Clip修出想要的完美曲线(下)
原文:零元学Expression Blend 4 - Chapter 38 看如何使用Clip修出想要的完美曲线(下) 你可以把Clip想成是一个遮罩,运用遮罩达到我们想要的效果 所以在这里我们把文字 ...
随机推荐
- 断言(Assert)与异常(Exception)
## 断言和异常 断言是用来检查非法情况而不是错误情况的,用来帮开发者快速定位问题的位置. 异常处理用于对程序发生异常情况的处理,增强程序的健壮性和容错性. ## 断言的使用 在防御式编程中经常会用断 ...
- [Angular] Difference between ngAfterViewInit and ngAfterContentInit
Content is what is passed as children. View is the template of the current component. The view is in ...
- Redis学习笔记4-Redis配置具体解释
在Redis中直接启动redis-server服务时, 採用的是默认的配置文件.採用redis-server xxx.conf 这种方式能够依照指定的配置文件来执行Redis服务. 依照本Redi ...
- html5中input的type类型有哪些(总结)
html5中input的type类型有哪些(总结) 一.总结 一句话总结:时间.颜色.(邮件.电话.url).(数字.数字范围).搜索search 二.html5中input的type类型 值 描述 ...
- Power aware dynamic scheduling in multiprocessor system employing voltage islands
Minimizing the overall power conservation in a symmetric multiprocessor system disposed in a system- ...
- android tips—开机引导启动wifi设置
在开机引导(Setupwizard,Guide)中都有关于wifi设置项,我得做法例如以下: Intent intent = new Intent(); intent.setClassName(&qu ...
- Python 编程规范 —— TODO 注释(结合 PyCharm)
编程是代码和注释的统一: TODO 自然表示需要做而未做的一些待完成的事项,有助于事后的检索,以及对整体项目做进一步的修改迭代. # TODO(kl@gmail.com): Use a "* ...
- WPF 渲染原理
原文:WPF 渲染原理 在 WPF 最主要的就是渲染,因为 WPF 是一个界面框架.想用一篇博客就能告诉大家完整的 WPF 渲染原理是不可能的.本文告诉大家 WPF 从开发者告诉如何画图像到在屏幕显示 ...
- 简单的记录一下JavaScript 高级应用
我是一名.net 程序员但是由于公司需求,开发离线app,但是在工作的过程中我发现,周围人在写JavaScript的时候都是面向过程的编码,对于我这.net程序员,遇到这种情况真是六神无主,但是工作中 ...
- C#7
C#7 阅读目录 out变量 元组(Tuples) 模式匹配(Pattern matching) 本地引用和返回(Ref locals and returns) 本地函数(Local function ...