52 lines
1.7 KiB
C#
52 lines
1.7 KiB
C#
using System.Windows;
|
|
using System.Windows.Controls;
|
|
using System.Windows.Media;
|
|
|
|
namespace SHH.CameraDashboard
|
|
{
|
|
public partial class DeviceHomeControl : UserControl
|
|
{
|
|
private CameraInfo _currentDevice;
|
|
|
|
public DeviceHomeControl()
|
|
{
|
|
InitializeComponent();
|
|
}
|
|
|
|
// 供外部调用,切换显示的设备
|
|
public void UpdateDevice(CameraInfo device)
|
|
{
|
|
_currentDevice = device;
|
|
|
|
if (device == null)
|
|
{
|
|
EmptyView.Visibility = Visibility.Visible;
|
|
DetailView.Visibility = Visibility.Collapsed;
|
|
return;
|
|
}
|
|
|
|
// 切换到详情视图
|
|
EmptyView.Visibility = Visibility.Collapsed;
|
|
DetailView.Visibility = Visibility.Visible;
|
|
|
|
// 绑定数据到界面控件
|
|
TxtName.Text = device.DisplayName;
|
|
TxtIp.Text = device.IpAddress;
|
|
TxtStreamUrl.Text = $"rtsp://{device.IpAddress}:554/live/main";
|
|
|
|
// 根据状态切换颜色和文字
|
|
if (device.Status == "Playing" || device.Status == "Connected")
|
|
{
|
|
TxtStatus.Text = "在线运行";
|
|
TxtStatus.Foreground = new SolidColorBrush(Color.FromRgb(78, 201, 176)); // Green
|
|
BadgeStatus.Background = new SolidColorBrush(Color.FromArgb(30, 78, 201, 176));
|
|
}
|
|
else
|
|
{
|
|
TxtStatus.Text = "离线/断开";
|
|
TxtStatus.Foreground = new SolidColorBrush(Color.FromRgb(244, 71, 71)); // Red
|
|
BadgeStatus.Background = new SolidColorBrush(Color.FromArgb(30, 244, 71, 71));
|
|
}
|
|
}
|
|
}
|
|
} |