1、ComboBox 介绍

ComboBox 表示带有下拉列表的选择控件,通过单击控件上的箭头可显示或隐藏下拉列表。也叫下拉列表控件。

**************************************************************************************************************

2、常用属性介绍

FontFamily:字体系列;    FontSize:字体大小;    FontStretch:字体在屏幕上紧缩或加宽的程度;FontWeight:字体粗细;
    
    Background:背景;    BorderBrush:边框颜色;    BorderThickness:边框宽度;    Foreground:前景色;
    
    Width/Height:宽度/高度;    Name:元素标识名称;    IsEnabled:使能,是否可用;    Margin:外边距;
    
    Opacity:透明度;    Visibility:可见性;    IsVisible:是否可见;    FlowDirection:其子元素的流动方向;
    
    LayoutTransform:在执行布局时应该应用于此元素的图形转换方式。    RenderTransform:元素的呈现位置的转换信息;
    
    RenderTransformOrigin:由RenderTransform声明的任何可能呈现转换的中心点,相对于元素的边界。
    
    HorizontalAlignment/VerticalAlignment:在父元素中组合此元素时所应用的水平对齐特征/垂直对齐特征。
    
    HorizontalContentAlignment/VerticalContentAlignment:控件内容的水平对齐方式/垂直对齐方式。

Items:获取用于生成 ItemsControl 的内容的集合。ItemTemplate:获取或设置用来显示每个项的 DataTemplate。
    
    ItemsPanel:获取或设置模板,该模板定义对项的布局进行控制的面板。
    
    ItemsSource:获取或设置用于生成 ItemsControl 的内容的集合。

SelectedIndex:获取或设置当前选择中第一项的索引,如果选择为空,则返回负一(-1)。

SelectedItem:获取或设置当前选择中的第一项,或者,如果选择为空,则返回 null。

SelectedItems:获取当前选定的项。    Text:获取或设置当前选定项的文本。

SelectedValue:获取或设置通过使用 SelectedItem 而获取的 SelectedValuePath 的值。

SelectedValuePath:获取或设置用于从 SelectedValue 获取 SelectedItem 的路径。

SelectionBoxItem:获取在选择框中显示的项。SelectionBoxItemTemplate:获取选择框内容的项模板。

SnapsToDevicePixels:获取或设置一个值,该值确定在呈现过程中,此元素的呈现是否应使用特定于设备的像素设置。
    
    IsDropDownOpen:获取或设置一个值,该值指示组合框的下拉部分当前是否打开。

IsEditable:获取或设置一个值,该值指示启用或禁用 ComboBox 的文本框中的文本编辑。
    
    IsReadOnly:获取或设置启用仅限选择模式的值,在此模式中,可选择但不可编辑组合框中的内容。

**************************************************************************************************************

3、具体示例代码:第一个ComboBox把ItemSource和静态资源绑定;第二个直接写入Item项。

<Grid><StackPanel><StackPanel.Resources><local:VacationSpots x:Key="myVacations"/></StackPanel.Resources><ComboBox Name="comboBox1" Width="150" Height="30" ItemsSource="{StaticResource myVacations}" Text="My Cities" IsEditable="true" IsReadOnly="true"VerticalContentAlignment="Center" Margin="10"/><TextBlock Margin="10" Text="{Binding ElementName=comboBox1, Path=SelectedItem}" Foreground="#dddddd" HorizontalAlignment="Center"/><ComboBox Width="150" Height="30" VerticalAlignment="Center" Margin="10"><ComboBoxItem>广东</ComboBoxItem><ComboBoxItem>广西</ComboBoxItem><ComboBoxItem>湖南</ComboBoxItem><ComboBoxItem>河北</ComboBoxItem><ComboBoxItem>河南</ComboBoxItem><ComboBoxItem>河北</ComboBoxItem><ComboBoxItem>山东</ComboBoxItem><ComboBoxItem>山西</ComboBoxItem></ComboBox></StackPanel>
</Grid>

静态资源绑定,集合定义代码

namespace WPFControlsTest
{/// <summary>/// MainWindow.xaml 的交互逻辑/// </summary>public partial class MainWindow : Window{public MainWindow(){InitializeComponent();this.DataContext = this;}}public class VacationSpots : ObservableCollection<string>{public VacationSpots(){Add("Spain");Add("France");Add("Peru");Add("Mexico");Add("Italy");}}
}

**************************************************************************************************************

4、效果图

**************************************************************************************************************

5、使用列表或集合绑定ItemSource

上面说了一种ComboBox的ItemSource绑定方式(绑定静态类),我们还可以把ItemSource绑定列表或者集合。

添加前端代码:显示值为Name,后端选中的值为Value

<Grid><StackPanel ><ComboBox Width="150" Height="30" VerticalAlignment="Center" Margin="10" VerticalContentAlignment="Center" SelectedIndex="0"ItemsSource="{Binding NationalityInfo}" DisplayMemberPath="Name" SelectedValuePath="Value" SelectionChanged="ComboBox_SelectionChanged"></ComboBox><TextBlock x:Name="txtShow" Margin="10" Foreground="#dddddd" HorizontalAlignment="Center"/></StackPanel>
</Grid>

后端代码:定义一个类、集合或者列表、对列表赋值;

