原文:零元学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之路

喜欢我文章请推我一下或给我个回应,你的鼓励会给我无限的动力喔!

若是您有其他问题或是特别需要,请在文章回应处留言,我会尽快回覆您

 

最新文章

  1. JavaScript模板引擎artTemplate.js——是否编码输出html字符
  2. GIT的认识
  3. 【Android Studio快捷键】之代码提示
  4. paper 103:ELM算法
  5. 【mysql】mysql分表和表分区详解
  6. 关于mIdleHandlers 空闲消息
  7. Caused by: java.lang.ClassNotFoundException: org.apache.commons.io.FileUtils
  8. Android开发之显示通知
  9. selenium-webdriver(python) 11
  10. (转)目前比较全的CSS重设(reset)方法总结
  11. js 写21点
  12. windows下启动mysql服务
  13. C#/.NET转Java学习笔记
  14. 微服务架构与实践3_api
  15. html 相对路径 问题
  16. nohup php -f xx.php &amp;
  17. Centos PS1
  18. (转)python类:magic魔术方法
  19. Docker swarm集群搭建教程
  20. mui框架(一)

热门文章

  1. Erlang中的record与宏
  2. Android Activity 悬浮 半透明边框
  3. mysql-实现行号
  4. Power control within a coherent multi-processing system
  5. 【心情】NOIP2014记忆
  6. matlab 图像的保存
  7. ASP.Net Core 2.2使用SQLite数据库unable to open database file
  8. python栈--字符串反转,括号匹配
  9. Redis (一)Redis简介、安装部署
  10. WPF 3D model - Sphere, Cone, and Cylinder