国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

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

這篇具有很好參考價值的文章主要介紹了C# WPF ListBox 動態(tài)顯示圖片。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

前言

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

C# WPF ListBox 動態(tài)顯示圖片,c#,wpf,開發(fā)語言

處理過程

?前臺代碼
  1. 你只需要粘貼到你的前臺xml中就可以,位置記得調(diào)整下Margin,我這是按照我的位置進(jìn)行調(diào)整的,所以針對ListBox在你的前臺你還需要調(diào)整下。
    <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>
                <!--這里修改內(nèi)容整體大小以及在你框內(nèi)的占比,我這一行顯示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>
后臺代碼
  1. 創(chuàng)建一個類進(jìn)行數(shù)據(jù)綁定
        public class LVData
        {
            public string Name { get; set; }
            public BitmapImage Pic { get; set; }
        }
  2. 定義一個集合進(jìn)行數(shù)據(jù)緩存 (集合定義在MainWindow的類中)
    ObservableCollection<LVData> LVDatas = new ObservableCollection<LVData>();
  3. 在我們的邏輯中進(jìn)行數(shù)據(jù)填充和呈現(xiàn),清除集合清空ListBox中的Item顯示
    //添加圖
    LVDatas.Add(new LVData { Name = "圖片在ListBox中顯示的名稱(建議直接顯示圖片名稱)", Pic = new BitmapImage(new Uri("完整的圖片路徑")) });
    //顯示在ListBox中
    lstFileManager.ItemsSource = LVDatas;
    //清除集合清空呈現(xiàn)
    LVDatas.Clear();
    //當(dāng)前點擊的圖片名稱(lstFileManager.SelectedIndex  這是目前點擊的下標(biāo))
    Console.WriteLine(LVDatas[lstFileManager.SelectedIndex].Name);
  4. 整體代碼
    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類進(jìn)行操作
                    if (fi.Extension == ".png")
                    {
                        //將圖片添加到LVData中
                        LVDatas.Add(new LVData { Name = fi.Name.Remove(fi.Name.LastIndexOf(".")), Pic = new BitmapImage(new Uri(fi.FullName)) });
                    }
                }
                //進(jìn)行呈現(xiàn)
                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; }
    
        }
    }
    

結(jié)局? ??

后續(xù)想從數(shù)據(jù)庫或者其他地方添加就根據(jù)自己的想法添加就可以了,另外獲取點擊的是哪個綁定個監(jiān)聽事件就可以了,希望對大家有幫助。文章來源地址http://www.zghlxwxcb.cn/news/detail-655397.html

