相关文章推荐
慷慨的排球  ·  multipartfile转buffered ...·  1 月前    · 
绅士的啤酒  ·  使用SNAP JAVA ...·  5 月前    · 
伤情的匕首  ·  C# DateTime的时区 - ...·  8 月前    · 
闷骚的木耳  ·  深入理解 ...·  1 年前    · 
public ref class ComboBox : System::Windows::Controls::Primitives::Selector
[System.Windows.Localizability(System.Windows.LocalizationCategory.ComboBox)]
[System.Windows.StyleTypedProperty(Property="ItemContainerStyle", StyleTargetType=typeof(System.Windows.Controls.ComboBoxItem))]
[System.Windows.TemplatePart(Name="PART_Popup", Type=typeof(System.Windows.Controls.Primitives.Popup))]
[System.Windows.TemplatePart(Name="PART_EditableTextBox", Type=typeof(System.Windows.Controls.TextBox))]
public class ComboBox : System.Windows.Controls.Primitives.Selector
[<System.Windows.Localizability(System.Windows.LocalizationCategory.ComboBox)>]
[<System.Windows.StyleTypedProperty(Property="ItemContainerStyle", StyleTargetType=typeof(System.Windows.Controls.ComboBoxItem))>]
[<System.Windows.TemplatePart(Name="PART_Popup", Type=typeof(System.Windows.Controls.Primitives.Popup))>]
[<System.Windows.TemplatePart(Name="PART_EditableTextBox", Type=typeof(System.Windows.Controls.TextBox))>]
type ComboBox = class
    inherit Selector
Public Class ComboBox
Inherits Selector
Object
ComboBox

以下示例创建了一个 ComboBox 。 该示例通过将 属性绑定到 ItemsSource 类型的 VacationSpots 集合对象来填充 ComboBox 。 该示例还创建一个 TextBlock ,它显示 的选定项 ComboBox

<StackPanel Grid.Column="0" Grid.Row="6"> <StackPanel.Resources> <src:VacationSpots x:Key="myVacations"/> </StackPanel.Resources> <ComboBox Name="comboBox1" ItemsSource="{StaticResource myVacations}" Text="My Cities" IsEditable="true" IsReadOnly="true"/> <TextBlock Text="{Binding ElementName=comboBox1, Path=SelectedItem}"/> </StackPanel>

以下示例定义前面示例中的 绑定到的集合对象 ComboBox

class VacationSpots : ObservableCollection<string> public VacationSpots () Add("Spain"); Add("France"); Add("Peru"); Add("Mexico"); Add("Italy"); Class VacationSpots Inherits ObservableCollection(Of String) Public Sub New() Add("Spain") Add("France") Add("Peru") Add("Mexico") Add("Italy") End Sub End Class

ComboBox 允许用户从下拉列表中选择一个项,或者可以选择在控件的文本框中输入新文本。 ComboBox 是 , ItemsControl 这意味着它可以包含任何类型的对象集合, (如字符串、图像或面板) 。 有关更多信息,请参见 ItemsControl 类。

IsEditable IsReadOnly 属性指定当用户执行以下操作之一时的行为方式 ComboBox

  • 输入一个字符串以选择 中的 ComboBox 项。

  • 输入与 中的 ComboBox 项不对应的字符串。

  • 选择文本框中字符串的一部分。

  • 将值复制或粘贴到文本框中。

    下表描述了用户可以执行的操作和不能执行的操作,具体取决于 和 IsReadOnly 的值 IsEditable

    IsEditable true - 无法通过输入字符串来选择 中的 ComboBox 项。
    - 无法输入与 中的 ComboBox 项不对应的字符串。
    - 可以在文本框中选择字符串的一 ComboBox 部分。
    - 可以复制文本框中的 ComboBox 字符串,但不能将字符串粘贴到 ComboBox 文本框中。 - 可以通过输入字符串来选择 中的 ComboBox 项。
    - 可以输入与 中的 ComboBox 项不对应的字符串。
    - 可以在文本框中选择字符串的一 ComboBox 部分。
    - 可以在文本框中复制或粘贴字符串 ComboBox IsEditable false - 可以通过输入字符串来选择 中的 ComboBox 项。
    - 无法输入与 中的 ComboBox 项不对应的字符串。
    - 无法选择 中的字符串的一 ComboBox 部分。
    - 无法在 中 ComboBox 复制或粘贴字符串。 - 可以通过输入字符串来选择 中的 ComboBox 项。
    - 无法输入与 中的 ComboBox 项不对应的字符串。
    - 无法选择 中的字符串的一 ComboBox 部分。
    - 无法在 中 ComboBox 复制或粘贴字符串。

    IsReadOnly 当 为 时 IsEditable true , 属性才有效。

    ComboBox 是 一个 ItemsControl ,因此它可以显示除简单字符串以外的内容。 例如,可以创建 ComboBox 包含图像列表的 。 如果在 中 ComboBox 具有字符串以外的内容,则下拉列表隐藏时, ComboBox 可能会显示一个不合时意的字符串。 若要在 包含非字符串项时在 中 ComboBox 显示字符串,请使用 TextSearch.Text TextSearch.TextPath 附加属性。

    自定义 ComboBox 控件

    若要将相同的属性设置应用于多个 ComboBox 控件,请使用 Style 属性。 可以修改默认 ControlTemplate 以赋予控件独特的外观。 有关创建 的详细信息, ControlTemplate 请参阅 通过创建 ControlTemplate 自定义现有控件的外观 。 若要查看特定于 ComboBox 的部分和状态,请参阅 ComboBox 样式和模板

    此控件的依赖属性可能由控件的默认样式设置。 如果属性由默认样式设置,则当控件出现在应用程序中时,该属性可能会从其默认值更改。 默认样式由应用程序运行时使用的桌面主题决定。

    只有视觉对象属性已存在于控件的默认模板中并且已使用 TemplateBinding 设置时,设置该属性才有效。 在 通过创建 ControlTemplate 自定义现有控件的外观 一文的 更改控件的视觉结构 部分可以找到视觉属性列表。

    为指定的路由事件添加路由事件处理程序,并将该处理程序添加到当前元素的处理程序集合中。 将 handledEventsToo 指定为 true ,可为已标记为由事件路由中的其他元素处理的路由事件调用所提供的处理程序。

    (继承自 UIElement )

    定位子元素,并确定 UIElement 的大小。 父元素从它们的 ArrangeCore(Rect) 实现(或者是 WPF 框架级别等效项)调用此方法,以便形成递归布局更新。 此方法产生第二次布局更新。

    (继承自 UIElement )

    对指定依赖属性的值进行强制。 通过对调用方 DependencyObject 上存在的依赖属性的属性元数据中所指定的任何 CoerceValueCallback 函数进行调用来完成此操作。

    (继承自 DependencyObject )

    更新 UIElement DesiredSize 。 父元素从其自身的 MeasureCore(Size) 实现调用此方法以形成递归布局更新。 调用此方法构成布局更新的第一个处理过程(“测量”处理过程)。

    (继承自 UIElement )

    每当更新此 FrameworkElement 的任何依赖属性的有效值时调用。 将在自变量参数中报告已更改的特定依赖属性。 重写 OnPropertyChanged(DependencyPropertyChangedEventArgs)

    (继承自 FrameworkElement )

    支持 FrameworkElement 的专用子类中的增量布局实现。 如果子元素包含无效属性,且该属性在元数据中标记为影响布局过程中父元素的测量或排列过程的因素,则调用 ParentLayoutInvalidated(UIElement)

    (继承自 FrameworkElement )
  •