分享

silverlight 之 – Blend 之 LinearGradientBrush (...

 Jcstone 2012-04-05

silverlight 之 – Blend 之 LinearGradientBrush (二)

----------------------------------------------------------------

关于再画一个的问题

1.肯定想到的就是拷贝;

》不能每次用都拷贝,很麻烦

》现在我们画的是矩形(Rectangle),下次可能是 Border,Grid,StackPanel

所以拷贝不行;

 

2.把这些颜色都记下来

》太麻烦,这也不行

----------------------------------------------------------------

正题:

1. 下面我们来介绍下画布界面:

截图04

看到右上角有三个标志,分别是: 设计模式,代码模式,拆分模式

2.进入代码模式看看我们之前的代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<UserControl
    mc:Ignorable="d"
    x:Class="StyleTest.ColorCard"
    d:DesignWidth="640" d:DesignHeight="480">
  
    <Grid x:Name="LayoutRoot" Background="#FF6A6A6A">
        <Rectangle Stroke="Black" Height="43" VerticalAlignment="Top">
            <Rectangle.Fill>
                <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
                    <GradientStop Color="#FF606060" Offset="0"/>
                    <GradientStop Color="Black" Offset="1"/>
                    <GradientStop Color="#FE333333" Offset="0.487"/>
                    <GradientStop Color="#FE161515" Offset="0.574"/>
                </LinearGradientBrush>
            </Rectangle.Fill>
        </Rectangle>  
    </Grid>   
</UserControl>

下面我们要复用这些代码中关于颜色填充的部分;

3. 在项目上点击右键》添加新项》资源字典; 我把他命名为: Style.xaml

4. 打开Style.xaml,显示无法再设计视图中编辑,点击切换到代码模式;默认代码如下:

1
2
3
4
5
<ResourceDictionary
    <!-- 应该在此定义资源字典条目。-->
</ResourceDictionary>

5. 把第二步中的:

1
2
3
4
5
6
<LinearGradientBrush   EndPoint="0.5,1" StartPoint="0.5,0">
                <GradientStop Color="#FF606060" Offset="0"/>
                <GradientStop Color="Black" Offset="1"/>
                <GradientStop Color="#FE333333" Offset="0.487"/>
                <GradientStop Color="#FE161515" Offset="0.574"/>
</LinearGradientBrush>

 

 

》 拷贝到 Style.xaml 的 “<!-- 应该在此定义资源字典条目。—> ” 下面;

》 程序会提示错误

》 给他取个名字例如:  <LinearGradientBrush x:Key="AppleStyle1"  就好了;

 

这样我们就把这个填充样式加到字典里面了:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<ResourceDictionary
    <!-- 应该在此定义资源字典条目。-->
      
    <LinearGradientBrush x:Key="AppleStyle1" EndPoint="0.5,1" StartPoint="0.5,0">
                    <GradientStop Color="#FF606060" Offset="0"/>
                    <GradientStop Color="Black" Offset="1"/>
                    <GradientStop Color="#FE333333" Offset="0.487"/>
                    <GradientStop Color="#FE161515" Offset="0.574"/>
    </LinearGradientBrush>
  
      
</ResourceDictionary>

 

6. 回到ColorCard.xaml 页面;打开“库” 看到我们刚才的字典了!!!

截图05

 

我们用他来填充我们刚才定义的矩形, 并且再复制一个效果如下:

截图06

代码如下:

1
2
3
4
<Grid x:Name="LayoutRoot" Background="#FF6A6A6A">
    <Rectangle Stroke="Black" Height="43" VerticalAlignment="Top" Fill="{StaticResource AppleStyle1}"/>
    <Rectangle Stroke="Black" Height="43" VerticalAlignment="Bottom" Fill="{StaticResource AppleStyle1}"/>    
</Grid>  

看看这代码是不是简洁多了!

说到这里你肯定知道:

》 以后画别的东西,就直接到”库“去选择就可以填充这个样式了;(实现了复用)

》 修改的时候只有修改 Style.xaml 里面的代码,这边就也更新了;(方便更新调整)

 

那么今天的主角 LinearGradientBrush 就和大家见面了!

 

silverlight 之 – Blend 一切源于Brush(一)

silverlight 之 – Blend 之 LinearGradientBrush (二)

silverlight 之 – Blend 之 Style for Button (三)

silverlight 之 – Blend 之图形按钮(四)

分类: Silverlight

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约