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. supervisor 守护php,laravel队列之Supervisor守护进程(centos篇)
  2. Ubuntu 16.04 安装 CUDA、CUDNN 和 GPU 版本的 TensorFlow 一般步骤总结
  3. 华中科技大学计算机学院的班级,华中科技大学计算机学院数据结构(计算机专业)...
  4. 对话Nullmax无人车CEO徐雷:造血营收L3,追梦宏图L4
  5. C/C++基础面试集锦(一)strcpy、memcpy
  6. 静态绑定(前期绑定)
  7. PAT 乙级 1055  集体照
  8. 计算非等间隔离散曲线的曲率
  9. python基础 class6(基本统计值计算、文本词频统计)
  10. Android M App Permissions
  11. 文案怎么写,才会更有画面感,告诉你2个方法(三)
  12. MongoDB——MongoDB分片集群(Sharded Cluster)两种搭建方式
  13. 如何旋转反着的PDF文件
  14. dataframe 中的多层索引
  15. 计算机考试行高怎么设置,Excel隔行调整行高的四种有效方法
  16. 冒险岛2无限服务器断开,冒险岛2无限龙无限命版
  17. 爬取uputoo视频
  18. 如何取消shutdown关机命令?-shutdown命令的使用解析
  19. 一文带你看懂微信小程序费率怎么收
  20. 学好单片机好找工作吗?单片机学到什么程度可以找工作?

热门文章

  1. A method for defensing against multi-source Sybil attacksin VANET
  2. 将计算机链接到usb,将VMware虚拟机连接到USB的解决方案
  3. php cms使用视频教程下载地址,phpcms如何添加视频_CMS系统建站教程,phpcms
  4. Bcompare.exe应用程序发生错误
  5. appium安装说明
  6. Stata:泊松回归
  7. 2010年最值得推荐的十大开源b2b行业门户网站管理系统
  8. 赫夫曼树+赫夫曼编码小结
  9. Ural 1710. Boris, You Are Wrong!
  10. 怎样通过历史数据预测未来?