windows phone8.1样式

就像在html中使用css一样,在XAML元素中应用style可以对界面进行美化。

在控件Resource属性里面创建样式

   <StackPanel>
            <StackPanel.Resources>
                <Style x:Key="commonStyle" TargetType="Button">
                    <Setter Property="Width" Value="200"></Setter>
                    <Setter Property="Height" Value="15"></Setter>
                    <Setter Property="FontSize" Value="20"></Setter>
                    <Setter Property="Foreground" Value="Red"></Setter>
                    <Setter Property="FontFamily" Value="Arial"></Setter>
                </Style>
            </StackPanel.Resources>
            <Button Style="{StaticResource commonStyle}">局部样式</Button>

        </StackPanel>

在Resource中创建的样式只能作用于局部,如上面样式只能作用于StackPanel范围内。有时我们希望创建的样式在整个页面都可以使用,那么我们在Page节点下创建样式

 <Page.Resources>
        <Style TargetType="Button" x:Key="pageStyle">
            <Setter Property="Width" Value="200"></Setter>
            <Setter Property="Height" Value="30"> </Setter>
            <Setter Property="Foreground" Value="Green"></Setter>
        </Style>

    </Page.Resources>

在做应用的时候我们不可能就一个界面,当多个页面有公共的样式,我们就需要创建一个让每个界面都可以使用的样式,而不是ctrl+c、ctrl+v。在App.xaml文件中创建的样式可以在整个应用程序中使用

 <Application.Resources>
        <Style TargetType="Button" x:Key="outStyle">
            <Setter Property="Width" Value="200"></Setter>
            <Setter Property="Height" Value="15"></Setter>
            <Setter Property="FontSize" Value="20"></Setter>
            <Setter Property="Foreground" Value="Blue"></Setter>
            <Setter Property="FontFamily" Value="Arial"></Setter>
        </Style>
    </Application.Resources>

如果程序比较大,界面比较多我们在使用上面方式创建样式,就会使用程序在维护起来比较困难,这是我们就需要创建样式文件,就像在使用css时,把css样式单独放到一个文件中一样。在程序中添加一个ButtonStyle.xaml样式文件

<ResourceDictionary
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:AppTheme">
    <Style x:Key="style1" TargetType="Button">
        <Setter Property="Width" Value="250"></Setter>
        <Setter Property="Height" Value="50"></Setter>
        <Setter Property="Foreground" Value="BurlyWood"></Setter>
    </Style>
</ResourceDictionary>

样式文件创建好之后,我们只需要在引用一下就可以使用了,我们可以在app.xaml文件中引用或者在普通页面引用,在APP.xaml引用是全局的,在普通页面引用只能作用于当前的页面,引用方式如下

在app.xaml中引用

 <Application.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="buttonStyle.xaml"></ResourceDictionary>
            </ResourceDictionary.MergedDictionaries>
        </ResourceDictionary>

    </Application.Resources>

在页面引用

 <Page.Resources>

        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="ButtonStyle.xaml"/>
            </ResourceDictionary.MergedDictionaries>
        </ResourceDictionary>
    </Page.Resources>

windows phone中的样式支持继承,这样在使用样式的更加灵活,同时也可以减少代码的冗余。

          <Style TargetType="Button" x:Key="pageStyle">
            <Setter Property="Width" Value="200"></Setter>
            <Setter Property="Height" Value="30"> </Setter>
            <Setter Property="Foreground" Value="Green"></Setter>
        </Style>
        <!--样式继承-->
        <Style TargetType="TextBlock" BasedOn="{StaticResource pageStyle}" x:Key="textBlockStyle">
            <Setter Property="TextWrapping" Value="Wrap"></Setter>
        </Style>
				
时间: 2024-10-10 08:54:55

windows phone8.1样式的相关文章

Windows Phone8.1中的CommandBar

开篇之前: 若对Windows 8.1的相关Appbar和CommandBar控件感兴趣,强烈推荐王磊老师的博客园 链接:重新想象 Windows 8.1 Store Apps (72) - 新增控件: AppBar, CommandBar 以及不知道名字的博主对WP8.1中Appbar阐述的一篇文章:http://www.dotblogs.com.tw/eternaltung/archive/2014/05/07/wpappbar.aspx 好了,下面就Windows Phone8.1,以及看

