March 10, 2020

ComboBox C#

Всем привет ребят, сегодня предлагаю обсудить комбобоксы в C#!

И так, combobox это вываливающаяся минюшка. В которой вы можете выбрать один пункт. Создается combobox в xaml файле, а его логика пишется в cs файле( в целом как и у всех элементов wpf приложения ). Предлагаю сейчас создать простой combobox, который мы в дальнейшем усложним.

<ComboBox Grid.Row="4" Grid.Column="2" Margin="10,30">
            <TextBlock Text="Первый"></TextBlock>
</ComboBox>

Ну давайте рассмотрим этот код... Мы создаем сам элемент при помощи угловых скобочек и ключевого слова ComboBox. Он принимает классические значения, а то есть Margin, Name, Место в приложение и т.д. В теле Combox`а можно указать <TextBlock> который будет показываться в менюшке

<ComboBoxItem>
                <Grid>
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition/>
                        <ColumnDefinition/>
                    </Grid.ColumnDefinitions>
                    <Image Source="C:\Users\Владислав\Pictures\Saved Pictures\1.png" Grid.Column="0"></Image>
                    <Image Source="C:\Users\Владислав\Pictures\Saved Pictures\2.png" Grid.Column="1"></Image>
                </Grid>
            </ComboBoxItem>
            <ComboBoxItem>
                <StackPanel>
                    <TextBlock Text="Третий"></TextBlock>
                    <Image Source="C:\Users\Владислав\Pictures\Saved Pictures\3.png" ></Image>
                </StackPanel>
            </ComboBoxItem>

Еще один вариант добавления элементов в ComboBox это ComboBoxItem, он использует когда нужно добавить более сложный элемент в меню. Например Grid с двумя изображениями или StackPanel с изображением и текстом.

Итоговый код этого ComboBox`а выглядит так:

<ComboBox Grid.Row="4" Grid.Column="2" Margin="10,30">
            <TextBlock Text="Первый"></TextBlock>
            <ComboBoxItem>
                <Grid>
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition/>
                        <ColumnDefinition/>
                    </Grid.ColumnDefinitions>
                    <Image Source="C:\Users\Владислав\Pictures\Saved Pictures\1.png" Grid.Column="0"></Image>
                    <Image Source="C:\Users\Владислав\Pictures\Saved Pictures\2.png" Grid.Column="1"></Image>
                </Grid>
            </ComboBoxItem>
            <ComboBoxItem>
                <StackPanel>
                    <TextBlock Text="Третий"></TextBlock>
                    <Image Source="C:\Users\Владислав\Pictures\Saved Pictures\3.png" ></Image>
                </StackPanel>
            </ComboBoxItem>
        </ComboBox>

А запустив приложение мы получим:

Первый элемент это просто текст, второй это Grid с двумя изображениями, а третий это StackPanel с текстом и изображением.

На этом все, если остались вопросы пишите в лс

Удачи, программисты!