原文:在Microsoft Expression Blend 2 中绘制圆角矩形按钮
/* 声明:转载请保留此信息:http://www.BrawDraw.com, http://www.ZPXP.com 版权所有:a3news(AT)hotmail.com */
(1)打开Blend 2,新建一个工程名称为:LinearGradientButton。
(2)使用矩形工具,在绘图区中拖出一个矩形框,使用你喜欢的颜色进入填充。
(3)使用视图缩放工具将绘图区可见物件区域放大,为了方便操作。当鼠标移动到上图左上角外的两个棱形小把柄上时,将显示如下图所示的带“+”号的一个鼠标拖动圆角矩形块。你可以按住后左右拖动它,这样就可以调整圆角矩形的圆角半径,调整后合适大小后松开鼠标左键。
(4)按Ctrl+C, 复制上面所得结果图形,再按Ctrl+V,得到一个相同的物件。使用箭头工具以及Shift,Ctrl,Alt键等的组合键,拖拉此物件至合适的位置及大小(注意将此复制物件放在圆角矩形的内部,保持四周大小大致相同)。之后,使用渐变填充,见下图:
设置后此物件的填充样式,同时使用渐变方向调整工具(在左边工具条中)调整颜色的渐变方向。最后得到如下结果:
(5)按Ctrl+C,再按Ctrl+V复制/粘贴它,之后在右边属性(Properties)面板中找到Transform选项卡,在旋转角度(Angle)中输入180后回车(如下图):
这样就可以得到下面部分的渐变效果,结果:
你可以在(4)中第一幅图所示的工具中再次设置此渐变的颜色,也可以使用渐变调整工具调整渐变的位置及大小。
OK,得到一个圆形矩形按钮的样式了。
建议:
为了今后编程使用更方便,建议你在制作的过程中养成及时对物件进行必要的命名,比如底图所用的圆形矩形,你可以取名为RoundRect_Bg,上面部分的渐变可以设置为:RoundRect_LinearGradientTop,下面部分的渐变可以设置为:RoundRect_LinearGradientBottom等等。
下面是最终的XAML代码:
<Window
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="LinearGradientButton.LinearGradientDemo"
x:Name="Window"
Title="LinearGradientDemo"
Width="181" Height="94">
<Grid x:Name="LayoutRoot">
<Rectangle Fill="#FFBD1C1C" Stroke="#FF000000" StrokeThickness="0" RadiusX="22.031" RadiusY="22.031" RenderTransformOrigin="0.5,0.5" x:Name="RoundRect_Bg" HorizontalAlignment="Left" Margin="2.879,5.879,0,0" VerticalAlignment="Top" Width="155" Height="43">
<Rectangle.RenderTransform>
<TransformGroup>
<ScaleTransform ScaleX="1" ScaleY="1"/>
<SkewTransform AngleX="0" AngleY="0"/>
<RotateTransform Angle="0"/>
<TranslateTransform X="0" Y="0"/>
</TransformGroup>
</Rectangle.RenderTransform>
</Rectangle>
<Rectangle Stroke="#FF000000" RadiusX="20" RadiusY="20" StrokeThickness="0" RenderTransformOrigin="0.5,0.5" x:Name="RoundRect_LinearGradientTop" HorizontalAlignment="Left" Margin="5.237,8.002,0,0" VerticalAlignment="Top" Width="150.693" Height="38.046">
<Rectangle.Fill>
<LinearGradientBrush EndPoint="0.477,0.561" StartPoint="0.476,-0.096">
<GradientStop Color="#FFFCFCFC" Offset="0"/>
<GradientStop Color="#00FFFFFF" Offset="0.995"/>
</LinearGradientBrush>
</Rectangle.Fill>
<Rectangle.RenderTransform>
<TransformGroup>
<ScaleTransform ScaleX="1" ScaleY="1"/>
<SkewTransform AngleX="0" AngleY="0"/>
<RotateTransform Angle="0"/>
<TranslateTransform X="0" Y="0"/>
</TransformGroup>
</Rectangle.RenderTransform>
</Rectangle>
<Rectangle Stroke="#FF000000" RadiusX="20" RadiusY="20" StrokeThickness="0" RenderTransformOrigin="0.5,0.5" HorizontalAlignment="Left" Margin="5.237,8.305,0,0" x:Name="RoundRect_LinearGradientBottom" VerticalAlignment="Top" Width="150.693" Height="38.046">
<Rectangle.Fill>
<LinearGradientBrush EndPoint="0.48,0.342" StartPoint="0.481,-0.18">
<GradientStop Color="#FFFCFCFC" Offset="0"/>
<GradientStop Color="#00FFFFFF" Offset="0.995"/>
</LinearGradientBrush>
</Rectangle.Fill>
<Rectangle.RenderTransform>
<TransformGroup>
<ScaleTransform ScaleX="1" ScaleY="1"/>
<SkewTransform AngleX="0" AngleY="0"/>
<RotateTransform Angle="180"/>
<TranslateTransform X="0" Y="0"/>
</TransformGroup>
</Rectangle.RenderTransform>
</Rectangle>
</Grid>
</Window>
下一篇讲解在VS2005中设置WPF中自定义按钮的事件。