ImageList.axaml代码

<Window xmlns="https://github.com/avaloniaui"
        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"
        Height="300" Width="300"
        x:Class="AvaloniaUI.ImageList"
        Title="ImageList">
    <ListBox Margin="5" SelectionMode="Multiple" Name="lst"  SelectionChanged="lst_SelectionChanged">
        <StackPanel Orientation="Horizontal">
            <Image Source="avares://AvaloniaUI/Resources/Images/happyface.jpg"  Width="30" Height="30"></Image>
            <Label VerticalContentAlignment="Center">A happy face</Label>
        </StackPanel>

        <StackPanel Orientation="Horizontal">
            <Image Source="avares://AvaloniaUI/Resources/Images/redx.jpg" Width="30" Height="30"></Image>
            <Label VerticalContentAlignment="Center">A warning sign</Label>
        </StackPanel>

        <StackPanel Orientation="Horizontal">
            <Image Source="avares://AvaloniaUI/Resources/Images/happyface.jpg"  Width="30" Height="30"></Image>
            <Label VerticalContentAlignment="Center">A happy face</Label>
        </StackPanel>
    </ListBox>
</Window>

ImageList.axaml.cs代码

using Avalonia;
using Avalonia.Controls;
using Avalonia.Markup.Xaml;
using System;

namespace AvaloniaUI;

public partial class ImageList : Window
{
    public ImageList()
    {
        InitializeComponent();
    }

    private void lst_SelectionChanged(object? sender, SelectionChangedEventArgs e)
    {
        var listBox = sender as ListBox;
        var selectedItem = listBox?.SelectedItem as StackPanel;

        if (selectedItem != null)
        {
            Console.WriteLine($"Selected: {selectedItem}");
        }
    }
}

运行效果

 

posted on 2025-07-24 11:39  dalgleish  阅读(12)  评论(0)    收藏  举报