ComboBox

A drop-down list control.

Common Properties

Reference

ComboBox

Source code

ComboBox.cs

Examples

Basic ComboBox

<Window xmlns="https://github.com/avaloniaui"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
        x:Class="AvaloniaAppTemplate.MainWindow"
        Title="AvaloniaAppTemplate">
    <StackPanel>
        <ComboBox SelectedIndex="0">
            <ComboBoxItem>Inline Items</ComboBoxItem>
            <ComboBoxItem>Inline Item 2</ComboBoxItem>
            <ComboBoxItem>Inline Item 3</ComboBoxItem>
            <ComboBoxItem>Inline Item 4</ComboBoxItem>
        </ComboBox>
    </StackPanel>
</Window>

ComboBox with custom item templates

<Window xmlns="https://github.com/avaloniaui"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
        x:Class="AvaloniaAppTemplate.MainWindow"
        Title="AvaloniaAppTemplate">
    <StackPanel>
        <ComboBox SelectedIndex="0">
            <ComboBoxItem>
                <Panel>
                    <Rectangle Fill="{DynamicResource ThemeAccentBrush}"/>
                    <TextBlock Margin="8">Control Items</TextBlock>
                </Panel>
            </ComboBoxItem>
            <ComboBoxItem>
                <Ellipse Width="50" Height="50" Fill="Yellow"/>
            </ComboBoxItem>
            <ComboBoxItem>
                <TextBox Text="TextBox"/>
            </ComboBoxItem>
      </ComboBox>
    </StackPanel>
</Window>

ComboBox with binding

This example binds the fonts installed to a ComboBox

<Window xmlns="https://github.com/avaloniaui"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
        x:Class="AvaloniaAppTemplate.MainWindow"
        Title="AvaloniaAppTemplate">
    <StackPanel>
        <ComboBox x:Name="fontComboBox"  SelectedIndex="0">
            <ComboBox.ItemTemplate>
                <DataTemplate>
                    <TextBlock Text="{Binding Name}" FontFamily="{Binding}" />
                </DataTemplate>
            </ComboBox.ItemTemplate>
       </ComboBox>
    </StackPanel>
</Window>

With this code behind:

var fontComboBox = this.Find<ComboBox>("fontComboBox");
fontComboBox.Items = FontManager.Current.GetInstalledFontFamilyNames().Select(x => new FontFamily(x));
fontComboBox.SelectedIndex = 0;

最后更新于