【WP开发学习笔记】之样式(style)

今天练习控件时第一次见到style(样式),通过设置style可以大幅提高用xaml写UI的效率;

我在之前的学习中,每写一个控件就要写出与之匹配的一大堆属性,比如每次写一个button就要写一个background,一个foreground,一个width,一个height、一个fontsize、一个fontfamily,一个margin等等,有时需要写出一大推button时就必须把上面的属性在重复写n次,写其他控件时也是这样,这样相当麻烦。而今天刚刚看到的样式(style)就能很好的解决这个问题,只需要在资源中写一次,然后在后面的同类控件中就能自动引用,就可以将其应用到资源有效范围内的所有同类控件中。当然还可以通过x:KEY来设置是否需要手动引用。

在下图中,

文本一,文本二是自动引用样式;

button1,button2手动引用样式Mystyle1;

button3,button4手动引用样式Mystyle2;

button5则不引用任何样式;

XAML源代码如下;

<phone:PhoneApplicationPage
    x:Class="style.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
    xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d"
    FontFamily="{StaticResource PhoneFontFamilyNormal}"
    FontSize="{StaticResource PhoneFontSizeNormal}"
    Foreground="{StaticResource PhoneForegroundBrush}"
    SupportedOrientations="Portrait" Orientation="Portrait"
    shell:SystemTray.IsVisible="True">
    <phone:PhoneApplicationPage.Resources>
        <Style TargetType="TextBlock">
            <Setter Property="FontFamily" Value="宋体"/>
            <Setter Property="FontSize" Value="50"/>
            <Setter Property="Foreground" Value="WhiteSmoke"/>
            <Setter Property="HorizontalAlignment" Value="Center" />
        </Style>
        <Style x:Key="MyStyle1" TargetType="Button" >
            <Setter Property="Background" Value="Blue"/>
            <Setter Property="Foreground" Value="Black"/>
            <Setter Property="FontSize" Value="35"/>
            <Setter Property="BorderThickness" Value="5"/>
        </Style>
        <Style x:Key="Mystyle2" TargetType="Button">
            <Setter Property="Background" >
                <Setter.Value>
                    <LinearGradientBrush StartPoint="0,0" EndPoint="1,1">
                        <GradientStop Color="Red" Offset="0.3" />
                        <GradientStop Color="Orange" Offset="0.6"/>
                        <GradientStop Color="Purple" Offset="1"/>
                    </LinearGradientBrush>
                </Setter.Value>
            </Setter>
        </Style>
    </phone:PhoneApplicationPage.Resources>
    <Grid >
        <StackPanel>
            <TextBlock Text="文本一"/>
            <TextBlock Text="文本二"/>
            <Button Content="button1" Style="{StaticResource MyStyle1 }"/>
            <Button Content="button2" Style="{StaticResource MyStyle1 }"/>
            <Button Content="button3" Style="{StaticResource Mystyle2}"/>
            <Button Content="button4" Style="{StaticResource Mystyle2 }"/>
            <Button Content="button5"/>
        </StackPanel>
    </Grid>
</phone:PhoneApplicationPage>

作者是wp学习者,现在还是小白,欢迎交流,微博@马and康

时间: 2024-08-04 22:11:55

【WP开发学习笔记】之样式(style)的相关文章

【WP开发学习笔记】之pivot控件

博主wp开发小白,学习中...欢迎交流,微博@马and康 pivot控件中文也称为枢纽,是wp系统中最常用的控件之一,几乎所有个软件多多少少都会运用这个控件,比如设置.日历等等:该控件可以实现页面左右的快速切换,运行也十分流畅.如在设置中通过左右滑动可以切换为应用程序.系统,日历中通过左右滑动可以切换年.月.日: 首先可以通过项目模板直接建立一个pivot应用程序,或者通过拖动工具箱中的pivot控件,当然也可以直接通过xaml代码来直接写出来,这一点就不多说了: 我在用pivot控件时遇到的第

【web开发学习笔记】Structs2 Action学习笔记(一)

1.org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter准备和执行 2. <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> url-pattern约定熟成只写/*,没必要写*.action 3. <

【web开发学习笔记】Structs2 Action学习笔记(二)

action学习笔记2-有关于action method的讨论 Action执行的时候并不一定要执行execute方法,可以在配置文件中配置Action的时候用method=来指定执行哪个方法 也可以在url地址中动态指定(动态方法调用DMI)(推荐) 方法一 <struts> <constant name="struts.devMode" value="true" /> <package name="user" e

Windows Phone开发学习笔记(1)---------自定义弹框

Windows Phone开发学习笔记(1) ---------自定义弹框 在WP中自定义弹框是可以通过Popup类实现的. Popup的语法为: [ContentPropertyAttribute("Child")] [LocalizabilityAttribute(LocalizationCategory.None)] public class Popup : FrameworkElement, IAddChild; 这是Popup使用的小列子 Popup codePopup =

【web开发学习笔记】Structs2 Result学习笔记(三)带参数的结果集

Result学习笔记(三)带参数的结果集 第一部分:代码 //前端 <head> <meta http-equiv="Content-Type" content="text/html; charset=GB18030" /> <title>Insert title here</title> </head> <body> <ol> <li><a href="

Chrome扩展,应用开发学习笔记之2---恶搞百度一下

Chrome扩展,应用开发学习笔记之2 恶搞百度一下 前面我们介绍了一个最简单的chrome扩展时钟,如今我来介绍一下一个恶搞百度一下的chrome扩展程序. 前面说过,manifest.json文件是用来描写叙述这个扩展的,是整个扩展的入口,同一时候也是告诉chrome怎么处理这个扩展. 恶搞百度一下: 以下我们来编写一个恶搞百度一下的扩展程序,希望从这个实例中,对于chrome拓展有一个更好的认识.先看看这个拓展的效果,例如以下图: 从图中我们能够猜到,其功能就是让你无法点击百度一下那个bu

【Android开发学习笔记】【第四课】基础控件的学习

通过一个简单的例子来学习下面几种控件: 1.TextView:简单的文本显示控件 2.EditText:可以编辑的文本框 3.Button:按钮 4.Menu:这里指的是系统的Menu 5.Toast:消息提示控件,类似于MFc的tip(不知道理解的对不对) 顺便用到上一次学习的多个Activity之间传递数据的技术,来做一个小的计算乘法的case 步骤: (1)主Activity 和显示结果的 Activity 都采用线性布局,下面是布局文件的源代码: <LinearLayout xmlns:

Android深度探索(卷1)HAL与驱动开发学习笔记(2)

Android深度探索(卷1)HAL与驱动开发学习笔记(2) 第二章搭建Android开发环境 书中介绍了两种JDK的安装方法, 方法一: 从官网下载JDK并进行配置,解压后在终端打开profile文件来设置PATH环境变量(# soure /etc/profile),打开profile文件后输入下面的内容 export PATH=.:developer/jdk6/bin:$PATH 保存profile文件以后,有两种方法可以重新加载profile文件. 1.# sourse  /etc/pro

IBatis .NET 开发学习笔记&mdash;&mdash;.NET 开发环境搭建

大家好,今天给大家带来的是web应用程序配置,至于windows应用程序或者其他类型解决方案可以相同的配置,web应用程序配置文件为web.config,windows应用程序是app.config. 通过以下步骤可以建立属于你自己的环境: 1.首先,肯定是打开Visual Studio(文章后面简称VS),如果你有其他工具开发,我也不介意,反正我用VS,VS目前最新版是2013,不过我喜欢复古,所以,我目前用安装VS2010来当作教程,不管目前是多少版本了,都可以同理得到. 2.然后,新建一个