WP7中如何改变点击时按钮的颜色?

2023-12-09

在WP7中,每当单击按钮时,按钮的背景就会变成白色,表明该按钮被单击,并在释放鼠标按钮时变得正常。但是我想将按钮选择的颜色从白色更改为橙​​色。我该如何点呢?


你将不得不玩Visual States那个Button控制。以下是默认样式Button摘自Expression Blend:

<Style x:Key="ButtonStyle1" 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 PhoneFontSizeMediumLarge}"/>
    <Setter Property="Padding" Value="10,3,10,5"/>
    <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 PhoneBackgroundBrush}"/>
                                    </ObjectAnimationUsingKeyFrames>
                                    <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Background" Storyboard.TargetName="ButtonBackground">
                                        <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource PhoneForegroundBrush}"/>
                                    </ObjectAnimationUsingKeyFrames>
                                    <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="BorderBrush" Storyboard.TargetName="ButtonBackground">
                                        <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource PhoneForegroundBrush}"/>
                                    </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="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" CornerRadius="0" Margin="{StaticResource PhoneTouchTargetOverhang}">
                        <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>

您将需要更改Pressed视觉状态:

(在本例中背景更改为Red当按钮被按下时)

<VisualState x:Name="Pressed">
    <Storyboard>
        <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Foreground" Storyboard.TargetName="ContentContainer">
            <DiscreteObjectKeyFrame KeyTime="0" Value="Red"/>
        </ObjectAnimationUsingKeyFrames>
        <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Background" Storyboard.TargetName="ButtonBackground">
            <DiscreteObjectKeyFrame KeyTime="0" Value="Red"/>
        </ObjectAnimationUsingKeyFrames>
        <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="BorderBrush" Storyboard.TargetName="ButtonBackground">
            <DiscreteObjectKeyFrame KeyTime="0" Value="Red"/>
        </ObjectAnimationUsingKeyFrames>
    </Storyboard>
</VisualState>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

