zoukankan      html  css  js  c++  java
  • 【WPF】Combox 下拉选项增加图片显示 ItemTemplate

     效果图如上所示:

    前端Xmal代码:

    <Window x:Class="WpfTest.MainWindow"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            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"
            xmlns:local="clr-namespace:WpfTest"
            mc:Ignorable="d"
            Title="MainWindow" Height="350" Width="525">
        <Grid>
            <StackPanel>
                <Button Content="www.wikibt.com"  Click="Button_Click"></Button>
    
                <ComboBox ItemsSource="{Binding Items}" SelectedItem="{Binding CurrentItem}">
                    <ComboBox.ItemTemplate>
                        <DataTemplate>
                            <StackPanel Orientation="Horizontal">
                                <Image Source="/images/www.wikibt.com.png"></Image>//此处图片路径写死了,可以用绑定实现不一样的图片{Binding ItemImage}
                                <TextBlock Text="{Binding ItemName}" VerticalAlignment="Center" HorizontalAlignment="Center"></TextBlock>
                            </StackPanel>
                        </DataTemplate>
                    </ComboBox.ItemTemplate>
                </ComboBox>
            </StackPanel>
        </Grid>
    </Window>

    后端代码:

    using RevitTask;
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows;
    using System.Windows.Controls;
    using System.Windows.Data;
    using System.Windows.Documents;
    using System.Windows.Input;
    using System.Windows.Media;
    using System.Windows.Media.Imaging;
    using System.Windows.Navigation;
    using System.Windows.Shapes;
    
    namespace WpfTest
    {
        /// <summary>
        /// MainWindow.xaml 的交互逻辑
        /// </summary>
        public partial class MainWindow : Window
        {
            public MainWindow()
            {
                InitializeComponent();
                Items = new List<ImageItem>() {
                    new ImageItem("",1),new ImageItem("",2),new ImageItem("",3)
                };
                this.DataContext = this;
            }
    
            public List<ImageItem> Items { get; set; }
            public ImageItem CurrentItem { get; set; }
    
            private void Button_Click(object sender, RoutedEventArgs e)
            {
                MessageBox.Show(CurrentItem == null ? "null" : CurrentItem.ItemValue.ToString());
            }
        }
        public class ImageItem
        {
            public ImageItem(string name, object value)
            {
                ItemName = name;
                ItemValue = value;
            }
            public ImageItem(string name, object value, ImageSource img) : this(name, value)
            {
                ItemImage = img;
            }
            public string ItemName { get; set; }
            public object ItemValue { get; set; }
            public ImageSource ItemImage { get; set; }
        }
    }

    PS.喜欢动漫的,可以关注下我的BT网站(下载动漫):维基BT www.wikibt.com

  • 相关阅读:
    记录Linq中lambda动态表达式的使用方式
    openai-baseline安装过程中遇到的问题及解决方式
    已经安装cuda但是tensorflow仍然使用cpu加速的问题
    OpenAI gym环境--1基本知识
    logging
    tensorflow笔记1.1---------tf.app.run
    OBS源码解析(2)run_program函数
    OBS源码解析(1)main函数
    google开源服务器apprtc的搭建
    网络媒体流的音视频同步
  • 原文地址:https://www.cnblogs.com/mqxs/p/13098635.html
Copyright © 2011-2022 走看看