wpf中鼠标放到combobox的下拉菜单选项上,该选项就会改变背景颜色,怎么取消变色?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了wpf中鼠标放到combobox的下拉菜单选项上,该选项就会改变背景颜色,怎么取消变色?相关的知识,希望对你有一定的参考价值。
只需要”编辑模板“→”编辑副本“→系统就自动生成了一大串样式→你只需要找到下面样式替换就OK啦!
<!-- 下拉框只读切换按钮 -->
<Style x:Key="ComboBoxReadonlyToggleButton" TargetType="x:Type ToggleButton">
<Setter Property="OverridesDefaultStyle" Value="true"/>
<Setter Property="IsTabStop" Value="false"/>
<Setter Property="Focusable" Value="false"/>
<Setter Property="ClickMode" Value="Press"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="x:Type ToggleButton">
<Border x:Name="Chrome"
BorderBrush="TemplateBinding BorderBrush"
Background="TemplateBinding Background"
CornerRadius="3"
BorderThickness="0"
Margin="0,0,-0.2,0"
SnapsToDevicePixels="true">
<Grid HorizontalAlignment="Right" Width="DynamicResource x:Static SystemParameters.VerticalScrollBarWidthKey">
<Path x:Name="Arrow"
Data="StaticResource DownArrowGeometry"
Fill="Black"
HorizontalAlignment="Center"
Margin="1,1,0,0"
VerticalAlignment="Center"/>
</Grid>
</Border>
<ControlTemplate.Triggers>
<!-- 默认的按钮样式 -->
<Trigger Property="IsEnabled" Value="true">
<Setter Property="Fill" TargetName="Arrow" Value="#AFAFAF"/>
<Setter Property="Background" TargetName="Chrome" Value="StaticResource ButtonNormalBackground"/>
</Trigger>
<!-- 鼠标经过时的样式 -->
<Trigger Property="IsMouseOver" Value="true">
<Setter Property="Background" TargetName="Chrome" Value="StaticResource ButtonMouseOverBackground"/>
</Trigger>
<!-- 鼠标获得焦点时的样式 -->
<Trigger Property="IsFocused" Value="true">
<Setter Property="Background" TargetName="Chrome" Value="StaticResource ButtonFocusedBackground"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
参考技术A 添加button按钮 编写相应的代码 就是把没有变色前得颜色是啥就恢复成啥本回答被提问者采纳在WPF使用中读取一个配置文件获得一个结构体list,然后将数据绑定到Combobox下拉列表框中,如何实现?
当点击下拉列表框中的一个选项时,可以选择该结构体list中的配置信息。
不用mvvm的话,so easy新建 一个silverlight 4工程 在Window1.xaml加入一个comboBox1
后台中加个student 的类
public class Student
public string Nameget;set;
public int Ageget;set;
public Window1()
InitializeComponent();
List<Student> StudList =new List<Student>();
StudList.Add(new Student() Name="张飞",Age=21 );
StudList.Add(new Student() Name="曹操",Age=22 );
StudList.Add(new Student() Name="关公",Age=23 );
StudList.Add(new Student() Name="如花",Age=24 );
comboBox1.ItemsSource=StudList;
comboBox1.DisplayMemberPath="Name";
运行下看看
你List 想读配置文件的话Student 这个类就跟着变下,wpf基于属性绑定,不是事件驱动,想入门的话建议看下[深入浅出WPF完整版]刘铁猛出的,目前国人出的wpf就他的写的不错的书
还有你的配置文件应该是xml格式文件,要新建个MeterList的类 要用 System.Xml.XmlDocument这个类来读配置文件,来填冲MeterList这个类 参考技术A itemssource绑定后台的observablecollection<结构体,最好转换成类,需要有属性>
绑定text属性到后台的selecteditem属性。追问
能否详细一点么?我现在已经在C#后台拿到了一个MeterList列表,这是一个类的对象的结构体,已经为其赋值,现在想把它绑定到combobox中,如何实现呢?我是新手,可否提供个例子或者文档
追答最好自定义一个和结构体差不多的类,结构体的成员要用类里面的属性的形式来表示,不然你没法绑定到界面上。
以上是关于wpf中鼠标放到combobox的下拉菜单选项上,该选项就会改变背景颜色,怎么取消变色?的主要内容,如果未能解决你的问题,请参考以下文章