Files
BaslerCapture/SelectCamera.xaml.cs
2025-11-28 14:57:00 +08:00

74 lines
1.8 KiB
C#

using Basler.Pylon;
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.Shapes;
namespace WpfApp1
{
/// <summary>
/// SelectCamera.xaml 的交互逻辑
/// </summary>
public partial class SelectCamera : Window
{
public ICameraInfo SelectedCameraInfo { get; private set; }
public SelectCamera()
{
InitializeComponent();
LoadCameras();
}
private void LoadCameras()
{
CameraList.Items.Clear();
var list = CameraFinder.Enumerate();
if (list.Count == 0)
{
MessageBox.Show("未检测到任何摄像头。");
return;
}
foreach (var info in list)
{
CameraList.Items.Add(new
{
Raw = info,
Serial = info[CameraInfoKey.SerialNumber],
Model = info[CameraInfoKey.ModelName]
});
}
}
private void BtnOK_Click(object sender, RoutedEventArgs e)
{
if (CameraList.SelectedItem == null)
{
MessageBox.Show("请先选择一个相机");
return;
}
dynamic item = CameraList.SelectedItem;
SelectedCameraInfo = item.Raw;
this.DialogResult = true;
this.Close();
}
private void BtnCancel_Click(object sender, RoutedEventArgs e)
{
this.DialogResult = false;
this.Close();
}
}
}