一个WPF中使用XAML设置按钮的点击效果的问题

问题描述

想在XAML中实现一个按钮点击变色的简单效果,求大神指点!有4个按钮,默认颜色比如是黄色,点击后的颜色是红色。想让其中一个点击变色,其它为默认颜色,再换成其它按钮点击时,当前被点击的按钮变色,其余按钮恢复成默认颜色。使用触发器实现的话,使用IsFocused属性,只能在按钮获得焦点的时候变色,当失去焦点的时候又会恢复成原状。想使用后台代码直接改颜色,但是改完颜色触发器又不工作了........折腾好几天了,求个解决办法

解决方案

解决方案二:
用IsMouseOver和IsPressed试试
解决方案三:
关键在于,控件需要和它的同事进行协调(按了一个,其他要弹起)。一种做法是用ListBox等来组织ToggleButton,因为ListBox有选择项的支持。一种做法是用RadioButton来做,RadioButton天生有组别的概念,一组RadioButton只有一个是IsChecked。下例用RadioButton做,同时把它的Style改为ToggleButton:<WrapPanel><WrapPanel.Resources><StyleTargetType="RadioButton"BasedOn="{StaticResource{x:TypeToggleButton}}"><SetterProperty="Margin"Value="10"/><Style.Triggers><TriggerProperty="IsChecked"Value="true"><SetterProperty="Foreground"Value="Red"/></Trigger></Style.Triggers></Style></WrapPanel.Resources><RadioButtonGroupName="A">hello</RadioButton><RadioButtonGroupName="A">world</RadioButton><RadioButtonGroupName="A">nihao</RadioButton></WrapPanel>
解决方案四:
ToggleButton应该就可以了吧。

时间: 2024-09-13 12:04:25

一个WPF中使用XAML设置按钮的点击效果的问题的相关文章

鼠标移动-WPF中,窗体设置为可穿透后,怎么获取鼠标在窗体上的坐标

问题描述 WPF中,窗体设置为可穿透后,怎么获取鼠标在窗体上的坐标 <Window x:Class="mtWPFScratchPad.DeskForm" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="mtWPFScratch

shell脚本里的命令加参数 参数 是从另一个文件中取得 怎么设置

问题描述 shell脚本里的命令加参数 参数 是从另一个文件中取得 怎么设置 test.sh如下 #!/bin/bash usr/local/bin/ipmitest -I lanplus -H 10.18.32.80 -U root -P password -e sol active arg_conf 如下 10.18.32.90 root password 10.18.32.100 admin admin 10.18.32.110 test password 脚本里的命令的 ip user

如何在Android中实现渐显按钮的左右滑动效果_Android

先看下运行效果:    程序结构: MainActivity文件中代码: 复制代码 代码如下: package com.android.buttonpageflipper;import android.app.Activity;import android.graphics.PixelFormat;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.view.Gra

关于javascript中限定时间内防止按钮重复点击的思路详解_javascript技巧

前面的话 有一天心血来潮,1分钟内重复点击了多次博客园首页的刷新博文列表的刷新按钮.果不其然,ip当时就被禁用了.后来,重启自己的路由器,重新获取ip才可以访问博客园主页.那么,设置一个限定时间内(比如1秒)防止按钮被重复点击的方法会不会更好一点呢? 思路一 最直接的思路可能就是点击按钮后,按钮的事件绑定函数解绑,1s后重新绑定函数 <button id="btn">0</button> <script> btn.onclick = function

如何在Android中实现渐显按钮的左右滑动效果

先看下运行效果: 程序结构: MainActivity文件中代码: 复制代码 代码如下: package com.android.buttonpageflipper; import android.app.Activity; import android.graphics.PixelFormat; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.view.

android中在Activity中响应ListView内部按钮的点击事件的两种方法_Android

最近交流群里面有人问到一个问题:如何在Activity中响应ListView内部按钮的点击事件,不要在Adapter中响应? 对于这个问题,我最初给他的解答是,在Adapter中定义一个回调接口,在Activity中实现该接口,从而实现对点击事件的响应. 下班后思考了一下,觉得有两种方式都能比较好的实现:使用接口回调和使用抽象类回调. 正好可以复习一下接口和抽象类的区别,于是写了两个Demo: 1.使用接口回调: Adapter类 package com.ivan.adapter; import

android中在Activity中响应ListView内部按钮的点击事件的两种方法

最近交流群里面有人问到一个问题:如何在Activity中响应ListView内部按钮的点击事件,不要在Adapter中响应? 对于这个问题,我最初给他的解答是,在Adapter中定义一个回调接口,在Activity中实现该接口,从而实现对点击事件的响应. 下班后思考了一下,觉得有两种方式都能比较好的实现:使用接口回调和使用抽象类回调. 正好可以复习一下接口和抽象类的区别,于是写了两个Demo: 1.使用接口回调: Adapter类 package com.ivan.adapter; import

学习WPF——了解WPF中的XAML

XAML的简单说明 XAML是用于实例化.NET对象的标记语言,主要用于构建WPF的用户界面 XAML中的每一个元素都映射为.NET类的一个实例,例如<Button>映射为WPF的Button对象 XAML可以在一个元素中嵌套另一个元素,例如Grid元素可以嵌套Button元素   了解XAML VisualStudio创建一个窗口,默认情况下产生的代码如下: 这段代码中包含两个标记元素,一个是Window,一个是Grid Window是WPF顶级元素的一种,还有另外两种顶级元素Page和Ap

wpf中的xaml转换成c#语言的问题,如何将下面的xaml转换成c#有相同的效果

问题描述 <ig:ColumnSeriesName="colCorn"Title="ColumnSeries"LegendItemTemplate="{x:Null}"ItemsSource="{StaticResourcedata}"ValueMemberPath="Y"Brush="#999999"Visibility="Visible"XAxis=&quo