零元學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,中文我把它翻譯為「佈局修整

 

根據MSDNUseLayoutRounding的介紹

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之路

 

喜歡我文章請推我一下或給我個回應,你的鼓勵會給我無限的動力喔!

若是您有其他問題或是特別需要,請在文章回應處留言,我會盡快回覆您