CAN和LIN增加报文标记
This commit is contained in:
@@ -611,6 +611,7 @@ namespace CapMachine.Wpf.CanDrive
|
||||
catch (TaskCanceledException)
|
||||
{
|
||||
// 任务被取消,正常退出
|
||||
IsSendOk = false;
|
||||
break;
|
||||
}
|
||||
catch (Exception ex)
|
||||
@@ -618,6 +619,7 @@ namespace CapMachine.Wpf.CanDrive
|
||||
LogService.Error(ex.Message);
|
||||
Console.WriteLine($"CAN周期发送异常: {ex.Message}");
|
||||
// 短暂暂停避免异常情况下CPU占用过高
|
||||
IsSendOk = false;
|
||||
await Task.Delay(10, token);
|
||||
}
|
||||
}
|
||||
@@ -629,11 +631,13 @@ namespace CapMachine.Wpf.CanDrive
|
||||
LogService.Error(ex.Message);
|
||||
// 清理其他可能的资源
|
||||
Console.WriteLine("CAN周期发送任务已结束,资源已清理");
|
||||
IsSendOk = false;
|
||||
}
|
||||
finally
|
||||
{
|
||||
// 确保在任何情况下(正常退出、异常、取消)都会停止计时器
|
||||
Stopwatcher.Stop();
|
||||
IsSendOk = false;
|
||||
}
|
||||
|
||||
}, token, TaskCreationOptions.LongRunning, TaskScheduler.Default);
|
||||
@@ -739,6 +743,25 @@ namespace CapMachine.Wpf.CanDrive
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private bool _IsReviceOk;
|
||||
/// <summary>
|
||||
/// 接收报文是否OK
|
||||
/// </summary>
|
||||
public bool IsReviceOk
|
||||
{
|
||||
get { return _IsReviceOk; }
|
||||
set
|
||||
{
|
||||
if (_IsReviceOk != value)
|
||||
{
|
||||
RaisePropertyChanged();
|
||||
_IsReviceOk = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 要发送的数据
|
||||
/// </summary>
|
||||
@@ -763,6 +786,7 @@ namespace CapMachine.Wpf.CanDrive
|
||||
int CanNum = USB2CANFD.CANFD_GetMsg(DevHandle, ReadCANIndex, msgPtRead, CanMsgBuffer.Length);
|
||||
if (CanNum > 0)
|
||||
{
|
||||
IsReviceOk = true;
|
||||
Console.WriteLine("Read CanMsgNum = {0}", CanNum);
|
||||
for (int i = 0; i < CanNum; i++)
|
||||
{
|
||||
@@ -787,10 +811,12 @@ namespace CapMachine.Wpf.CanDrive
|
||||
}
|
||||
else if (CanNum == 0)
|
||||
{
|
||||
IsReviceOk = false;
|
||||
Console.WriteLine("No CAN data!");
|
||||
}
|
||||
else
|
||||
{
|
||||
IsReviceOk = false;
|
||||
Console.WriteLine("Get CAN data error!");
|
||||
}
|
||||
Console.WriteLine("");
|
||||
@@ -826,6 +852,7 @@ namespace CapMachine.Wpf.CanDrive
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
IsReviceOk = false;
|
||||
LogService.Error(ex.Message);
|
||||
//LogService.Info($"时间:{DateTime.Now.ToString()}-【Meter】-{ex.Message}");
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
using CapMachine.Wpf.Models.Tag;
|
||||
using CapMachine.Wpf.Services;
|
||||
using HslCommunication;
|
||||
using NLog;
|
||||
using NPOI.OpenXmlFormats.Wordprocessing;
|
||||
using Prism.Ioc;
|
||||
using Prism.Mvvm;
|
||||
@@ -33,7 +34,8 @@ namespace CapMachine.Wpf.CanDrive
|
||||
{
|
||||
ContainerProvider = containerProvider;
|
||||
HighSpeedDataService = ContainerProvider.Resolve<HighSpeedDataService>();
|
||||
|
||||
LoggerService = ContainerProvider.Resolve<ILogService>();
|
||||
|
||||
//Stopwatch.Frequency表示高精度计时器每秒的计数次数(ticks/秒)每毫秒的ticks数 = 每秒的ticks数 ÷ 1000
|
||||
TicksPerMs = Stopwatch.Frequency / 1000.0;
|
||||
}
|
||||
@@ -57,6 +59,11 @@ namespace CapMachine.Wpf.CanDrive
|
||||
/// </summary>
|
||||
public HighSpeedDataService HighSpeedDataService { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Logger 实例
|
||||
/// </summary>
|
||||
public ILogService LoggerService { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 开始Dbc文件写入
|
||||
/// </summary>
|
||||
@@ -501,6 +508,23 @@ namespace CapMachine.Wpf.CanDrive
|
||||
}
|
||||
}
|
||||
|
||||
private bool _IsReviceOk;
|
||||
/// <summary>
|
||||
/// 接收报文是否OK
|
||||
/// </summary>
|
||||
public bool IsReviceOk
|
||||
{
|
||||
get { return _IsReviceOk; }
|
||||
set
|
||||
{
|
||||
if (_IsReviceOk != value)
|
||||
{
|
||||
RaisePropertyChanged();
|
||||
_IsReviceOk = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 要发送的数据
|
||||
/// </summary>
|
||||
@@ -653,6 +677,7 @@ namespace CapMachine.Wpf.CanDrive
|
||||
// 严重延迟,重新校准
|
||||
NextExecutionTime = Stopwatcher.ElapsedTicks;
|
||||
Console.WriteLine("定时发送延迟过大,重新校准时间");
|
||||
LoggerService.Info($"定时发送延迟过大,重新校准时间");
|
||||
}
|
||||
|
||||
// 使用Stopwatch记录实际的执行间隔,而不是DateTime
|
||||
@@ -711,14 +736,19 @@ namespace CapMachine.Wpf.CanDrive
|
||||
}
|
||||
catch (TaskCanceledException)
|
||||
{
|
||||
LoggerService.Info($"精确周期发送CAN数据-任务被取消,正常退出");
|
||||
// 任务被取消,正常退出
|
||||
IsSendOk = false;
|
||||
break;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Console.WriteLine($"CAN周期发送异常: {ex.Message}");
|
||||
// 短暂暂停避免异常情况下CPU占用过高
|
||||
IsSendOk = false;
|
||||
await Task.Delay(10, token);
|
||||
|
||||
LoggerService.Info($"精确周期发送CAN数据-{ex.Message}");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -726,17 +756,21 @@ namespace CapMachine.Wpf.CanDrive
|
||||
{
|
||||
// 确保在任何情况下(正常退出、异常、取消)都会停止计时器
|
||||
Stopwatcher.Stop();
|
||||
|
||||
LoggerService.Info($"精确周期发送CAN数据-{ex.Message}");
|
||||
// 清理其他可能的资源
|
||||
Console.WriteLine("CAN周期发送任务已结束,资源已清理");
|
||||
IsSendOk = false;
|
||||
}
|
||||
finally
|
||||
{
|
||||
// 确保在任何情况下(正常退出、异常、取消)都会停止计时器
|
||||
Stopwatcher.Stop();
|
||||
LoggerService.Info("精确周期发送CAN数据-正常退出、异常、取消)都会停止计时器");
|
||||
IsSendOk = false;
|
||||
}
|
||||
|
||||
}, token, TaskCreationOptions.LongRunning, TaskScheduler.Default);
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -771,6 +805,7 @@ namespace CapMachine.Wpf.CanDrive
|
||||
int CanNum = USB2CAN.CAN_GetMsgWithSize(DevHandle, ReadCANIndex, msgPtRead, CanMsgBuffer.Length);
|
||||
if (CanNum > 0)
|
||||
{
|
||||
IsReviceOk = true;
|
||||
Console.WriteLine("Read CanMsgNum = {0}", CanNum);
|
||||
for (int i = 0; i < CanNum; i++)
|
||||
{
|
||||
@@ -798,10 +833,12 @@ namespace CapMachine.Wpf.CanDrive
|
||||
}
|
||||
else if (CanNum == 0)
|
||||
{
|
||||
IsReviceOk=false;
|
||||
Console.WriteLine("No CAN data!");
|
||||
}
|
||||
else
|
||||
{
|
||||
IsReviceOk = false;
|
||||
Console.WriteLine("Get CAN data error!");
|
||||
}
|
||||
Console.WriteLine("");
|
||||
@@ -839,7 +876,8 @@ namespace CapMachine.Wpf.CanDrive
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
//LogService.Info($"时间:{DateTime.Now.ToString()}-【Meter】-{ex.Message}");
|
||||
IsReviceOk = false;
|
||||
LoggerService.Info("接收出现异常");
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
@@ -55,11 +55,18 @@ namespace CapMachine.Wpf.LinDrive
|
||||
{
|
||||
ContainerProvider = containerProvider;
|
||||
HighSpeedDataService = ContainerProvider.Resolve<HighSpeedDataService>();
|
||||
LoggerService = ContainerProvider.Resolve<ILogService>();
|
||||
|
||||
|
||||
//Stopwatch.Frequency表示高精度计时器每秒的计数次数(ticks/秒)每毫秒的ticks数 = 每秒的ticks数 ÷ 1000
|
||||
TicksPerMs = Stopwatch.Frequency / 1000.0;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Logger 实例
|
||||
/// </summary>
|
||||
public ILogService LoggerService { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// HighSpeedDataService 实例
|
||||
/// </summary>
|
||||
@@ -359,10 +366,19 @@ namespace CapMachine.Wpf.LinDrive
|
||||
LDFParser.LDF_GetSignalValueStr(LDFHandle, new StringBuilder(itemMsg.Key), new StringBuilder(itemSignal.SignalName), ReadValueStr);
|
||||
itemSignal.SignalRtValueSb = ReadValueStr;
|
||||
}
|
||||
//报文给高速记录的服务
|
||||
//HighSpeedDataService.AppendOrUpdateMsg(new Models.HighSpeed.CommMsg()
|
||||
//{
|
||||
// Category = "LIN",
|
||||
// MsgInfo = "0x" + CanMsgBuffer[i].ID.ToString("X8"),
|
||||
// MsgData = BitConverter.ToString(CanMsgBuffer[i].Data),
|
||||
// Time = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff")
|
||||
//});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
IsReviceOk= true;
|
||||
|
||||
//StringBuilder ValueStr = new StringBuilder(64);
|
||||
//LDFParser.LDF_ExeFrameToBus(LDFHandle, new StringBuilder("ID_DATA"), 1);
|
||||
@@ -376,7 +392,8 @@ namespace CapMachine.Wpf.LinDrive
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
//LogService.Info($"时间:{DateTime.Now.ToString()}-【Meter】-{ex.Message}");
|
||||
IsReviceOk = false;
|
||||
LoggerService.Info($"{ex.Message}");
|
||||
}
|
||||
}
|
||||
});
|
||||
@@ -454,6 +471,23 @@ namespace CapMachine.Wpf.LinDrive
|
||||
}
|
||||
|
||||
|
||||
private bool _IsReviceOk;
|
||||
/// <summary>
|
||||
/// 接收报文是否OK
|
||||
/// </summary>
|
||||
public bool IsReviceOk
|
||||
{
|
||||
get { return _IsReviceOk; }
|
||||
set
|
||||
{
|
||||
if (_IsReviceOk != value)
|
||||
{
|
||||
RaisePropertyChanged();
|
||||
_IsReviceOk = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#region 精确发送报文数据
|
||||
|
||||
@@ -578,17 +612,19 @@ namespace CapMachine.Wpf.LinDrive
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
IsSendOk=true;
|
||||
}
|
||||
|
||||
}
|
||||
catch (TaskCanceledException)
|
||||
{
|
||||
IsSendOk = false;
|
||||
// 任务被取消,正常退出
|
||||
break;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
IsSendOk = false;
|
||||
Console.WriteLine($"LIN周期发送异常: {ex.Message}");
|
||||
// 短暂暂停避免异常情况下CPU占用过高
|
||||
await Task.Delay(10, token);
|
||||
@@ -597,14 +633,16 @@ namespace CapMachine.Wpf.LinDrive
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
IsSendOk = false;
|
||||
// 确保在任何情况下(正常退出、异常、取消)都会停止计时器
|
||||
Stopwatcher.Stop();
|
||||
|
||||
LoggerService.Info("接收出现异常");
|
||||
// 清理其他可能的资源
|
||||
Console.WriteLine("LIN周期发送任务已结束,资源已清理");
|
||||
}
|
||||
finally
|
||||
{
|
||||
IsSendOk = false;
|
||||
// 确保在任何情况下(正常退出、异常、取消)都会停止计时器
|
||||
Stopwatcher.Stop();
|
||||
}
|
||||
|
||||
@@ -58,6 +58,29 @@ namespace CapMachine.Wpf.ViewModels
|
||||
|
||||
EventAggregator.GetEvent<LogicRuleChangeEvent>().Subscribe(LogicRuleChangeEventCall);
|
||||
|
||||
//数据波特率
|
||||
DataBaudRateCbxItems = new ObservableCollection<CbxItems>()
|
||||
{
|
||||
new CbxItems(){ Key="100000",Text="100 Kbps"},
|
||||
new CbxItems(){ Key="125000",Text="125 Kbps"},
|
||||
new CbxItems(){ Key="200000",Text="200 Kbps"},
|
||||
new CbxItems(){ Key="250000",Text="250 Kbps"},
|
||||
new CbxItems(){ Key="400000",Text="400 Kbps"},
|
||||
new CbxItems(){ Key="500000",Text="500 Kbps"},
|
||||
new CbxItems(){ Key="666000",Text="666 Kbps"},
|
||||
new CbxItems(){ Key="800000",Text="800 Kbps"},
|
||||
new CbxItems(){ Key="1000000",Text="1.0 Mbps"},
|
||||
|
||||
new CbxItems(){ Key="1500000",Text="1.5 Mbps"},
|
||||
new CbxItems(){ Key="2000000",Text="2.0 Mbps"},
|
||||
new CbxItems(){ Key="3000000",Text="3.0 Mbps"},
|
||||
new CbxItems(){ Key="4000000",Text="4.0 Mbps"},
|
||||
new CbxItems(){ Key="5000000",Text="5.0 Mbps"},
|
||||
new CbxItems(){ Key="6700000",Text="6.7 Mbps"},
|
||||
new CbxItems(){ Key="8000000",Text="8.0 Mbps"},
|
||||
new CbxItems(){ Key="10000000",Text="10.0 Mbps"},
|
||||
};
|
||||
|
||||
WriteNameCbxItems = new ObservableCollection<CbxItems>()
|
||||
{
|
||||
new CbxItems(){ Key="转速",Text="转速"},
|
||||
@@ -843,6 +866,16 @@ namespace CapMachine.Wpf.ViewModels
|
||||
set { _SelectedCANConfigExdDto = value; RaisePropertyChanged(); }
|
||||
}
|
||||
|
||||
private ObservableCollection<CbxItems> _DataBaudRateCbxItems;
|
||||
/// <summary>
|
||||
/// CAN FD 数据波特率
|
||||
/// </summary>
|
||||
public ObservableCollection<CbxItems> DataBaudRateCbxItems
|
||||
{
|
||||
get { return _DataBaudRateCbxItems; }
|
||||
set { _DataBaudRateCbxItems = value; RaisePropertyChanged(); }
|
||||
}
|
||||
|
||||
private DelegateCommand<string> _CanOpCmd;
|
||||
/// <summary>
|
||||
/// CAN操作的指令
|
||||
|
||||
@@ -406,7 +406,14 @@
|
||||
FontSize="18"
|
||||
Text="" />
|
||||
<TextBlock Style="{StaticResource TextBlockStyle}" Text="波特率" />
|
||||
<TextBox Style="{StaticResource TextBoxStyle}" Text="{Binding SelectedCANConfigExdDto.BaudRate}" />
|
||||
<ComboBox
|
||||
Width="100"
|
||||
DisplayMemberPath="Text"
|
||||
FontSize="16"
|
||||
ItemsSource="{Binding DataBaudRateCbxItems}"
|
||||
SelectedValue="{Binding SelectedCANConfigExdDto.BaudRate, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
|
||||
SelectedValuePath="Key" />
|
||||
<!--<TextBox Style="{StaticResource TextBoxStyle}" Text="{Binding SelectedCANConfigExdDto.BaudRate}" />-->
|
||||
</StackPanel>
|
||||
|
||||
<StackPanel Grid.Row="1" Orientation="Horizontal">
|
||||
@@ -574,6 +581,68 @@
|
||||
|
||||
</StackPanel>
|
||||
|
||||
<StackPanel
|
||||
Grid.Row="1"
|
||||
Grid.Column="1"
|
||||
Margin="-10,0"
|
||||
Orientation="Horizontal">
|
||||
<TextBlock
|
||||
Margin="0,0,10,0"
|
||||
VerticalAlignment="Center"
|
||||
FontFamily="/Assets/Fonts/#iconfont"
|
||||
FontSize="20"
|
||||
Text="" />
|
||||
<TextBlock
|
||||
Width="80"
|
||||
Style="{StaticResource TextBlockStyle}"
|
||||
Text="报文状态:" />
|
||||
|
||||
<Border
|
||||
Margin="5,12"
|
||||
BorderThickness="1"
|
||||
CornerRadius="5">
|
||||
<Border.Style>
|
||||
<Style TargetType="Border">
|
||||
<Setter Property="Background" Value="Gray" />
|
||||
<Style.Triggers>
|
||||
<DataTrigger Binding="{Binding CanDriveService.ToomossCanDrive.IsSendOk}" Value="true">
|
||||
<Setter Property="Background" Value="LimeGreen" />
|
||||
</DataTrigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
</Border.Style>
|
||||
<TextBlock
|
||||
Margin="5"
|
||||
HorizontalAlignment="Center"
|
||||
VerticalAlignment="Center"
|
||||
Foreground="White"
|
||||
Text="发送" />
|
||||
</Border>
|
||||
|
||||
<Border
|
||||
Margin="10,12"
|
||||
BorderThickness="1"
|
||||
CornerRadius="5">
|
||||
<Border.Style>
|
||||
<Style TargetType="Border">
|
||||
<Setter Property="Background" Value="Gray" />
|
||||
<Style.Triggers>
|
||||
<DataTrigger Binding="{Binding CanDriveService.ToomossCanDrive.IsReviceOk}" Value="true">
|
||||
<Setter Property="Background" Value="LimeGreen" />
|
||||
</DataTrigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
</Border.Style>
|
||||
<TextBlock
|
||||
Margin="5"
|
||||
HorizontalAlignment="Center"
|
||||
VerticalAlignment="Center"
|
||||
Foreground="White"
|
||||
Text="接收" />
|
||||
</Border>
|
||||
|
||||
</StackPanel>
|
||||
|
||||
</Grid>
|
||||
|
||||
</Grid>
|
||||
|
||||
@@ -636,6 +636,68 @@
|
||||
|
||||
</StackPanel>
|
||||
|
||||
<StackPanel
|
||||
Grid.Row="1"
|
||||
Grid.Column="1"
|
||||
Margin="-10,0"
|
||||
Orientation="Horizontal">
|
||||
<TextBlock
|
||||
Margin="0,0,10,0"
|
||||
VerticalAlignment="Center"
|
||||
FontFamily="/Assets/Fonts/#iconfont"
|
||||
FontSize="20"
|
||||
Text="" />
|
||||
<TextBlock
|
||||
Width="80"
|
||||
Style="{StaticResource TextBlockStyle}"
|
||||
Text="报文状态:" />
|
||||
|
||||
<Border
|
||||
Margin="5,12"
|
||||
BorderThickness="1"
|
||||
CornerRadius="5">
|
||||
<Border.Style>
|
||||
<Style TargetType="Border">
|
||||
<Setter Property="Background" Value="Gray" />
|
||||
<Style.Triggers>
|
||||
<DataTrigger Binding="{Binding CanFdDriveService.ToomossCanFDDrive.IsSendOk}" Value="true">
|
||||
<Setter Property="Background" Value="LimeGreen" />
|
||||
</DataTrigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
</Border.Style>
|
||||
<TextBlock
|
||||
Margin="5"
|
||||
HorizontalAlignment="Center"
|
||||
VerticalAlignment="Center"
|
||||
Foreground="White"
|
||||
Text="发送" />
|
||||
</Border>
|
||||
|
||||
<Border
|
||||
Margin="10,12"
|
||||
BorderThickness="1"
|
||||
CornerRadius="5">
|
||||
<Border.Style>
|
||||
<Style TargetType="Border">
|
||||
<Setter Property="Background" Value="Gray" />
|
||||
<Style.Triggers>
|
||||
<DataTrigger Binding="{Binding CanFdDriveService.ToomossCanFDDrive.IsReviceOk}" Value="true">
|
||||
<Setter Property="Background" Value="LimeGreen" />
|
||||
</DataTrigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
</Border.Style>
|
||||
<TextBlock
|
||||
Margin="5"
|
||||
HorizontalAlignment="Center"
|
||||
VerticalAlignment="Center"
|
||||
Foreground="White"
|
||||
Text="接收" />
|
||||
</Border>
|
||||
|
||||
</StackPanel>
|
||||
|
||||
</Grid>
|
||||
|
||||
</Grid>
|
||||
|
||||
@@ -573,6 +573,68 @@
|
||||
|
||||
</StackPanel>
|
||||
|
||||
<StackPanel
|
||||
Grid.Row="1"
|
||||
Grid.Column="1"
|
||||
Margin="-10,0"
|
||||
Orientation="Horizontal">
|
||||
<TextBlock
|
||||
Margin="0,0,10,0"
|
||||
VerticalAlignment="Center"
|
||||
FontFamily="/Assets/Fonts/#iconfont"
|
||||
FontSize="20"
|
||||
Text="" />
|
||||
<TextBlock
|
||||
Width="80"
|
||||
Style="{StaticResource TextBlockStyle}"
|
||||
Text="报文状态:" />
|
||||
|
||||
<Border
|
||||
Margin="5,12"
|
||||
BorderThickness="1"
|
||||
CornerRadius="5">
|
||||
<Border.Style>
|
||||
<Style TargetType="Border">
|
||||
<Setter Property="Background" Value="Gray" />
|
||||
<Style.Triggers>
|
||||
<DataTrigger Binding="{Binding LinDriveService.ToomossLinDrive.IsSendOk}" Value="true">
|
||||
<Setter Property="Background" Value="LimeGreen" />
|
||||
</DataTrigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
</Border.Style>
|
||||
<TextBlock
|
||||
Margin="5"
|
||||
HorizontalAlignment="Center"
|
||||
VerticalAlignment="Center"
|
||||
Foreground="White"
|
||||
Text="发送" />
|
||||
</Border>
|
||||
|
||||
<Border
|
||||
Margin="10,12"
|
||||
BorderThickness="1"
|
||||
CornerRadius="5">
|
||||
<Border.Style>
|
||||
<Style TargetType="Border">
|
||||
<Setter Property="Background" Value="Gray" />
|
||||
<Style.Triggers>
|
||||
<DataTrigger Binding="{Binding LinDriveService.ToomossLinDrive.IsReviceOk}" Value="true">
|
||||
<Setter Property="Background" Value="LimeGreen" />
|
||||
</DataTrigger>
|
||||
</Style.Triggers>
|
||||
</Style>
|
||||
</Border.Style>
|
||||
<TextBlock
|
||||
Margin="5"
|
||||
HorizontalAlignment="Center"
|
||||
VerticalAlignment="Center"
|
||||
Foreground="White"
|
||||
Text="接收" />
|
||||
</Border>
|
||||
|
||||
</StackPanel>
|
||||
|
||||
</Grid>
|
||||
|
||||
</Grid>
|
||||
|
||||
Reference in New Issue
Block a user