黑马程序员_学习日记84_814WP7开发(画刷Brush、变换Transform、样式、换肤)

1、画刷:
(1)Silverlight的界面都是用画刷(Brush)画出来的,可以改变不同的画刷画不同的内容。
SolidColorBrush:实心颜色画刷
LinearGradientBrush:线性渐变画刷
RadialGradientBrush:径向渐变画刷(以圆心散射)
ImageBrush:图片画刷
(2)Brush类型的属性都可以指定各种Brush,比如Button的Foreground属性、Rectangle的Fill属性。
(3)SolidColorBrush
<Rectangle>
    <Rectangle.Fill>
        <SolidColorBrush>Red</SolidColorBrush>
    </Rectangle.Fill>
</Rectangle>

可以简写成:
<Rectangle Fill="Red">

(4)LinearGradientBrush
<LinearGradientBrush>
    <GradientStop Color="Black" Offset="0"></GradientStop>
    <GradientStop Color="Red" Offset="0.5"></GradientStop>
    <GradientStop Color="White" Offset="1"></GradientStop>
</LinearGradientBrush>

(5)RadialGradientBrush
<!--GradientOrigin属性为渐变圆心坐标(最大1)-->
<RadialGradientBrush GradientOrigin="0,0.5">
    <GradientStop Color="White" Offset="0"></GradientStop>
    <GradientStop Color="Red" Offset="0.5"></GradientStop>
    <GradientStop Color="Yellow" Offset="1"></GradientStop>
</RadialGradientBrush>

(6)ImageBrush
<TextBlock Height="107" HorizontalAlignment="Left" Margin="10,10,0,0" Name="textBlock1" Text="传智播客" VerticalAlignment="Top" Width="458" FontSize="72" FontWeight="Bold">
    <TextBlock.Foreground>
        <ImageBrush ImageSource="Images/1.png"></ImageBrush>
    </TextBlock.Foreground>
</TextBlock>


2、变换Transform
变换可以让UI元素产生扭曲、旋转等。不用改变逻辑的几何形状、位置。就像通过放大镜看物体一样。
Transform类型的属性都可以应用变换。
变换有如下几种:
RotateTransform:旋转变换
<Image.RenderTransform>
    <!--以(100,100)为中心,逆时针旋转30度-->
    <RotateTransform CenterX="100" CenterY="100" Angle="-30"></RotateTransform>
</Image.RenderTransform>

ScaleTransform:缩放变换
<!--ScaleX、ScaleY为缩放的倍数-->
<ScaleTransform CenterX="40" CenterY="40" ScaleX="0.5" ScaleY="2"></ScaleTransform>

SkewTransform:倾斜变换
<SkewTransform AngleX="30" AngleY="10"></SkewTransform>

TranslateTransform:平移变换
<TranslateTransform X="30" Y="50"></TranslateTransform>

因为不推荐使用Canvas布局,所以如果动态控制元素位置、大小一般使用ScaleTransform 、 TranslateTransform ,不推荐修改元素的Height、Width和坐标。

3、样式:
    Silverlight中的样式非常类似于HTML中的CSS样式。存在内联样式、页面样式、样式文件等形式。Silverlight中所有的属性都能当样式用,没有单独的样式。
(1)内联样式
(2)页面样式
<UserControl.Resources>
    <Style TargetType="Button" x:Key="WarnBtn">
        <Setter Property="Foreground" Value="Red"></Setter>
    </Style>
</UserControl.Resources>
<!--LayoutRoot 是包含所有页面内容的根网格-->
<Grid x:Name="LayoutRoot" Background="Transparent">
    <Button Style="{StaticResource WarnBtn}" Content="大button" Height="80" Width="200" ></Button>
</Grid>

(3)样式文件
<ResourceDictionary
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    <Style TargetType="Button" x:Key="rb1">
        <Setter Property="Foreground" Value="Red"></Setter>
    </Style>
</ResourceDictionary>
然后在页面中
<UserControl.Resources>
    <ResourceDictionary Source="Dictionary1.xaml"></ResourceDictionary>
</UserControl.Resources>
来引入

(4)全局样式(直接写在App.xaml中)
<Application.Resources>
    <Style TargetType="TextBox">
        <Setter Property="Foreground" Value="Black" ></Setter>
        <Setter Property="Background" Value="Red" ></Setter>
    </Style>
</Application.Resources>

样式如果没有设定x:Name或x:Key,那么则应用于作用范围内的所有同类型文件。

4、换肤功能
private void btnLittle_Click(object sender, RoutedEventArgs e)
{
    ResourceDictionary newStyle = new ResourceDictionary();
    newStyle.Source = new Uri("/PhoneApp1;component/ChangeSkin/LittleGreenStyle.xaml",UriKind.RelativeOrAbsolute);
    ApplySkin(newStyle);
}

private void btnBig_Click(object sender, RoutedEventArgs e)
{
    ResourceDictionary newStyle = new ResourceDictionary();
    newStyle.Source = new Uri("/PhoneApp1;component/ChangeSkin/BigRedStyle.xaml", UriKind.RelativeOrAbsolute);
    ApplySkin(newStyle);
}

private void ApplySkin(ResourceDictionary newStyle)
{
    App.Current.Resources.MergedDictionaries.Clear();
    App.Current.Resources.MergedDictionaries.Add(newStyle);
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
资源包主要包含以下内容: ASP项目源码:每个资源包中都包含完整的ASP项目源码,这些源码采用了经典的ASP技术开发,结构清晰、注释详细,帮助用户轻松理解整个项目的逻辑和实现方式。通过这些源码,用户可以学习到ASP的基本语法、服务器端脚本编方法、数据库操作、用户权限管理等关键技术。 数据库设计文件:为了方便用户更好地理解系统的后台逻辑,每个项目中都附带了完整的数据库设计文件。这些文件通常包括数据库结构图、数据表设计文档,以及示例数据SQL脚本。用户可以通过这些文件快速搭建项目所需的数据库环境,并了解各个数据表之间的关系和作用。 详细的开发文档:每个资源包都附有详细的开发文档,文档内容包括项目背景介绍、功能模块说明、系统流程图、用户界面设计以及关键代码解析等。这些文档为用户提供了深入的学习材料,使得即便是从零开始的开发者也能逐步掌握项目开发的全过程。 项目演示与使用指南:为帮助用户更好地理解和使用这些ASP项目,每个资源包中都包含项目的演示文件和使用指南。演示文件通常以视频或图文形式展示项目的主要功能和操作流程,使用指南则详细说明了如何配置开发环境、部署项目以及常见问题的解决方法。 毕业设计参考:对于正在准备毕业设计的学生来说,这些资源包是绝佳的参考材料。每个项目不仅功能完善、结构清晰,还符合常见的毕业设计要求和标准。通过这些项目,学生可以学习到如何从零开始构建一个完整的Web系统,并积累丰富的项目经验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值