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的下拉菜单选项上,该选项就会改变背景颜色,怎么取消变色?的主要内容,如果未能解决你的问题,请参考以下文章

在WPF中怎么将ComboBox的下拉列表的数据进行绑定?还有能不能TXT文件中的列表?

WPF ComboBox使用字母键选择项目

WPF如何重置Combobox下拉菜单里的值为初始状态

html 怎么做鼠标悬浮菜单上的选项能出现下拉菜单

C# winform 下拉列表控件(comboBox)

MFC中如何做出一个下拉菜单并且做出不同的选项?