最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#?WPF?ListBox?動態(tài)顯示圖片功能

 更新時間:2023年08月19日 09:00:28   作者:Creator丶小鑫  
這篇文章主要介紹了C#?WPF?ListBox?動態(tài)顯示圖片,處理過程分為前臺代碼和后臺代碼,本文結合實例代碼給大家介紹的非常詳細,需要的朋友可以參考下

前言

        最近在和其他軟件聯(lián)合做一個本地圖片選擇傳輸功能,為此希望圖片能夠有序的呈現在客戶端,簡單的實現了一下功能,通過Mvvm模式進行呈現,過程簡單通俗,話不多說直接上圖。

處理過程  

前臺代碼

你只需要粘貼到你的前臺xml中就可以,位置記得調整下Margin,我這是按照我的位置進行調整的,所以針對ListBox在你的前臺你還需要調整下。

<ListBox Name="lstFileManager" Background ="Transparent" ItemsSource="{Binding}" ScrollViewer.HorizontalScrollBarVisibility="Disabled" ScrollViewer.VerticalScrollBarVisibility="Auto" ScrollViewer.CanContentScroll="True" Margin="69,192,50,40">
    <ListBox.ItemsPanel>
        <ItemsPanelTemplate>
            <WrapPanel/>
        </ItemsPanelTemplate>
    </ListBox.ItemsPanel>
    <ListBox.ItemTemplate>
        <DataTemplate>
            <!--這里修改內容整體大小以及在你框內的占比,我這一行顯示5個-->
            <Grid Margin="17" Width="100" Height="155">
                <Grid.RowDefinitions>
                    <RowDefinition Height="Auto" ></RowDefinition>
                    <RowDefinition Height="Auto" ></RowDefinition>
                    <RowDefinition Height="Auto" ></RowDefinition>
                </Grid.RowDefinitions>
                <Image Source="{Binding Pic}" HorizontalAlignment="Center" VerticalAlignment="Center" Width="100" Height="100"/>
                <Border BorderThickness="1" BorderBrush="red" Margin="1,107,1,0"/>
                <TextBlock Text="{Binding Name}" Grid.Row="1" Foreground="White" VerticalAlignment="Center" HorizontalAlignment="Center" Height="Auto" TextWrapping="Wrap"/>
            </Grid>
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>

后臺代碼

創(chuàng)建一個類進行數據綁定

 public class LVData
    {
        public string Name { get; set; }
        public BitmapImage Pic { get; set; }
    }

定義一個集合進行數據緩存 (集合定義在MainWindow的類中)

ObservableCollection<LVData> LVDatas = new ObservableCollection<LVData>();

在我們的邏輯中進行數據填充和呈現,清除集合清空ListBox中的Item顯示

//添加圖
LVDatas.Add(new LVData { Name = "圖片在ListBox中顯示的名稱(建議直接顯示圖片名稱)", Pic = new BitmapImage(new Uri("完整的圖片路徑")) });
//顯示在ListBox中
lstFileManager.ItemsSource = LVDatas;
//清除集合清空呈現
LVDatas.Clear();
//當前點擊的圖片名稱(lstFileManager.SelectedIndex  這是目前點擊的下標)
Console.WriteLine(LVDatas[lstFileManager.SelectedIndex].Name);

整體代碼

using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.IO;
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 ImageTexture
{
    /// <summary>
    /// MainWindow.xaml 的交互邏輯
    /// </summary>
    public partial class MainWindow : Window
    {
        //定義集合
        ObservableCollection<LVData> LVDatas = new ObservableCollection<LVData>();
        public MainWindow()
        {
            InitializeComponent();
            ImageTexture2DView("E:\\ProjectFiles\\ImageTexture");
        }
        private void ImageTexture2DView(string path)
        {
            //Path是圖片所在的文件夾路徑
            var apps = System.IO.Directory.GetFiles(path);
            List<string> images = new List<string>();
            foreach (string app in apps)//---遍歷文件夾所有文件
            {
                var fi = new FileInfo(app);//---使用FileInfo類進行操作
                if (fi.Extension == ".png")
                {
                    //將圖片添加到LVData中
                    LVDatas.Add(new LVData { Name = fi.Name.Remove(fi.Name.LastIndexOf(".")), Pic = new BitmapImage(new Uri(fi.FullName)) });
                }
            }
            //進行呈現
            lstFileManager.ItemsSource = LVDatas;
        }
        private void ImageClear_Click(object sender, RoutedEventArgs e)
        {
            //清除集合清空ListBox中的Item顯示
            LVDatas.Clear();
        }
    }
    public class LVData
    {
        public string Name { get; set; }
        public BitmapImage Pic { get; set; }
    }
}

