选中时更改切换按钮的背景颜色

2024-02-08

我正在尝试区分单击时切换按钮的状态。我有下面的片段

<Window x:Class="WpfApplication2.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
    <Window.Resources>
        <Style x:Key="OnOffToggleImageStyle" TargetType="ToggleButton">
            <Style.Triggers>
                <Trigger Property="IsChecked" Value="True">
                    <Setter Property="Background" Value="DimGray"/>
                </Trigger>
            </Style.Triggers>
        </Style>
    </Window.Resources>
    <Grid>
        <ToggleButton Height="60" Content="Text" Style="{StaticResource OnOffToggleImageStyle}">
        </ToggleButton>
    </Grid>
</Window>

但是,当样式中的 IsChecked 值设置为“True”时,这不起作用。当设置为 false 时,它​​会起作用。

我想知道为什么。任何答案!


运行代码示例时,样式似乎与“chrome”的冲突ToggleButton(即按钮的原始样式)。

在这种情况下,覆盖模板可能会更好。ToggleButton以您希望的方式行事。下面是一个丑陋的例子:

<Style x:Key="myToggleButton" TargetType="{x:Type ToggleButton}">
  <Setter Property="Template">
    <Setter.Value>
      <ControlTemplate>
        <Border x:Name="outer"
        BorderBrush="White"
        BorderThickness="2"
        Opacity=".9"
        Background="Transparent">
          <Border x:Name="inner"
          Margin="8"
          BorderThickness="0"
          Background="{
            Binding Background, 
            RelativeSource={RelativeSource TemplatedParent}}">
            <Grid x:Name="container">
              <Grid.RowDefinitions>
                <RowDefinition Height="2*"/>
                <RowDefinition/>
              </Grid.RowDefinitions>
              <TextBlock x:Name="display"
              Grid.Row="1"
              Text="{Binding Content, RelativeSource={
                RelativeSource TemplatedParent}}"
              Foreground="White"
              FontSize="11"
              FontFamily="Segoe UI"
              FontStyle="Normal"
              FontWeight="Normal"
              Margin="8,0,0,4"
              HorizontalAlignment="Left"
              VerticalAlignment="Bottom"/>
            </Grid>
          </Border>
        </Border>
        <ControlTemplate.Triggers>
          <Trigger Property="ToggleButton.IsChecked" Value="True">
            <Setter TargetName="outer" Property="Background" Value="LightBlue"/>
            <Setter TargetName="outer" Property="BorderBrush" Value="Transparent"/>
          </Trigger>
        </ControlTemplate.Triggers>
      </ControlTemplate>
    </Setter.Value>
  </Setter>
</Style>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

选中时更改切换按钮的背景颜色 的相关文章

