OpenFileTest.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.OpenFileTest" Title="OpenFileTest"> <DockPanel Margin="5"> <Button DockPanel.Dock="Top" Click="cmdOpen_Click" HorizontalAlignment="Center">Open</Button> <ListBox Name="lstFiles"></ListBox> </DockPanel> </Window>
OpenFileTest.axaml.cs代码
using Avalonia;
using Avalonia.Controls;
using Avalonia.Interactivity;
using Avalonia.Markup.Xaml;
using Avalonia.Platform.Storage;
using System.Linq;
namespace AvaloniaUI;
public partial class OpenFileTest : Window
{
public OpenFileTest()
{
InitializeComponent();
}
private async void cmdOpen_Click(object? sender, RoutedEventArgs e)
{
var options = new FilePickerOpenOptions
{
Title = "Open",
AllowMultiple = true,
FileTypeFilter =
[
new FilePickerFileType("Image Files")
{
Patterns = [ "*.bmp", "*.jpg", "*.jpeg", "*.gif" ]
},
FilePickerFileTypes.All
]
};
var files = await StorageProvider.OpenFilePickerAsync(options);
if (files == null || files.Count == 0)
return;
lstFiles.ItemsSource = files.Select(f => f.TryGetLocalPath() ?? f.Name).ToArray();
}
}
运行效果

浙公网安备 33010602011771号