在Microsoft Expression Blend 2 中绘制圆角矩形按钮

时间:2024-07-17 23:34:20

原文:在Microsoft Expression Blend 2 中绘制圆角矩形按钮

/* 声明:转载请保留此信息:http://www.BrawDraw.com, http://www.ZPXP.com 版权所有:a3news(AT)hotmail.com */

(1)打开Blend 2,新建一个工程名称为:LinearGradientButton。 
(2)使用矩形工具,在绘图区中拖出一个矩形框,使用你喜欢的颜色进入填充。
在Microsoft Expression Blend 2 中绘制圆角矩形按钮
(3)使用视图缩放工具将绘图区可见物件区域放大,为了方便操作。当鼠标移动到上图左上角外的两个棱形小把柄上时,将显示如下图所示的带“+”号的一个鼠标拖动圆角矩形块。你可以按住后左右拖动它,这样就可以调整圆角矩形的圆角半径,调整后合适大小后松开鼠标左键。
在Microsoft Expression Blend 2 中绘制圆角矩形按钮
(4)按Ctrl+C, 复制上面所得结果图形,再按Ctrl+V,得到一个相同的物件。使用箭头工具以及Shift,Ctrl,Alt键等的组合键,拖拉此物件至合适的位置及大小(注意将此复制物件放在圆角矩形的内部,保持四周大小大致相同)。之后,使用渐变填充,见下图:
在Microsoft Expression Blend 2 中绘制圆角矩形按钮

设置后此物件的填充样式,同时使用渐变方向调整工具(在左边工具条中)调整颜色的渐变方向。最后得到如下结果:
在Microsoft Expression Blend 2 中绘制圆角矩形按钮
(5)按Ctrl+C,再按Ctrl+V复制/粘贴它,之后在右边属性(Properties)面板中找到Transform选项卡,在旋转角度(Angle)中输入180后回车(如下图):
在Microsoft Expression Blend 2 中绘制圆角矩形按钮
这样就可以得到下面部分的渐变效果,结果:
在Microsoft Expression Blend 2 中绘制圆角矩形按钮
你可以在(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中自定义按钮的事件