#c# #wpf #xaml
#c# #wpf #xaml
Вопрос:
Я пытаюсь создать выбор языка в WPF.
Я пытался использовать ComboBox, но он выглядел не так, как я хотел, и также кажется, что ComboBox не очень хорошо принимает изображения определенных размеров.
У меня есть следующий код:
<ComboBox Height="auto" Foreground="White">
<materialDesign:HintAssist.Hint>
<Image Source="image/eua.png" Width="50"/>
</materialDesign:HintAssist.Hint>
<ComboBoxItem>
<Image Source="image/italy.png" Width="50" Height="50"/>
</ComboBoxItem>
<ComboBoxItem>
<Image Source="image/eua.png" Width="50" Height="50"/>
</ComboBoxItem>
</ComboBox>
в приведенном выше коде изображение выглядит следующим образом
Как я могу лучше всего это сделать?
На рисунке ниже показана форма, которую вы хотели бы, чтобы она выглядела.
При выборе отображается флаг языка
и при нажатии на флаг, показать другие параметры
Комментарии:
1. Вы не описали, в чем проблема. Что не так? Что ожидается? Пожалуйста, отредактируйте вопрос и обновите.
2. там было объяснено, что combox не принимает изображение нужного мне размера, изображение обрезается в зависимости от размера
3. Вы не должны использовать флаги для представления языков: flagsarenotlanguages.com/blog / … — как сам британец, я очень обижаюсь, когда флаг США используется для обозначения английского языка 🙂 — Кроме того, какой язык является «канадским» ?
4. @Dai Это флаги были только для примера
5. @robertsobrel: Как обрезаются изображения? Ваш пример не имеет особого смысла.
Ответ №1:
Вы можете попробовать шаблон данных
<ComboBox>
<!--Material:Design.Hint-->
<ComboBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<!--TextHere-->
<!--Imagehere-->
</StackPanel>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
Комментарии:
1. используя этот код, я не смог отобразить текст или изображение, есть ли другой способ работы?
2. показывает ли это пустой список коллекции или просто нет вообще?
Ответ №2:
Вы можете попробовать приведенный ниже код. Он был протестирован с изображениями разных размеров. Если у вас возникли проблемы, вы можете оставить комментарий.
<ComboBox Width="100" Height="35">
<ComboBoxItem IsSelected="True" >
<WrapPanel>
<Button Width="30" Height="30" >
<Button.Template>
<ControlTemplate>
<Image Height="25" Source="image/usa.png" VerticalAlignment="Center"/>
</ControlTemplate>
</Button.Template>
</Button>
<TextBlock Text="English-1" VerticalAlignment="Center"/>
</WrapPanel>
</ComboBoxItem>
<ComboBoxItem >
<WrapPanel>
<Button Width="30" Height="30" >
<Button.Template>
<ControlTemplate>
<Image Height="25" Source="image/england.jpg" VerticalAlignment="Center"></Image>
</ControlTemplate>
</Button.Template>
</Button>
<TextBlock Text="English-2" VerticalAlignment="Center"/>
</WrapPanel>
</ComboBoxItem>
</ComboBox>
Комментарии:
1. Я протестировал его здесь, и он работает очень хорошо, я могу использовать изображение или изображение с текстом. Спасибо, мне это очень помогло, я все еще учусь работать с wpf