随机推荐

  • 从 chrome devtools 扩展将调试器附加到工作线程

    我试图在我的 chrome devtools 扩展中拦截 ws 消息 这个问题 https stackoverflow com questions 31181651 inspecting websocket frames in an und
  • 在远程机器上加载数据INFILE

    如何使用本地文件在远程数据库 不同的机器 上执行以下命令 MYSQL PATH mysql u root h remote net files e LOAD DATA INFILE 1 INTO TABLE TABLE NAME FIELD
  • 将 HttpModule .Net 类库移植到 .Net Core Web API

    我正在将项目从 net Web 应用程序迁移到 Net core Web API 我正在 IIS 集成模式下使用 HTTP 模块 它是 net 框架类库 因此 考虑按原样移植到我的新核心应用程序 我将 web config 粘贴到我的新核心
  • 如何从 PHP 生成包含多个工作表的 Excel 文档?

    我想从 PHP 生成 MS Excel 文件 我知道人们可以做这样的事情 header Content type application vnd ms excel header Content Disposition attachment
  • Python 从网站上抓取 fb 评论

    我一直在尝试使用以下网站页面上的 Beautiful Soup 来抓取 Facebook 评论 import BeautifulSoup import urllib2 import re url http techcrunch com 20
  • 如何垂直拉伸 GridView 的单元格?

    我有这个网格视图
  • 使 HTML 正文背景图像透明

    我试图使我的背景图像透明 而页面的其余部分不透明 例如 在未褪色的 HTML 和 CSS 之上的褪色的背景图像 我有一个 HTML 页面 使用 div 将图像作为背景 以下是该页面的简化版本
  • Eclipse - 如何在不单击/更改主视图的情况下知道我正在哪个工作区工作

    目前在一个项目的 4 个不同分支上工作 对于每个分支 Eclipse 中都有一个不同的工作区 问题是 当我在不同的工作空间上打开多个 Eclipse 时 我很难区分它们并了解当前正在查看的工作空间 路径相同 因此所有分支上的窗口名称相同 我
  • 在MYSQL中复制表而不一次复制一行

    我想复制一个非常大的表 但我不想逐行复制它 有办法复制吗 例如 您可以 TRUNCATE 不删除行 行 所以我想知道是否有类似的东西可以复制整个表 更新 逐行插入非常痛苦 因为有 120M 行 无论如何要避免这种情况 MySQL 不再具有可
  • ggplot2:修复因子水平的颜色

    我正在开发一个更大的项目 我正在 ggplot2 中创建多个绘图 这些图涉及在几个不同的谨慎类别 例如 国家 物种 类型 中绘制几种不同的结果 我想完全修复离散类型到颜色的映射 以便 Type A 始终显示为红色 Type B 始终显示为蓝
  • ngrx 中的多个商店

    我正在使用 Angular 和 ngrx 编写一个企业级应用程序 目的是自始至终使用 Flux 和 ngrx 为了重用和可分离性 我们 至少 需要两个彼此不交互的状态存储 但我们确实需要两个存储同时处于活动状态 并且可能从相同的组件进行访问
  • 使用 jquery fileupload basic 以编程方式删除文件

    我使用blueimp文件上传插件 基础版 来实现多文件上传 我正在尝试实现允许用户删除排队上传文件的功能 我无法弄清楚如何正确访问文件数组 每次add回调中 索引为0 文件数组长度为1 仅包含用户点击删除的文件 我正在为排队到 div 的每
  • Android 文本转语音库? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我将开发需要实现文本转语音的应用程序 请给我任何强大的图书馆链接 这对我来说太好了 除了 Flite 到引擎库 哪个图书馆最适合这样做 提
  • 我是否“不想”使用读/写锁而不是普通互斥锁?

    同步对共享资源的访问时 是否有原因not使用读 写锁而不是普通互斥锁 这基本上只是一个写锁 besides它具有比我可能需要的更多功能的哲学原因 换句话说 如果我只是默认将读 写锁作为我首选的同步结构 我是否会搬起石头砸自己的脚 在我看来
  • NGINX + Gunicorn + Flask - 502 错误网关 - 套接字文件权限被拒绝

    我们正在尝试将 NGINX 设置为 Gunicorn Python 应用程序的反向代理 我们一直在关注 Digital Ocean 的本指南 https www digitalocean com community tutorials ho
  • GMap.Net 在控件中不显示完整地图

    我正在尝试制作一个能够显示地图的小型应用程序 我遇到了 GMap Net 它非常适合我的目的 除了地图没有完全显示在控件中 我附上一张图片 希望您能理解我的问题 My code of the load button is private v
  • 在 swagger UI 尝试中发送动态自定义标头

    我在java中使用swagger 我正在代码中通过 requestAttributes 读取名为 callerId 的标头 我没有通过注释 HeaderParam 使用标头 由于这个原因 标题部分不会显示在 swagger UI 中进行尝试
  • 在 C# 中使用 byte/short 等有什么理由?

    超过int类型 很多代码要么使用 int 要么使用 double floats 我知道有 NET 移动版本 因此 byte short 有自己的用途 但对于桌面应用程序有什么意义吗 当我从事 C 工作 游戏编程 时 我非常了解我使用的每种数
  • Java中Thread的自定义实现:通过JNI可以吗?

    是否可以以安全 正确的方式在 Java 中 使用 JNI 实现自定义 Thread 类 假设我自己写NewThread类 与本地人start 方法 它分叉执行 调用run 在分叉线程中并返回 那可能吗 JVM 会抱怨吗 根据规范 它 合法
  • 选中时更改切换按钮的背景颜色

    我正在尝试区分单击时切换按钮的状态 我有下面的片段