`

wp wp8:公共样式定义

    博客分类:
  • wp
wp 
阅读更多
在Resources下创建一个名称为buttonStyle.xaml文件

在此文件中定义了全局button的样式

代码:

<ResourceDictionary
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  xmlns:System="clr-namespace:System;assembly=mscorlib">

    <Style x:Key="ButtonStyle" TargetType="Button">
        <Setter Property="Background" Value="Transparent"/>
        <Setter Property="BorderBrush" Value="{StaticResource PhoneForegroundBrush}"/>
        <Setter Property="Foreground" Value="{StaticResource PhoneForegroundBrush}"/>
        <Setter Property="BorderThickness" Value="{StaticResource PhoneBorderThickness}"/>
        <Setter Property="FontFamily" Value="{StaticResource PhoneFontFamilySemiBold}"/>
        <Setter Property="FontSize" Value="{StaticResource PhoneFontSizeMedium}"/>
        <Setter Property="Margin" Value="10,10,10,10"/>
        <Setter Property="Width" Value="55"/>
        <Setter Property="Height" Value="55"/>
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="Button">
                    <Grid Background="Transparent">
                        <VisualStateManager.VisualStateGroups>
                            <VisualStateGroup x:Name="CommonStates">
                                <VisualState x:Name="Normal"/>
                                <VisualState x:Name="MouseOver"/>
                                <VisualState x:Name="Pressed">
                                    <Storyboard>
                                        <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Foreground" Storyboard.TargetName="ContentContainer">
                                            <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource PhoneButtonBasePressedForegroundBrush}"/>
                                        </ObjectAnimationUsingKeyFrames>

                                    </Storyboard>
                                </VisualState>
                                <VisualState x:Name="Disabled">
                                    <Storyboard>
                                        <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Foreground" Storyboard.TargetName="ContentContainer">
                                            <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource PhoneDisabledBrush}"/>
                                        </ObjectAnimationUsingKeyFrames>
                                        <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="BorderBrush" Storyboard.TargetName="ButtonBackground">
                                            <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource PhoneDisabledBrush}"/>
                                        </ObjectAnimationUsingKeyFrames>
                                        <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Background" Storyboard.TargetName="ButtonBackground">
                                            <DiscreteObjectKeyFrame KeyTime="0" Value="Transparent"/>
                                        </ObjectAnimationUsingKeyFrames>
                                    </Storyboard>
                                </VisualState>
                            </VisualStateGroup>
                        </VisualStateManager.VisualStateGroups>
                        <Border x:Name="ButtonBackground" BorderBrush="Transparent" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" CornerRadius="0" Margin="5">
                            <ContentControl x:Name="ContentContainer" ContentTemplate="{TemplateBinding ContentTemplate}" Content="{TemplateBinding Content}" Foreground="{TemplateBinding Foreground}" HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}" Padding="{TemplateBinding Padding}" VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}"/>
                        </Border>
                    </Grid>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>

</ResourceDictionary>

在App.xaml文件的<Application.Resources>

或者普通页面的<phone:PhoneApplicationPage.Resources>

或者用户控件的 <UserControl.Resources>  节点下

添加相应的ResourceDictionary,配置引用buttonStyle.xaml:

<!--应用程序资源-->
    <Application.Resources>
      
        <ResourceDictionary>
            <local:LocalizedStrings xmlns:local="clr-namespace:DataBoundApp1" x:Key="LocalizedStrings"/>
            <SolidColorBrush x:Key="AppAccentBrush" Color="White"/>           
            <ResourceDictionary.MergedDictionaries>
                <!--指定公共按钮样式文件位置-->
                <ResourceDictionary Source="Resources/buttonStyle.xaml"/>
            </ResourceDictionary.MergedDictionaries>
        </ResourceDictionary>

    </Application.Resources>

注意都要放在ResourceDictionary之间



这样页面中的button可以直接添加样式



<Button x:Name="offlineload"
                     HorizontalAlignment="Center" VerticalAlignment="Center"
                     Style="{StaticResource ButtonStyle}"
                     Click="offlineloadMethod"
                    >
                <Button.Background>
                    <ImageBrush Stretch="Fill" ImageSource="/Assets/offlinedownload.png"/>
                </Button.Background>
            </Button>

分享到:
评论

相关推荐

    wp-dispensary:WP药房-药房的在线菜单管理

    借助WP药房,您可以轻松创建一个在线菜单,供患者浏览样式的库存。 ,您的患者可以直接通过您的网站下订单! :backhand_index_pointing_right: 菜单页面在安装时自动创建 当您安装并激活WP Dispensary时,会自动...

    wp-tally-connect:一个用于在用户网站上显示用户的WordPress.org插件下载数量的插件

    目标创建显示用户下载数量的小部件小部件应足够灵活以显示/隐藏细节提出三种内置样式标准(基于文本) 目标(允许定义目标并显示“温度计”) Count Up(一个由jQuery驱动的up-up显示创建具有相同选项的简码

    【WP轻拟物niRvana主题V2.6】WordPress图片主题 国人原创轻拟物风格niRvana主题破.zip

    定义每个边栏的图标 分配边栏在文章还是在首页显示 当文章被检测到“文章目录”时,也会自动将文章目录当做一个边栏默认展示。 文章目录(Wiki模式) 当文章中存在多个“二级”、“三级”标题时,主题将自动启用...

    WordPress书签收藏&分享插件

    按钮和列表样式定义功能、自定义按钮图片、列表颜色 样式改进,增加必要的交互样式,利于用户使用 启用全新的 form names,减少与其它插件可能的冲突,提高兼容性 重构的 Javascript 代码,减少不正常显示列表的...

    less-wp-ray-tsai

    我确实对所有样式都使用了 LESS ( ),如果您知道如何使用它,您将能够更改一些 Viarables 来自定义站点,没有问题! 我们还使用了 JSLint'ed JavaScript 来确保它是您的大脑可以想象的最干净的 JavaScript。 它还...

    WordPress使用自定义文章类型实现任意模板的方法

    主要介绍了WordPress使用自定义文章类型实现任意模板的方法,可通过自定义文章类型来实现任意模版的使用,具有一定参考借鉴价值,需要的朋友可以参考下

    WordPress主题 大前端 阿里百秀 XIU ALIBAIXIU 小清新CMS高级主题[更新v3.2]

    取消缩略图的默认裁剪功能,裁不裁减你可以在后台定义; 侧栏聚合文章小工具新增显示纯图片模式; 列表模式新增4图模式; 一周热门排行可以按照阅读数来了; 新增特别推荐小工具,多种样式; 导航在顶部时,新增头部...

    WordPress-Base-Theme-CSS:WordPress使用的默认类CSS和SCSS主题准备列表

    WordPress基础主题CSS WordPress使用的默认类CSS主题... 请报告任何遗漏或可以改进的地方####示例用法/定义: 图片字幕CSS:.wp-caption 图像对齐CS:img.alignright Widge CSS类,例如:.widget 评论区:.commentlist

    微信公众号同步助手-crx插件

    记住上次选择的渠道V1.0.3修复登陆BUG优化知乎新浪上传图片功能移除自定义样式按钮V1.0.2修复正文提取BUG正文提取自动提示改为放到网页右键菜单...发布渠道微信正文排版样式定义demo修复今日头条报错的BUG紧急修复WordP

    WordPress小工具制作方法【附近期评论工具制作】

    但是默认的那几个小工具完全不够用,或者说样式根本根本不能满足需要。今天就讲解一下如何制作一个小工具,然后接下来再给出一个评论小工具的制作实例。 小工具有三个部分,后台显示、数据保存、前台显示。当然如果...

    clean-theme:专为专业Web开发人员设计的简化WordPress主题

    这个主题带有很少的标记,类名称中的最少数量(主要基于WP默认主题),并且几乎没有预定义的样式。 这是设计使然,因此您可以在现有的骨骼之上构建。 这并不意味着它是可访问性或国际化的起点。 在某些情况下,我...

    C++MFC教程

    在MFC中对消息的处理利用了消息映射的方法,该方法的基础是宏定义实现,通过宏定义将消息分派到不同的成员函数进行处理。下面简单讲述一下这种方法的实现方法: 代码如下 BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd...

    customizer-library:定制库

    开发人员不必直接向$ wp_customize对象添加选项,而是可以定义控件和节的数组并将其传递给Customizer_Library类。 要查看其在实际中的工作方式,请参阅主题。 定制程序库根据传递给它的数组向定制器添加节,设置...

    DoubleY自动生成HTML全站静态程序 3.0.rar

    9.样式文件和模板文件均可后台修改预览(暂无代码高亮编辑功能),不同的栏目模板文件全部全静态分离,可以直接浏览,自由编辑个性化,支持"${ }"标签修改,但是需要您有一定代码基础。 10.纯DIV CSS布局,兼容FF和...

    wordpress-plugin-boilerplate-gulp:带有预配置Gulp的WordPress入门包,可在一分钟内设置自定义WordPress插件Boilerplate

    带有Gulp的WordPress插件样板带有预配置Gulp的Wordpress入门包,可在一... CUSTOM_PLUGIN 定义常量的前缀定制插件用于WordPress文本域和排队脚本/样式名称前缀。 custom_plugin 用于主要功能名称和其他功能名称前缀。

    asp.net知识库

    利用自定义属性,定义枚举值的详细文本 Web标准和ASP.NET - 第一部分 XHTML介绍 在ASP.NET页面中推荐使用覆写(Override)而不是事件处理(Event Handler) 常用编码工具类,支持base64,md5,des,crc32 也谈谈技术面试...

Global site tag (gtag.js) - Google Analytics