//定义一个类
public class Nationality
{public string Name { get; set; }//控件中显示的内容public string Value { get; set; }//选中的内容的值
}public MainWindow()
{InitializeComponent();this.DataContext = this;//对列表赋值NationalityInfo.Add(new Nationality() {Name = "中国", Value = "Chian" });NationalityInfo.Add(new Nationality() {Name = "俄罗斯", Value= "Russia" });NationalityInfo.Add(new Nationality() {Name = "朝鲜", Value= "North Korea" });NationalityInfo.Add(new Nationality() {Name = "巴基斯坦", Value= "Pakistan" });NationalityInfo.Add(new Nationality() {Name = "阿富汗", Value= "Afghanistan" });NationalityInfo.Add(new Nationality() { Name = "土耳其", Value = "Turkey" });
}
//第一个列表
private List<Nationality> nationalityInfo = new List<Nationality>();
public List<Nationality> NationalityInfo
{get { return nationalityInfo; }set { nationalityInfo = value; OnPropertyChanged("NationalityInfo"); }
}//属性更改通知事件
public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
protected void OnPropertyChanged(string propertyName)
{if (PropertyChanged != null){PropertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));}
}private void ComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{ComboBox combo = (ComboBox)sender;if(combo != null){txtShow.Text = "显示数据为:" + ((Nationality)combo.SelectedItem).Name + "  后端数据:" + combo.SelectedValue;}
}

效果图

**************************************************************************************************************

WPF 控件专题 ComboBox 自定义样式相关推荐

  1. WPf控件模板缺省样式

    WPF控件模板缺省样式:http://www.cnblogs.com/khler/archive/2009/07/14/1523043.html 转载于:https://www.cnblogs.com ...

  2. WPF 控件专题 Image控件详解

    1.Image 介绍 Image:表示用于显示图像的控件. Image可以加载以下图像类型:.bmp..gif..ico..jpg..png..wdp 和 .tiff.但是在显示多帧图像时,仅显示第一 ...

  3. 2021-08-20 WPF控件专题 DataGrid控件详解

    1.DataGrid控件介绍 DataGrid简介 :MultiSelector Selector ItemsControl -条目控件 网格控件:可以自定义网格显示的数据的控件 自定义网格:列的形式 ...

  4. 2021-08-12 WPF控件专题 DataGrid控件详解

    1.DataGrid控件介绍 DataGrid简介 :MultiSelector Selector ItemsControl -条目控件 网格控件:可以自定义网格显示的数据的控件 自定义网格:列的形式 ...

  5. WPF 控件专题 CheckBox 控件详解

    1.CheckBox 介绍 CheckBox:复选框控件,是一种非常简单易用的组件,有启用/禁用两种状态,分别由CheckBox 控件的 Checked 和 Unchecked 事件来实现. Chec ...

  6. WPF 控件专题 Grid 控件详解

    1.Grid 介绍 定义由列和行组成的灵活的网格区域,Grid顾名思义就是"网格",它的子控件被放在一个一个实现定义好的小格子里面,整齐配列,该对象可包含多个 Children对象 ...

  7. WPF 控件专题 ListBox 控件详解

    1.ListBox 介绍 ListBox 列表控件. ListBox 是一个 ItemsControl,这意味着它可以包含任何类型的对象的集合 (,例如字符串.图像或面板) . 一个 ListBox ...

  8. 2021-08-11 WPF控件专题 ListView控件详解

    1.ListView控件介绍 Listbox ComboBox TabControl ItemsControl 条目控件 Winform ListView 5View WPF ListView :用于 ...

  9. WPF 控件专题 Lable 控件详解

    1.Lable 介绍 官方释义:表示包含一段任意类型内容的控件.也可以叫标签控件. Label控件和TextBlock看起来非常像.但在使用时就会发现,Label使用的是Content属性而不是Tex ...

最新文章

  1. xcode升级之后,VVDocument失效的解决办法
  2. 虚拟机ping不通开发板如何解决
  3. 关于form组件的补充-------formChoice
  4. 前端学习(1756):前端调试值之如何监控页面的动画
  5. 源码 状态机_LLVM学习笔记(1)--初探源码
  6. 编程基础 垃圾回收_编程中的垃圾回收指南
  7. 「leetcode」486. 预测赢家:【三种递归+动态规划】由浅入深,步步到位
  8. 如何将安卓数据同步到Mac电脑上
  9. c# rar压缩解压缩
  10. Visual Stdio fopen错误
  11. 双拼输入法的学习与使用
  12. 欧拉-拉格朗日方程(The Euler-Lagrange equation)
  13. matlab 四元方程求解,如何用Matlab求解如下一元四次方程,求指导
  14. 使用Qt对Excel复选框等进行阅读、修改
  15. 【论文解读--Xdog】(宇树科技鼻祖)新型电驱式四足机器人研制与测试
  16. 微信一年的支付限额满了20万,无法支付了怎么办?
  17. python爬取链家租房信息_Python爬取链家网上海市租房信息
  18. java 子类克隆_Java 浅克隆、深克隆
  19. 激荡的2020过后,物流江湖下个十年谁主沉浮?
  20. QTreeWidget使用整理

热门文章

  1. [嵌入式框架][nrf52820][nrf52840] 硬件USB_HID
  2. ant-design输入框自动获取焦点
  3. 《如来神掌》详细攻略3
  4. Java synchronized深度探幽
  5. 服务器2008怎么系统盘为d盘,硬盘安装Windows Server 2008(解决系统盘符变成D盘)
  6. php分布式session问题,分布式session一致性问题
  7. 巨型企业数字化,根本没有所谓的个性化定制化
  8. 固定vscode新打开的文件标签设置
  9. Bash:smbclient 未找到命令
  10. oracle12c EM的配置和使用