windows phone8.1列表显示

在windows phone8.1中,列表显示数据分为以下几个控件,ItemsControl,ListBox,ListView,GridView,SemanticZoom控件. 以前我一直在用ListBox控件或者ListView控件来显示简单数据,今天自己随便玩玩,写了一些简单的只显示的数据,用ItemsControl实现,开始觉得还好,当我把数据量增大一下时候,坑爹的情况发生了,竟然不能滑动!!!也就是只能显示手机页面那多高的数据,不能滑动来查看后面那些数据,完全没有ListBox控件或者L

Windows Phone8 中如何引用 SQLite 数据库

SQLite数据库介绍 1.SQLite是一款轻型的嵌入式数据库,使用C++开发,使用非常广泛 2.SQLite是一款跨平台的数据库,支持Windows.Linux.Android.IOS.Windows Phone行装系统 3.在Windows Phone中的SQLite是一个非托管组件 4.可以在Windows运行时中使用,也可以在C#项目中使用 5.在C#项目中需要通过Windows运行时组件来访问 下面介绍如何在wp中使用SQLite开发应用程序 1.首先我们来下载数据库工具安装包,地址

Windows Phone8.1系统新特性

Windows Phone 8.1 beta SDK已经为大家透露了不少WP8.1系统的新特性,不过这些新特性还不能保证在最终的消费者版本中都有所体现,毕竟它还仅是SDK版本.日前,国外媒体WPCentral总结了一份WP8.1系统目前曝光的一些新特性. 活动中心 • 通知中心—提醒,通知,更新记录,以及更多 • 快捷控制中心—自定义操作,包括Wi-Fi,蓝牙,飞行模式等 应用+商店 • 应用可以捕获音视频文件,但是版权有所限制.       • 应用和游戏数据可以存储到SD上 • SD卡上的应

unity3d游戏无法部署到windows phone8手机上的解决方法

今天搞了个unity3d游戏,准备部署到自己的lumia 920上,数据线连接正常,操作正常,但是"build"以后,始终无法部署到手机上,也没有在选择的目录下生产任何相关文件. 但是提示有一个错误: Error building Player: Exception: Error: method `System.Byte[] System.IO.File::ReadAllBytes(System.String)` doesn't exist in target framework. I

转Windows Phone8.1 获取手机唯一识别码

转:http://www.dotblogs.com.tw/martinlau17/archive/2014/07/21/146020.aspx 因小弟比較懶,上次不小心 清空了所有文章 現在重寫了XD Windows Phone8.1 擷取裝置唯一硬體識別碼方法 : var packageSpecificToken = Windows.System.Profile.HardwareIdentification.GetPackageSpecificToken(null); var hardware

[外观] Firemonkey Windows Hint 气球样式

Firemonkey 在 Windows 平台下的 Hint 默认为距形,有些单调,现在只要加入一行代码,就可以有气球箭头样式的 Hint. 修改代码: 请将 FMX.Controls.Win.pas 复制到自己的工程目录下,再修改如下代码: constructor TWindowsHint.Create(const AHandle: TWindowHandle); ... 略 ... FToolTipHandle := CreateWindowEx(0, TOOLTIPS_CLASS, nil

windo phone8.1 样式的基本使用(一)

样式的基本使用(一) 当一个项目中有多个控件出现相同的属性设置,那么可以使用以下解决办法 方法一: <Page.Resources> <!--向资源字典中添加一个键为Buttonground,值为SolidColorBrush对象--> <SolidColorBrush x:Key="ButtonBackground" Color="Aqua"/> <SolidColorBrush x:Key="ButtonFor

JS开发windows phone8.1系列之1

http://msdn.microsoft.com/zh-cn/library/windows/apps/dn629638.aspx,要点: 1.了解项目结构:package.appxmanifest文件内容,文件清单列表作用: 2.起始页设置: 3.页面CSS自动根据手机主题(dark或light)设置 4.页面事件的挂接统一使用 args.setPromise(WinJS.UI.processAll().then(function completed() { })); WinJS.UI.pr