結局    

后續(xù)想從數據庫或者其他地方添加就根據自己的想法添加就可以了,另外獲取點擊的是哪個綁定個監(jiān)聽事件就可以了,希望對大家有幫助。

到此這篇關于C# WPF ListBox 動態(tài)顯示圖片的文章就介紹到這了,更多相關C# WPF ListBox 顯示圖片內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • DevExpress設置TreeList圖片節(jié)點背景色的方法

    DevExpress設置TreeList圖片節(jié)點背景色的方法

    這篇文章主要介紹了DevExpress設置TreeList圖片節(jié)點背景色的方法,需要的朋友可以參考下
    2014-08-08
  • C# Marshal類基本概念和入門實例講解

    C# Marshal類基本概念和入門實例講解

    這篇文章主要介紹了C# Marshal類基本概念和入門實例,具有很好的參考價值,希望對大家有所幫助。
    2023-02-02
  • C# Assembly.Load案例詳解

    C# Assembly.Load案例詳解

    這篇文章主要介紹了C# Assembly.Load案例詳解,本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內容,需要的朋友可以參考下
    2021-08-08
  • c#中判斷類是否繼承于泛型基類

    c#中判斷類是否繼承于泛型基類

    這篇文章主要介紹了c#中判斷類是否繼承于泛型基類,最簡單的辦法肯定是typeof(b).baseType=typeof(a<string>)這樣就可以返回true,但是這種方法時不妥的,下面看看如何解決這個問題呢
    2022-04-04
  • 訪問修飾符(C# 編程指南)

    訪問修飾符(C# 編程指南)

    所有類型和類型成員都具有可訪問性級別,用來控制是否可以在您程序集的其他代碼中或其他程序集中使用它們。您在聲明類型或成員時使用以下訪問修飾符之一來指定其可訪問性
    2011-02-02
  • C# Lambda表達式select()和where()的區(qū)別及用法

    C# Lambda表達式select()和where()的區(qū)別及用法

    這篇文章主要介紹了C# Lambda表達式select()和where()的區(qū)別及用法,select在linq中一般會用來提取最后篩選的元素集合,在lambda表達式中通常用where得到元素集合,需要的朋友可以參考下
    2023-07-07
  • python實現AutoResetEvent類的阻塞模式方法解析

    python實現AutoResetEvent類的阻塞模式方法解析

    AutoResetEvent :當某個線程執(zhí)行到WaitOne()方法時,該線程則會處于阻塞模式,當被調用了Set()方法,阻塞的線程則會繼續(xù)向下執(zhí)行,其狀態(tài)立即被自動設置為阻塞模式
    2012-11-11
  • c#繼承與多態(tài)使用示例

    c#繼承與多態(tài)使用示例

    繼承是面向對象程序設計的主要特征之一,允許重用現有類去創(chuàng)建新類的過程。下面使用示例學習一下c#繼承與多態(tài)
    2014-01-01
  • C#高效實現Excel與CSV的互相轉換

    C#高效實現Excel與CSV的互相轉換

    在數據處理和報表工作流程中,將 Excel 文件和 CSV 文件互相轉換是非常常見的需求,本文將從基礎操作講起,逐步介紹自定義設置、批量處理及高級實踐技巧,幫助你在實際工作中輕松應對各種轉換需求
    2026-04-04
  • C#?WPF調用QT窗口的方法

    C#?WPF調用QT窗口的方法

    本文主要介紹了C#?WPF調用QT窗口的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-02-02

最新評論

大理市| 永济市| 泊头市| 白玉县| 贡觉县| 五家渠市| 郯城县| 河间市| 包头市| 泰兴市| 柘城县| 云龙县| 梁河县| 铜梁县| 固始县| 当涂县| 临清市| 寻乌县| 广水市| 青州市| 蒙山县| 休宁县| 城市| 阿瓦提县| 惠水县| 元谋县| 城口县| 平山县| 横峰县| 固安县| 菏泽市| 申扎县| 出国| 丹阳市| 陆丰市| 中西区| 茌平县| 织金县| 塘沽区| 永定县| 镇康县|