WPF/E CTP Quick Start - 第五部分:公有图形属性(翻译)
一些屬性能夠被應(yīng)用在所有的WPF/E的UIElement對象上:Canvas,shapes和TextBlock。這篇文檔描述了這些對象所具有的公有圖形屬性。
這篇文檔包含了以下部分:
- Opacity屬性
- OpacityMask屬性
- Clip屬性
- RenderTransform屬性
- 下面該做什么呢?
?
Opacity屬性
Opacity屬性能夠讓您控制一個UIElement對象的alpha值或者透明的程度。您可以為Opacity設(shè)置一個0到1之間的數(shù),該值越接近0.0,該對象就越接近完全透明,當(dāng)Opacity屬性為0時,對象就完全不可見了。默認(rèn)的Opactiy屬性的值為1.0,意味著對象完全不透明。下面的例子創(chuàng)建了兩個不同透明程度的形狀。
<Canvas Width="300" Height="300"xmlns="http://schemas.microsoft.com/client/2007"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"><Rectangle Opacity="1.0" Height="100" Width="100" Canvas.Left="30" Canvas.Top="30"Stroke="Black" StrokeThickness="10" Fill="SlateBlue"/><Rectangle Opacity="0.6" Height="100" Width="100" Canvas.Left="70" Canvas.Top="70"Stroke="Black" StrokeThickness="10" Fill="SlateBlue" /> </Canvas>重新開始查看內(nèi)容
?
OpacityMask屬性
OpacityMask屬性能夠讓您控制一個UIElement不同部分的alpha值。例如,您可以使用OpacityMask使一個元素從右往左淡入或淡出。OpacityMask屬性具有一個Brush對象,這個畫刷將元素和畫刷的每一個像素的alpha通道進(jìn)行映射,以確定元素上對應(yīng)像素的透明結(jié)果。如果畫刷的某一部分是透明的,那么元素的那一部分會變得透明。
您可以為OpacityMask使用不同類型的畫刷,不過LinearGradientBrush,RadialGradientBrush和ImageBrush最為常用。
下面的示例將一個應(yīng)用了LinearGradientBrush的opacity mask作用在一個Rectangle對象上。
<Canvas Width="300" Height="300"xmlns="http://schemas.microsoft.com/client/2007"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"><Rectangle Height="100" Width="100" Canvas.Left="30" Canvas.Top="30"Stroke="Black" StrokeThickness="10" Fill="SlateBlue"><Rectangle.OpacityMask><LinearGradientBrush><GradientStop Offset="0.25" Color="#00000000"/><GradientStop Offset="1" Color="#FF000000"/> </LinearGradientBrush></Rectangle.OpacityMask></Rectangle> </Canvas>重新開始查看內(nèi)容
?
Clip屬性
Clip屬性能夠使您有選擇則繪制元素的一部分。使用Clip屬性時,您需要提供一個Geometry對象用于描述繪制區(qū)域,任何超過繪制區(qū)域的部分都會被隱藏,或者說是“被修剪(clipped)”了。
下面的示例使用了一個RectangleGeometry作為Ellipse元素的Clip屬性。其結(jié)果是:只有Ellipse在RectangleGeometry定義的區(qū)域內(nèi)的部分才被顯示出來,超出RectangleGeometry的部分則被切除了。
<Canvas Width="300" Height="300"xmlns="http://schemas.microsoft.com/client/2007"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"><Ellipse Height="200" Width="200" Canvas.Left="30" Canvas.Top="30"Stroke="Black" StrokeThickness="10" Fill="SlateBlue"><Ellipse.Clip><RectangleGeometry Rect="0, 0, 100, 100"/></Ellipse.Clip></Ellipse> </Canvas>重新開始查看內(nèi)容
?
RenderTransform屬性
RenderTransform屬性讓您可以使用Transform對象對一個元素進(jìn)行旋轉(zhuǎn),傾斜,縮放或移動。下面的列表描述了您可以使用在RenderTransform屬性上的不同的Transform對象
- RotateTransform:將一個對象旋轉(zhuǎn)特定的角度。
- SkewTransform:將一個對象相對于X軸或Y軸進(jìn)行傾斜
- ScaleTransform:將一個對象在水平或垂直方向進(jìn)行放大或縮小。
- TranslateTransform:將一個對象在水平或垂直方向進(jìn)行移動。?
還有另外一種變換,TransformGroup,您可以使用它將多種變換應(yīng)用在單個對象上。
下面的示例將Transform對象應(yīng)用在Rectangle元素上,展示了每個Transform對象的不同效果。
<Canvas Width="300" Height="300"xmlns="http://schemas.microsoft.com/client/2007"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"><Rectangle Height="100" Width="100" Canvas.Left="70" Canvas.Top="10"Fill="Black"><Rectangle.RenderTransform><RotateTransform Angle="45"/></Rectangle.RenderTransform></Rectangle><Rectangle Height="100" Width="100" Canvas.Left="130" Canvas.Top="10"Fill="red"><Rectangle.RenderTransform><SkewTransform AngleX="30"/></Rectangle.RenderTransform></Rectangle><Rectangle Height="100" Width="100" Canvas.Left="10" Canvas.Top="190"Fill="blue"><Rectangle.RenderTransform><ScaleTransform ScaleX="1.3" ScaleY=".5"/></Rectangle.RenderTransform></Rectangle><Rectangle Height="100" Width="100" Canvas.Left="160" Canvas.Top="130"Fill="Green"><Rectangle.RenderTransform><TransformGroup><RotateTransform Angle="45"/><ScaleTransform ScaleX=".5" ScaleY="1.2"/><SkewTransform AngleX="30"/></TransformGroup></Rectangle.RenderTransform></Rectangle></Canvas>重新開始查看內(nèi)容
?
下面該做什么呢?
在下一部分“圖像”中,您會了解Image元素的使用方式,以及您應(yīng)該如何顯示位圖。
轉(zhuǎn)載于:https://www.cnblogs.com/JeffreyZhao/archive/2006/12/10/WPFE_CTP_Quick_Start_Part_5.html
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎總結(jié)
以上是生活随笔為你收集整理的WPF/E CTP Quick Start - 第五部分:公有图形属性(翻译)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如果是你你会如何重新设计和定义维基百科(
- 下一篇: WPF 分页控件应用