到了這里,關(guān)于C# WPF ListBox 動態(tài)顯示圖片的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • C# WPF 中 外部圖標(biāo)引入iconfont,無法正常顯示問題 【小白記錄】

    C# WPF 中 外部圖標(biāo)引入iconfont,無法正常顯示問題 【小白記錄】

    正確的格式,注意字體文件 “xxxx.ttf” 應(yīng)寫為 “#xxxx” 比如我的圖標(biāo)字體在當(dāng)前項目的 /Assets/Fonts/ 路徑下,那么我在MainWindow中引入該圖標(biāo)的話,應(yīng)該如下面的代碼一樣。 點擊字體文件,然后右鍵–屬性,將生成操作選為Resource(資源)即可

    2024年02月12日
    瀏覽(24)
  • avalonia、WPF使用ScottPlot動態(tài)顯示ECG心電圖

    avalonia、WPF使用ScottPlot動態(tài)顯示ECG心電圖

    avalonia、WPF使用ScottPlot動態(tài)顯示ECG心電圖 1.安裝ScottPlot.Avalonia NuGet包 注意: 如果開發(fā)環(huán)境是macos、linux,需要按照官網(wǎng)步驟配置環(huán)境 此處是官網(wǎng)配置鏈接 view部分 注意安裝包之后引入 xmlns:ScottPlot=\\\"clr-namespace:ScottPlot.Avalonia;assembly=ScottPlot.Avalonia\\\"

    2024年02月11日
    瀏覽(123)
  • C# WPF上位機開發(fā)(鍵盤繪圖控制)

    C# WPF上位機開發(fā)(鍵盤繪圖控制)

    【 聲明:版權(quán)所有,歡迎轉(zhuǎn)載,請勿用于商業(yè)用途。 聯(lián)系信箱:feixiaoxing @163.com】 ? ? ? ? 在軟件開發(fā)中,如果存在canvas圖像的話,一般有幾種控制方法。一種是鼠標(biāo)控制;一種是鍵盤控制;還有一種是定時器控制。定時器控制,多常見動畫、游戲、3d視頻當(dāng)中。而鼠標(biāo)控制

    2024年02月02日
    瀏覽(22)
  • C# WPF窗體設(shè)計器顯示以及App.xaml文件打不開(VS 2022)

    C# WPF窗體設(shè)計器顯示以及App.xaml文件打不開(VS 2022)

    在項目中遇到了App.xaml設(shè)計器打不開以及窗體設(shè)計器不顯示,只有代碼,如圖所示: 可以明顯的看見左下角的設(shè)計器不見,但是用戶控件又有設(shè)計器 (一、App.xaml不能正常打開) ①清理項目 ②將不能正常打開的App.xaml以及App.xaml.cs文件右鍵從項目中排除 ③點擊顯示所有文件,將

    2024年02月06日
    瀏覽(187)
  • C#開發(fā)winform&wpf后臺捕獲鼠標(biāo)移動事件

    做 WPF和winform的時候,可以在界面上設(shè)置鼠標(biāo)移動事件來檢測鼠標(biāo)移動,如果項目為后期改造這樣做的話改動量很大,今天通過另外一種后臺調(diào)用windows api的方式進(jìn)行快速捕獲和觸發(fā),提高開發(fā)效率分享給大家。

    2024年02月16日
    瀏覽(30)
  • C# WPF上位機開發(fā)(Web API聯(lián)調(diào))

    【 聲明:版權(quán)所有,歡迎轉(zhuǎn)載,請勿用于商業(yè)用途。 聯(lián)系信箱:feixiaoxing @163.com】 ? ? ? ? 很多時候,客戶需要開發(fā)的不僅僅是一個上位機系統(tǒng),它還有其他很多配套的系統(tǒng)或設(shè)備,比如物流小車、立庫、數(shù)字孿生等一整套系統(tǒng)。這個時候,上位機系統(tǒng)就需要和各個子系統(tǒng)

    2024年01月20日
    瀏覽(24)
  • WPF應(yīng)用開發(fā)之控件動態(tài)內(nèi)容展示

    WPF應(yīng)用開發(fā)之控件動態(tài)內(nèi)容展示

    在我們開發(fā)一些復(fù)雜信息的時候,由于需要動態(tài)展示一些相關(guān)信息,因此我們需要考慮一些控件內(nèi)容的動態(tài)展示,可以通過動態(tài)構(gòu)建控件的方式進(jìn)行顯示,如動態(tài)選項卡展示不同的信息,或者動態(tài)展示一個自定義控件的內(nèi)容等等,目的就是能夠減少一些硬編碼的處理方式,以

    2024年02月05日
    瀏覽(20)
  • C#創(chuàng)建DataTable并填充數(shù)據(jù),按鈕事件實現(xiàn)全選,并到全選的值。wpf開發(fā)

    wpf開發(fā)中,用事件創(chuàng)建一個datatable度填充到datagird里面,在datagrid里面有第一列是復(fù)選框。用一單擊事件實現(xiàn)全選,用一個按鈕事件得到所選中的值。 Window x:Class=\\\"WpfApp4.MainWindow\\\" ? ? ? ? xmlns=\\\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\\\" ? ? ? ? xmlns:x=\\\"http://schemas.microsoft.com

    2024年02月08日
    瀏覽(27)
  • C#上位機與歐姆龍PLC的通信12----【再爆肝】上位機應(yīng)用開發(fā)(WPF版)

    C#上位機與歐姆龍PLC的通信12----【再爆肝】上位機應(yīng)用開發(fā)(WPF版)

    繼上節(jié)完成winform版的應(yīng)用后,今天再爆肝wpf版的,看看看。 可以看到,wpf的確實還是漂亮很多,現(xiàn)在人都喜歡漂亮的,顏值高的,現(xiàn)在是看臉時代,作為軟件來說,是交給用戶使用的,UI自然是要講究,可以看出,wpf比winform漂亮多了,因為wpf使用樣式css來美化界面,雖然這

    2024年01月16日
    瀏覽(64)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包