WP7中如何改变点击时按钮的颜色? 的相关文章

  • asp:repeater 折叠表行 - 已更新

    我想知道是否有人对我的问题有创造性的解决方案 我有一个从我的数据库填充的转发器 如下所示
  • Qt 和 Sqlite 示例

    我正在寻找一些使用 Qt 的示例代码 它是带有 Sqlite 驱动程序的 SQL 模块 我需要示例的主要原因是我之前有 Qt 数据库接口的经验 并且 Sqlite 在字段类型方面有一些奇怪的行为 类型是按字段存储的 而不是按列存储的 The
  • std::map find 在 C++ 中不起作用[重复]

    这个问题在这里已经有答案了 我使用以下几行创建了一个哈希映射和一个迭代器 std map
  • C++ STL 映射,std::pair 作为键

    这就是我通过地图定义的方式 std map
  • 启动时运行“浏览器外”Web 应用程序?

    我已经熟悉了 浏览器外 Web 应用程序的新概念 最近的 Silverlight JavaFX Adobe AIR 等都支持该应用程序 最近在听一个podcast http www hanselman com blog Hanselminu
  • 如何反序列化 XML 文档

    如何反序列化此 XML 文档
  • 图片框、双击和单击事件

    我有一个奇怪的问题 我有一个图片框双击事件以及单击事件 问题是即使我双击该控件 也会引发单击事件 如果我禁用单击事件 则双击事件正在工作 这个问题已经在这里讨论过 https stackoverflow com questions 1830
  • MVC BaseController 处理 CRUD 操作

    我想重构我的基本 CRUD 操作 因为它们非常重复 但我不确定最好的方法 我的所有控制器都继承 BaseController 如下所示 public class BaseController
  • 为什么 xcode IDE 认为 `friend` 是保留字

    我一直在开发一个个人项目 并在我创建的新类中包含以下代码 property readonly getter isFriend BOOL friend 它似乎没有任何问题 当我构建它时 它可以编译得很好 但是当我们在xcode IDE看起来像
  • .Net 支持柯里化泛型吗?

    假设我们有一个嵌套的泛型类 public class A
  • 如何在 C++11 中返回类成员向量

    我读了几篇关于如何从方法返回向量的文章 其中包括 c11 右值和移动语义混淆返回语句 https stackoverflow com questions 4986673 c11 rvalues and move semantics conf
  • C 编程中的 rand() 问题? [复制]

    这个问题在这里已经有答案了 可能的重复 为什么我总是用 rand 得到相同的随机数序列 https stackoverflow com questions 1108780 why do i always get the same seque
  • 如何在C++中列出Python模块的所有函数名称?

    我有一个 C 程序 我想导入一个 Python 模块并列出该模块中的所有函数名称 我该怎么做 我使用以下代码从模块中获取字典 PyDictObject pDict PyDictObject PyModule GetDict pModule
  • 向客户端发送状态码 500 时页面未呈现

    我有一个页面 通用处理程序 我想在该页面上向客户端返回状态代码 500 以指示出现问题 我这样做 Response StatusCode 500 Response StatusDescription Internal Server Erro
  • 为什么使用 .AsEnumerable() 而不是转换为 IEnumerable

    扩展方法之一IEnumerable
  • TCP/IP 传输期间套接字数据损坏

    当我通过预连接的 TCP IP 套接字发送数据时 我发现数据已损坏 Example Station1 正在向 Station2 发送数据 我已经在发送之前 在 S1 和接收之后 在 S2 打印了数据 以下是消息 S1 发送的数据是ACKS2
  • 如何检查日期时间是否发生在今天?

    有没有比下面的代码更好的 net 方法来检查 今天 是否发生了 DateTime if newsStory WhenAdded Day DateTime Now Day newsStory WhenAdded Month DateTime
  • 使用属性和性能

    我正在优化我的代码 我注意到使用属性 甚至自动属性 对执行时间有深远的影响 请参阅下面的示例 Test public void GetterVsField PropertyTest propertyTest new PropertyTest
  • 如何正确处置注入的DLL线程?

    我将一个 DLL 注入到目标进程中 以在玩 MMORPG 时充当助手 当前功能将按键转换为鼠标点击 因为 MMORPG 要求用户移动鼠标才能实现某些功能 这是我所鄙视的 假设我出于某种原因想要取消注入 DLL 我该怎么做呢 这个方法干净吗
  • 获取线段上最接近另一个点的点[关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 我想找到线段AB上最接近另一个点P的点 我的想法是 Get a1 and b1由直线公式y1 a1x b1 使用 A 点

随机推荐

  • core-plot iOS 反转 Y 轴

    我想使用 core plot 来显示水深图 实时更新 但我不知道如何反转 Y 轴 以便 X 轴 代表时域 位于顶部我的 UIView 和 Y 轴以正值向底部增长 EDIT 如果我能像这样画轴那就更好了 X轴是时间 Y 轴从 0 到 X X
  • 如何在 Javascript 中获取 pdf 中选定的文本?

    我正在编写一个 Chrome 扩展来操作 pdf 文件 所以我想获取 pdf 中选定的文本 我怎样才能做到这一点 像这样的东西 您可以使用内部未记录的命令内置 PDF 查看器 以下是内容脚本的示例 function getPdfSelect
  • 如何判断两个向量之间的角度是外角还是内角?

    我知道如何找出两个向量之间的角度 但它总是给我内角 但我希望它总是给我逆时针方向的角度 即使它大于 180 度 我正在使用 C 但这并不重要 因为我需要了解理论 This is what I am using now 您正在寻找atan2
  • 使用 Powershell 自动执行 IE 确认提示

    我有一个很好的 powershell 脚本 可以为我女儿自动创建一个特定的网站 最近他们更改了网站并添加了一个不错的新功能 可以将我的脚本速度提高 10 倍 问题是他们用来激活此功能的输入类型会弹出一个确认对话框 HTML 看起来像这样
  • Swagger:<字符串,对象> 的映射

    我需要使用 Swagger 记录一个 API 该 API 使用对象映射作为输入和输出 并通过字符串键进行索引 Example a property foo property 1 a string 1 property 2 a string
  • 如何探索和修改从 tf.keras.preprocessing.image_dataset_from_directory() 创建的数据集?

    这是我使用该函数的方式 dataset tf keras preprocessing image dataset from directory main directory labels inferred image size 299 29
  • 范围从开始>结束

    for x in line x1 line x2 这不适用于以下情况x1 gt x2 所以我使用这个解决方法 for x in cmp min line x1 line x2 cmp max line x1 line x2 这很好 直到我需
  • 审核日志删除的最佳方法是什么?

    连接字符串上的用户 ID 不是变量 并且与程序的用户 ID 例如可以是 GUID 不同 如果连接字符串的用户 ID 是静态的 如何审核日志删除 记录插入 更新 删除的最佳位置是通过触发器 但是使用静态连接字符串 很难记录谁删除了某些内容 还
  • 函数应以字节切片形式返回 sha256/sha384/sha512 结果

    我正在编写一个函数 它将输入数据作为字符串以及要调用的 SHA 算法的位大小 它应该将生成的哈希值作为字节切片返回 第一次尝试 package main import crypto sha256 crypto sha512 errors f
  • Outlook VBA 将电子邮件从子文件夹导入 Excel

    我正在尝试将收件箱中每封电子邮件的详细信息 发件人 接收时间 主题等 导入到 Excel 文件中 我的代码适用于收件箱中的特定文件夹 但我的收件箱有几个子文件夹 并且这些子文件夹也有子文件夹 经过多次尝试和错误 我成功导入了收件箱下所有子文
  • 使用 JNA User32 平台图的 NoSuchMethodError

    我在第一次尝试使用 User32 Instance 时收到以下错误 线程 main 中的异常 java lang NoSuchMethodError com sun jna Native load Ljava lang String Lja
  • 循环遍历表单上所有未绑定的控件并清除数据

    我想循环遍历表单上的所有 UNBOUND 控件并清除它们的数据或重置它们的值 我有文本框 组合框和复选框 每次我尝试这样的事情 Dim ctl As Control For Each ctl In Me Controls If IsNull
  • FPDF - 在多单元中写入HTML?

    WriteHTML可以放在Multicell中吗 如何 我检索并显示了数据库中的 HTML 输出 但想将其放置在第二列中 比方说 因此我将其放入 Multicell 中 但没有效果 下面不起作用 pdf gt Multicell 70 3
  • 这个带有逗号的 CSS 选择器到底匹配什么?

    我有一个关于 CSS 选择器的问题 在我的 CSS 文件中 我有以下代码 table legenda th td text align left vertical align top font weight bold color 76818
  • 在 Windows Phone 中打开 PDF 文件

    我正在开发一个适用于 Windows Phone 7 的应用程序 并为其使用 Phonegap 模板 一切看起来都很完美 但现在我无法在浏览器中打开 PDF 文件 我尝试了以下方法 但不起作用 因为 PDF 的 url 超出了 2048 个
  • 在 postgresql 中将日期转换为整数

    我正在尝试将日期 日期类型 转换为 int 这个 int 应该类似于自 1900 年 1 月 1 日以来的天数 如何在 postgresql 中获取它 在 Excel 中 当我将日期与字符串连接时 我会自动获取此信息 示例 2011 11
  • RequireJS:回调函数中的依赖项和参数的数量不同

    我有遗留代码和这样的模块定义 define a b c d function a b c 您可以看到 依赖项比我们在模块中使用的实际参数多 这有什么意义吗 我认为模块 d 是多余的 这仅意味着模块 d 或者更准确地说 调用 d 工厂函数的结
  • 使用 shell_exec 从 PHP 中调用 Python

    我的默认 Web 应用程序基于 PHP 不过 为了简单起见 我构建了一个 python 脚本来进行一些分析 现在我需要 php 来调用 python 代码并检索 python 代码提供的输出 这两个文件位于同一服务器中 但不在同一文件夹中
  • 使用 重定向

    以下行应保存新项目并重定向到另一个页面 到目前为止 它保存正确 但没有重定向 没有错误或警告
  • WP7中如何改变点击时按钮的颜色?

    在WP7中 每当单击按钮时 按钮的背景就会变成白色 表明该按钮被单击 并在释放鼠标按钮时变得正常 但是我想将按钮选择的颜色从白色更改为橙 色 我该如何点呢 你将不得不玩Visual States那个Button控制 以下是默认样式Butto