Commit ad452264 by liulongfei

1. 算法配置增强

2. 替换WPFToolkit 控件
parent c6959f2a
......@@ -79,6 +79,21 @@
<Reference Include="WindowsBase" />
<Reference Include="PresentationCore" />
<Reference Include="PresentationFramework" />
<Reference Include="Xceed.Wpf.AvalonDock, Version=4.4.0.0, Culture=neutral, PublicKeyToken=3e4669d2f30244f4, processorArchitecture=MSIL">
<HintPath>..\packages\Extended.Wpf.Toolkit.4.4.0\lib\net40\Xceed.Wpf.AvalonDock.dll</HintPath>
</Reference>
<Reference Include="Xceed.Wpf.AvalonDock.Themes.Aero, Version=4.4.0.0, Culture=neutral, PublicKeyToken=3e4669d2f30244f4, processorArchitecture=MSIL">
<HintPath>..\packages\Extended.Wpf.Toolkit.4.4.0\lib\net40\Xceed.Wpf.AvalonDock.Themes.Aero.dll</HintPath>
</Reference>
<Reference Include="Xceed.Wpf.AvalonDock.Themes.Metro, Version=4.4.0.0, Culture=neutral, PublicKeyToken=3e4669d2f30244f4, processorArchitecture=MSIL">
<HintPath>..\packages\Extended.Wpf.Toolkit.4.4.0\lib\net40\Xceed.Wpf.AvalonDock.Themes.Metro.dll</HintPath>
</Reference>
<Reference Include="Xceed.Wpf.AvalonDock.Themes.VS2010, Version=4.4.0.0, Culture=neutral, PublicKeyToken=3e4669d2f30244f4, processorArchitecture=MSIL">
<HintPath>..\packages\Extended.Wpf.Toolkit.4.4.0\lib\net40\Xceed.Wpf.AvalonDock.Themes.VS2010.dll</HintPath>
</Reference>
<Reference Include="Xceed.Wpf.Toolkit, Version=4.4.0.0, Culture=neutral, PublicKeyToken=3e4669d2f30244f4, processorArchitecture=MSIL">
<HintPath>..\packages\Extended.Wpf.Toolkit.4.4.0\lib\net40\Xceed.Wpf.Toolkit.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<ApplicationDefinition Include="App.xaml">
......
......@@ -4,6 +4,7 @@
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:VIZ.H2V.ClipTestTool"
xmlns:toolkit="http://schemas.xceed.com/wpf/xaml/toolkit"
xmlns:fcommon="clr-namespace:VIZ.Framework.Common;assembly=VIZ.Framework.Common"
mc:Ignorable="d" Background="White" Loaded="UserControl_Loaded"
d:DesignHeight="800" d:DesignWidth="1200">
......@@ -46,8 +47,8 @@
<ColumnDefinition Width="*"></ColumnDefinition>
<ColumnDefinition Width="60"></ColumnDefinition>
</Grid.ColumnDefinitions>
<fcommon:NumberBox MinValue="0" MaxValue="200" Interval="1"
Value="{Binding Path=MoveValue,Mode=TwoWay}"></fcommon:NumberBox>
<toolkit:DoubleUpDown Minimum="0" Maximum="200" Increment="1"
Value="{Binding Path=MoveValue,Mode=TwoWay}"></toolkit:DoubleUpDown>
<TextBlock Text="像素" Foreground="Black" FontSize="18" VerticalAlignment="Center" Grid.Column="1" Margin="10,0,0,0"></TextBlock>
</Grid>
<Grid Grid.Row="1" Grid.Column="2">
......@@ -55,8 +56,8 @@
<ColumnDefinition Width="*"></ColumnDefinition>
<ColumnDefinition Width="80"></ColumnDefinition>
</Grid.ColumnDefinitions>
<fcommon:NumberBox MinValue="0.001" MaxValue="0.05" Interval="0.0001"
Value="{Binding Path=SmoothValue,Mode=TwoWay}"></fcommon:NumberBox>
<toolkit:DoubleUpDown Minimum="0.001" Maximum="0.05" Increment="0.0001"
Value="{Binding Path=SmoothValue,Mode=TwoWay}"></toolkit:DoubleUpDown>
<Button Content="刷新平滑系数" Foreground="Black" FontSize="12" Grid.Column="1" Command="{Binding Path=UpdateSmoothCommand}"></Button>
</Grid>
</Grid>
......
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Extended.Wpf.Toolkit" version="4.4.0" targetFramework="net48" />
<package id="log4net" version="2.0.15" targetFramework="net48" />
<package id="MouseKeyHook" version="5.6.0" targetFramework="net48" />
</packages>
\ No newline at end of file
......@@ -40,20 +40,6 @@ namespace VIZ.H2V.Domain
#endregion
#region ProcessID -- 进程ID
private int processID;
/// <summary>
/// 当前的算法进程ID
/// </summary>
public int ProcessID
{
get { return processID; }
set { processID = value; this.RaisePropertyChanged(nameof(ProcessID)); }
}
#endregion
#region IP -- IP地址
private string ip;
......@@ -82,16 +68,16 @@ namespace VIZ.H2V.Domain
#endregion
#region Process -- 进程信息
#region MainProcess -- 主进程
private Process process;
private Process mainProcess;
/// <summary>
/// 进程信息
/// 主进程
/// </summary>
public Process Process
public Process MainProcess
{
get { return process; }
set { process = value; this.RaisePropertyChanged(nameof(Process)); }
get { return mainProcess; }
set { mainProcess = value; this.RaisePropertyChanged(nameof(MainProcess)); }
}
#endregion
......
......@@ -4,6 +4,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
using VIZ.Framework.Core;
using VIZ.H2V.Storage;
namespace VIZ.H2V.Domain
{
......@@ -26,6 +27,34 @@ namespace VIZ.H2V.Domain
#endregion
#region Type -- 算法类型
private AlgorithmStrategyType type;
/// <summary>
/// 算法类型
/// </summary>
public AlgorithmStrategyType Type
{
get { return type; }
set { type = value; this.RaisePropertyChanged(nameof(Type)); }
}
#endregion
#region Tag -- 标记
private string tag;
/// <summary>
/// 标记
/// </summary>
public string Tag
{
get { return tag; }
set { tag = value; this.RaisePropertyChanged(nameof(Tag)); }
}
#endregion
#region Name -- 名称
private string name;
......@@ -54,17 +83,17 @@ namespace VIZ.H2V.Domain
#endregion
#region SetupPath -- 启动路径(绝对路径 or 相对路径)
#region MainPath -- 主进程路径
private string setupPath;
private string mainPath;
/// <summary>
/// 启动路径(绝对路径 or 相对路径)
/// 主进程路径
/// </summary>
public string SetupPath
public string MainPath
{
get { return setupPath; }
set { setupPath = value; this.RaisePropertyChanged(nameof(SetupPath)); }
get { return mainPath; }
set { mainPath = value; this.RaisePropertyChanged(nameof(MainPath)); }
}
#endregion
......
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Data;
namespace VIZ.H2V.Module.Resource
{
/// <summary>
/// 算法标记字符串转化器
/// </summary>
public class AlgorithmStrategyTagStringConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (value == null)
return null;
string str = value.ToString();
if (string.IsNullOrWhiteSpace(str))
return null;
return $" ({str})";
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
}
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:toolkit="http://schemas.xceed.com/wpf/xaml/toolkit"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<!-- =============================================================================== -->
<!-- ButtonSpinner -->
<!-- =============================================================================== -->
<BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter" />
<Style x:Key="ButtonSpinner_Normal_RepeatButton" TargetType="{x:Type RepeatButton}">
<Setter Property="FocusVisualStyle" Value="{x:Null}"></Setter>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type RepeatButton}">
<Border x:Name="bd" Background="Transparent">
<ContentPresenter></ContentPresenter>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="bd" Property="Background" Value="#22FFFFFF"></Setter>
</Trigger>
<Trigger Property="IsEnabled" Value="False">
<Setter Property="Opacity" Value="0.35"></Setter>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style x:Key="ButtonSpinner_Normal" TargetType="{x:Type toolkit:ButtonSpinner}">
<Setter Property="Background" Value="Transparent" />
<Setter Property="Foreground" Value="White" />
<Setter Property="BorderBrush" Value="Transparent" />
<Setter Property="BorderThickness" Value="0" />
<Setter Property="Focusable" Value="False" />
<Setter Property="HorizontalContentAlignment" Value="Stretch" />
<Setter Property="IsTabStop" Value="True" />
<Setter Property="Padding" Value="0" />
<Setter Property="VerticalContentAlignment" Value="Center" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type toolkit:ButtonSpinner}">
<Border x:Name="Border" SnapsToDevicePixels="True"
Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition x:Name="firstContentColumn" Width="*" />
<ColumnDefinition x:Name="secondContentColumn" Width="Auto" />
</Grid.ColumnDefinitions>
<ContentPresenter x:Name="contentPresenter"
Focusable="False"
Margin="{TemplateBinding Padding}"
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"
VerticalAlignment="{TemplateBinding VerticalContentAlignment}" />
<Grid x:Name="gridContent"
Grid.Column="1"
Width="{TemplateBinding SpinnerWidth}"
Height="{TemplateBinding SpinnerHeight}">
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<RepeatButton x:Name="PART_IncreaseButton"
Style="{StaticResource ButtonSpinner_Normal_RepeatButton}"
IsTabStop="{TemplateBinding IsTabStop}">
<Image Width="6" Height="13" VerticalAlignment="Center" HorizontalAlignment="Center"
Source="/VIZ.H2V.Module.Resource;component/Icons/triangle_up_16x16.png"></Image>
</RepeatButton>
<RepeatButton x:Name="PART_DecreaseButton" Grid.Row="1"
Style="{StaticResource ButtonSpinner_Normal_RepeatButton}"
IsTabStop="{TemplateBinding IsTabStop}">
<Image Width="6" Height="13" VerticalAlignment="Center" HorizontalAlignment="Center"
Source="/VIZ.H2V.Module.Resource;component/Icons/triangle_down_16x16.png"></Image>
</RepeatButton>
</Grid>
</Grid>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="ShowButtonSpinner" Value="False">
<Setter Property="Visibility" Value="Collapsed" TargetName="gridContent" />
</Trigger>
<Trigger Property="ShowSpinner" Value="False">
<Setter Property="Visibility" Value="Collapsed" TargetName="gridContent" />
</Trigger>
<Trigger Property="IsEnabled" Value="False">
<Setter Property="Opacity" Value="0.35" />
</Trigger>
<Trigger Property="SpinnerLocation" Value="Left">
<Setter TargetName="firstContentColumn" Property="Width" Value="Auto" />
<Setter TargetName="secondContentColumn" Property="Width" Value="*" />
<Setter TargetName="contentPresenter" Property="Grid.Column" Value="1" />
<Setter TargetName="gridContent" Property="Grid.Column" Value="0" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<!-- =============================================================================== -->
<!-- NumericUpDown -->
<!-- =============================================================================== -->
<toolkit:InverseBoolConverter x:Key="InverseBoolConverter" />
<DataTemplate x:Key="DefaultWatermarkTemplate">
<ContentControl Content="{Binding}"
Foreground="{DynamicResource {x:Static SystemColors.GrayTextBrushKey}}"
Focusable="False"
Margin="0,0,3,0" />
</DataTemplate>
<DataTemplate x:Key="IncreaseGlyphNormalKey">
<TextBlock Text="UP" VerticalAlignment="Center" HorizontalAlignment="Center"></TextBlock>
</DataTemplate>
<DataTemplate x:Key="IncreaseGlyphDisabledKey">
<TextBlock Text="UP" VerticalAlignment="Center" HorizontalAlignment="Center"></TextBlock>
</DataTemplate>
<DataTemplate x:Key="DecreaseGlyphNormalKey">
<TextBlock Text="DOWN" VerticalAlignment="Center" HorizontalAlignment="Center"></TextBlock>
</DataTemplate>
<DataTemplate x:Key="DecreaseGlyphDisabledKey">
<TextBlock Text="DOWN" VerticalAlignment="Center" HorizontalAlignment="Center"></TextBlock>
</DataTemplate>
<Style x:Key="NumericUpDown_Normal" TargetType="{x:Type toolkit:InputBase}">
<Setter Property="FocusVisualStyle" Value="{x:Null}"></Setter>
<Setter Property="Background" Value="#ff0e131e" />
<Setter Property="Foreground" Value="White" />
<Setter Property="BorderBrush" Value="#ff3d4758" />
<Setter Property="BorderThickness" Value="0,0,0,1" />
<Setter Property="Padding" Value="10,0,10,0"></Setter>
<Setter Property="HorizontalContentAlignment" Value="Right" />
<Setter Property="IsTabStop" Value="False" />
<Setter Property="VerticalContentAlignment" Value="Center" />
<Setter Property="TextAlignment" Value="Left" />
<Setter Property="FontSize" Value="14"></Setter>
<Setter Property="WatermarkTemplate" Value="{StaticResource DefaultWatermarkTemplate}" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Control">
<toolkit:ButtonSpinner x:Name="PART_Spinner"
Style="{StaticResource ButtonSpinner_Normal}"
IsTabStop="False"
Background="{TemplateBinding Background}"
BorderThickness="{TemplateBinding BorderThickness}"
BorderBrush="{TemplateBinding BorderBrush}"
HorizontalContentAlignment="Stretch"
VerticalContentAlignment="Stretch"
AllowSpin="{Binding AllowSpin, RelativeSource={RelativeSource TemplatedParent}}"
ShowSpinner="{Binding ShowButtonSpinner, RelativeSource={RelativeSource TemplatedParent}}"
ShowButtonSpinner="{Binding ShowButtonSpinner, RelativeSource={RelativeSource TemplatedParent}}"
SpinnerLocation="{Binding ButtonSpinnerLocation, RelativeSource={RelativeSource TemplatedParent}}"
SpinnerWidth="{Binding ButtonSpinnerWidth, RelativeSource={RelativeSource TemplatedParent}}"
SpinnerHeight="{Binding ButtonSpinnerHeight, RelativeSource={RelativeSource TemplatedParent}}"
SpinnerUpContentTemplate="{Binding ButtonSpinnerUpContentTemplate, RelativeSource={RelativeSource TemplatedParent}, TargetNullValue={StaticResource IncreaseGlyphNormalKey}}"
SpinnerDownContentTemplate="{Binding ButtonSpinnerDownContentTemplate, RelativeSource={RelativeSource TemplatedParent}, TargetNullValue={StaticResource DecreaseGlyphNormalKey}}"
SpinnerUpDisabledContentTemplate="{Binding ButtonSpinnerUpDisabledContentTemplate, RelativeSource={RelativeSource TemplatedParent}, TargetNullValue={StaticResource IncreaseGlyphDisabledKey}}"
SpinnerDownDisabledContentTemplate="{Binding ButtonSpinnerDownDisabledContentTemplate, RelativeSource={RelativeSource TemplatedParent}, TargetNullValue={StaticResource DecreaseGlyphDisabledKey}}">
<toolkit:WatermarkTextBox x:Name="PART_TextBox"
BorderThickness="0"
Background="Transparent"
CaretBrush="White"
ContextMenu="{TemplateBinding ContextMenu}"
FontFamily="{TemplateBinding FontFamily}"
FontSize="{TemplateBinding FontSize}"
FontStretch="{TemplateBinding FontStretch}"
FontStyle="{TemplateBinding FontStyle}"
FontWeight="{TemplateBinding FontWeight}"
Foreground="{TemplateBinding Foreground}"
HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}"
IsUndoEnabled="{Binding IsUndoEnabled, RelativeSource={RelativeSource TemplatedParent}}"
IsTabStop="True"
MinWidth="20"
AcceptsReturn="False"
Padding="{TemplateBinding Padding}"
AutoSelectBehavior="{Binding AutoSelectBehavior, RelativeSource={RelativeSource TemplatedParent}}"
AutoMoveFocus="{Binding AutoMoveFocus, RelativeSource={RelativeSource TemplatedParent}}"
TextAlignment="{Binding TextAlignment, RelativeSource={RelativeSource TemplatedParent}}"
TextWrapping="NoWrap"
TabIndex="{TemplateBinding TabIndex}"
VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}"
Watermark="{Binding Watermark, RelativeSource={RelativeSource TemplatedParent}}"
WatermarkTemplate="{Binding WatermarkTemplate, RelativeSource={RelativeSource TemplatedParent}}"
MaxLength="{Binding MaxLength, RelativeSource={RelativeSource TemplatedParent}}">
</toolkit:WatermarkTextBox>
</toolkit:ButtonSpinner>
<ControlTemplate.Triggers>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding IsReadOnly, RelativeSource={RelativeSource Self}}" Value="False" />
<Condition Binding="{Binding AllowTextInput, RelativeSource={RelativeSource Self}}" Value="False" />
</MultiDataTrigger.Conditions>
<Setter Property="IsReadOnly" Value="True" TargetName="PART_TextBox" />
</MultiDataTrigger>
<DataTrigger Binding="{Binding IsReadOnly, RelativeSource={RelativeSource Self}}" Value="True">
<Setter Property="IsReadOnly" Value="True" TargetName="PART_TextBox" />
</DataTrigger>
<Trigger Property="IsEnabled" Value="False">
<Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.GrayTextBrushKey}}" />
</Trigger>
<Trigger Property="IsFocused" Value="True">
<Setter TargetName="PART_TextBox" Property="FocusManager.FocusedElement" Value="{Binding ElementName=PART_TextBox}" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<!-- =============================================================================== -->
<!-- DecimalUpDown -->
<!-- =============================================================================== -->
<Style TargetType="{x:Type toolkit:DecimalUpDown}"
BasedOn="{StaticResource NumericUpDown_Normal}">
<Setter Property="ButtonSpinnerWidth" Value="40"></Setter>
</Style>
<!-- =============================================================================== -->
<!-- DoubleUpDown -->
<!-- =============================================================================== -->
<Style TargetType="{x:Type toolkit:DoubleUpDown}"
BasedOn="{StaticResource NumericUpDown_Normal}">
<Setter Property="ButtonSpinnerWidth" Value="40"></Setter>
</Style>
<!-- =============================================================================== -->
<!-- IntegerUpDown -->
<!-- =============================================================================== -->
<Style TargetType="{x:Type toolkit:IntegerUpDown}"
BasedOn="{StaticResource NumericUpDown_Normal}">
<Setter Property="ButtonSpinnerWidth" Value="40"></Setter>
</Style>
<!-- =============================================================================== -->
<!-- ShortUpDown -->
<!-- =============================================================================== -->
<Style TargetType="{x:Type toolkit:ShortUpDown}"
BasedOn="{StaticResource NumericUpDown_Normal}">
<Setter Property="ButtonSpinnerWidth" Value="40"></Setter>
</Style>
<!-- =============================================================================== -->
<!-- LongUpDown -->
<!-- =============================================================================== -->
<Style TargetType="{x:Type toolkit:LongUpDown}"
BasedOn="{StaticResource NumericUpDown_Normal}">
<Setter Property="ButtonSpinnerWidth" Value="40"></Setter>
</Style>
<!-- =============================================================================== -->
<!-- ByteUpDown -->
<!-- =============================================================================== -->
<Style TargetType="{x:Type toolkit:ByteUpDown}"
BasedOn="{StaticResource NumericUpDown_Normal}">
<Setter Property="ButtonSpinnerWidth" Value="40"></Setter>
</Style>
<!-- =============================================================================== -->
<!-- SingleUpDown -->
<!-- =============================================================================== -->
<Style TargetType="{x:Type toolkit:SingleUpDown}"
BasedOn="{StaticResource NumericUpDown_Normal}">
<Setter Property="ButtonSpinnerWidth" Value="40"></Setter>
</Style>
<!-- =============================================================================== -->
<!-- Style for all internal derived types of NumericUpDown will be done in code-behind -->
<!-- for external themes to redefine the default style. The reason is that the -->
<!-- toolkit.dll uses the InternalsVisibleTo attribute which makes internal data only -->
<!-- available in code-behind (not xaml). -->
<!-- (ex. Office2007 theme) -->
<!-- =============================================================================== -->
<!-- =============================================================================== -->
<!-- SByteUpDown -->
<!-- =============================================================================== -->
<Style TargetType="{x:Type toolkit:SByteUpDown}"
BasedOn="{StaticResource NumericUpDown_Normal}">
<Setter Property="ButtonSpinnerWidth" Value="40"></Setter>
</Style>
<!-- =============================================================================== -->
<!-- UIntegerUpDown -->
<!-- =============================================================================== -->
<Style TargetType="{x:Type toolkit:UIntegerUpDown}"
BasedOn="{StaticResource NumericUpDown_Normal}">
<Setter Property="ButtonSpinnerWidth" Value="40"></Setter>
</Style>
<!-- =============================================================================== -->
<!-- ULongUpDown -->
<!-- =============================================================================== -->
<Style TargetType="{x:Type toolkit:ULongUpDown}"
BasedOn="{StaticResource NumericUpDown_Normal}">
<Setter Property="ButtonSpinnerWidth" Value="40"></Setter>
</Style>
<!-- =============================================================================== -->
<!-- UShortUpDown -->
<!-- =============================================================================== -->
<Style TargetType="{x:Type toolkit:UShortUpDown}"
BasedOn="{StaticResource NumericUpDown_Normal}">
<Setter Property="ButtonSpinnerWidth" Value="40"></Setter>
</Style>
</ResourceDictionary>
\ No newline at end of file
......@@ -64,6 +64,21 @@
<Reference Include="WindowsBase" />
<Reference Include="PresentationCore" />
<Reference Include="PresentationFramework" />
<Reference Include="Xceed.Wpf.AvalonDock, Version=4.4.0.0, Culture=neutral, PublicKeyToken=3e4669d2f30244f4, processorArchitecture=MSIL">
<HintPath>..\packages\Extended.Wpf.Toolkit.4.4.0\lib\net40\Xceed.Wpf.AvalonDock.dll</HintPath>
</Reference>
<Reference Include="Xceed.Wpf.AvalonDock.Themes.Aero, Version=4.4.0.0, Culture=neutral, PublicKeyToken=3e4669d2f30244f4, processorArchitecture=MSIL">
<HintPath>..\packages\Extended.Wpf.Toolkit.4.4.0\lib\net40\Xceed.Wpf.AvalonDock.Themes.Aero.dll</HintPath>
</Reference>
<Reference Include="Xceed.Wpf.AvalonDock.Themes.Metro, Version=4.4.0.0, Culture=neutral, PublicKeyToken=3e4669d2f30244f4, processorArchitecture=MSIL">
<HintPath>..\packages\Extended.Wpf.Toolkit.4.4.0\lib\net40\Xceed.Wpf.AvalonDock.Themes.Metro.dll</HintPath>
</Reference>
<Reference Include="Xceed.Wpf.AvalonDock.Themes.VS2010, Version=4.4.0.0, Culture=neutral, PublicKeyToken=3e4669d2f30244f4, processorArchitecture=MSIL">
<HintPath>..\packages\Extended.Wpf.Toolkit.4.4.0\lib\net40\Xceed.Wpf.AvalonDock.Themes.VS2010.dll</HintPath>
</Reference>
<Reference Include="Xceed.Wpf.Toolkit, Version=4.4.0.0, Culture=neutral, PublicKeyToken=3e4669d2f30244f4, processorArchitecture=MSIL">
<HintPath>..\packages\Extended.Wpf.Toolkit.4.4.0\lib\net40\Xceed.Wpf.Toolkit.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<Page Include="Style\Button\Button_NdiView.xaml">
......@@ -122,8 +137,13 @@
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
<Page Include="Toolkit\NumericUpDown\NumericUpDown.xaml">
<Generator>MSBuild:Compile</Generator>
<SubType>Designer</SubType>
</Page>
</ItemGroup>
<ItemGroup>
<Compile Include="Converter\AlgorithmStrategyTagStringConverter.cs" />
<Compile Include="Converter\AlgorithmStrategyType2FootballFieldHeightConverter.cs" />
<Compile Include="Converter\AlgorithmStrategyType2FootballFieldOrientationConverter.cs" />
<Compile Include="Converter\TallyColor2RadialGradientBrushConverter.cs" />
......@@ -148,6 +168,7 @@
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
</EmbeddedResource>
<None Include="app.config" />
<None Include="packages.config" />
<None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
......@@ -216,5 +237,9 @@
<ItemGroup>
<Resource Include="Icons\tally_24x24.png" />
</ItemGroup>
<ItemGroup>
<Resource Include="Icons\triangle_down_16x16.png" />
<Resource Include="Icons\triangle_up_16x16.png" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Extended.Wpf.Toolkit" version="4.4.0" targetFramework="net48" />
</packages>
\ No newline at end of file
......@@ -6,6 +6,7 @@
xmlns:local="clr-namespace:VIZ.H2V.Module"
xmlns:fcommon="clr-namespace:VIZ.Framework.Common;assembly=VIZ.Framework.Common"
xmlns:behaviors="http://schemas.microsoft.com/xaml/behaviors"
xmlns:toolkit="http://schemas.xceed.com/wpf/xaml/toolkit"
d:DataContext="{d:DesignInstance Type=local:AlgorithmCablewayPanelViewModel}"
mc:Ignorable="d"
d:DesignHeight="800" d:DesignWidth="1000">
......@@ -17,7 +18,6 @@
<ResourceDictionary Source="/VIZ.H2V.Module.Resource;component/Style/TextBox/TextBox_Setting.xaml"></ResourceDictionary>
<ResourceDictionary Source="/VIZ.H2V.Module.Resource;component/Style/Slider/Slider_Setting.xaml"></ResourceDictionary>
<ResourceDictionary Source="/VIZ.H2V.Module.Resource;component/Style/CheckBox/CheckBox_Setting.xaml"></ResourceDictionary>
<ResourceDictionary Source="/VIZ.Framework.Common.Resource;component/Style/NumberBox/NumberBox.xaml"></ResourceDictionary>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</UserControl.Resources>
......@@ -62,20 +62,20 @@
</Grid.ColumnDefinitions>
<TextBlock Text="权重(%)" Foreground="White" FontSize="18" VerticalAlignment="Center" Grid.Row="0"></TextBlock>
<!-- 人物面积占比 -->
<fcommon:NumberBox Grid.Row="1" Height="40" MinValue="0" MaxValue="100" Interval="1"
Value="{Binding Path=PersonAreaProportionWeight,Mode=TwoWay}"></fcommon:NumberBox>
<toolkit:DoubleUpDown Grid.Row="1" Height="40" Minimum="0" Maximum="100" Increment="1"
Value="{Binding Path=PersonAreaProportionWeight,Mode=TwoWay}"></toolkit:DoubleUpDown>
<TextBlock Text="人物面积占比" Margin="10,0,0,0" Foreground="White" FontSize="18" VerticalAlignment="Center" Grid.Row="1" Grid.Column="1"></TextBlock>
<fcommon:NumberBox Grid.Row="1" Height="40" MinValue="0" MaxValue="100" Interval="0.1" Grid.Column="2"
Value="{Binding Path=PersonAreaProportion,Mode=TwoWay}"></fcommon:NumberBox>
<toolkit:DoubleUpDown Grid.Row="1" Height="40" Minimum="0" Maximum="100" Increment="0.1" Grid.Column="2"
Value="{Binding Path=PersonAreaProportion,Mode=TwoWay}"></toolkit:DoubleUpDown>
<!-- 置信度 -->
<fcommon:NumberBox Grid.Row="2" Height="40" MinValue="0" MaxValue="100" Interval="1"
Value="{Binding Path=ConfidenceWeight,Mode=TwoWay}"></fcommon:NumberBox>
<toolkit:DoubleUpDown Grid.Row="2" Height="40" Minimum="0" Maximum="100" Increment="1"
Value="{Binding Path=ConfidenceWeight,Mode=TwoWay}"></toolkit:DoubleUpDown>
<TextBlock Text="置信度" Margin="10,0,0,0" Foreground="White" FontSize="18" VerticalAlignment="Center" Grid.Row="2" Grid.Column="1"></TextBlock>
<fcommon:NumberBox Grid.Row="2" Height="40" MinValue="0" MaxValue="100" Interval="0.1" Grid.Column="2"
Value="{Binding Path=Confidence,Mode=TwoWay}"></fcommon:NumberBox>
<toolkit:DoubleUpDown Grid.Row="2" Height="40" Minimum="0" Maximum="100" Increment="0.1" Grid.Column="2"
Value="{Binding Path=Confidence,Mode=TwoWay}"></toolkit:DoubleUpDown>
<!-- 距离画面中心的位置 -->
<fcommon:NumberBox Grid.Row="3" Height="40" MinValue="0" MaxValue="100" Interval="1"
Value="{Binding Path=PositionToCenterWeight,Mode=TwoWay}"></fcommon:NumberBox>
<toolkit:DoubleUpDown Grid.Row="3" Height="40" Minimum="0" Maximum="100" Increment="1"
Value="{Binding Path=PositionToCenterWeight,Mode=TwoWay}"></toolkit:DoubleUpDown>
<TextBlock Text="距离画面中心的位置" Margin="10,0,0,0" Foreground="White" FontSize="18" VerticalAlignment="Center" Grid.Row="3" Grid.Column="1"></TextBlock>
</Grid>
......@@ -90,7 +90,7 @@
<ColumnDefinition Width="80"></ColumnDefinition>
<ColumnDefinition Width="*"></ColumnDefinition>
<ColumnDefinition Width="80"></ColumnDefinition>
<ColumnDefinition Width="80"></ColumnDefinition>
<ColumnDefinition Width="100"></ColumnDefinition>
</Grid.ColumnDefinitions>
<TextBlock Text="非常平滑,移动速度慢" Foreground="#aaffffff" FontSize="14" Grid.ColumnSpan="2" VerticalAlignment="Center" Margin="18,0,0,0"></TextBlock>
<TextBlock Text="一般平滑,移动速度快" Foreground="#aaffffff" FontSize="14" Grid.ColumnSpan="2" Grid.Column="1" HorizontalAlignment="Right" VerticalAlignment="Center" Margin="0,0,24,0"></TextBlock>
......@@ -99,9 +99,9 @@
Minimum="0.001" Maximum="0.05" IsSnapToTickEnabled="True" TickFrequency="0.001"
Value="{Binding Path=SmoothCoeff,Mode=TwoWay}"></Slider>
<TextBlock VerticalAlignment="Center" HorizontalAlignment="Center" Text="0.05" Foreground="White" FontSize="16" Grid.Column="2" Grid.Row="1"></TextBlock>
<fcommon:NumberBox Grid.Column="3" Height="40" IsShowUpAndDownButton="False" Grid.Row="1"
MinValue="0.001" MaxValue="0.05" Interval="0.001"
Value="{Binding Path=SmoothCoeff,Mode=TwoWay}"></fcommon:NumberBox>
<toolkit:DoubleUpDown Grid.Column="3" Height="40" Grid.Row="1"
Minimum="0.001" Maximum="0.05" Increment="0.001"
Value="{Binding Path=SmoothCoeff,Mode=TwoWay}"></toolkit:DoubleUpDown>
</Grid>
<!-- 默认策略 -->
<!-- 维持上一帧位置(帧) -->
......@@ -114,8 +114,8 @@
<ColumnDefinition Width="40"></ColumnDefinition>
</Grid.ColumnDefinitions>
<TextBlock Text="维持上一帧位置(帧)" Foreground="White" FontSize="18" VerticalAlignment="Center"></TextBlock>
<fcommon:NumberBox Grid.Column="1" MinValue="0" MaxValue="1000000" Interval="1" Height="40"
Value="{Binding Path=KeepPrevFrame,Mode=TwoWay}"></fcommon:NumberBox>
<toolkit:DoubleUpDown Grid.Column="1" Minimum="0" Maximum="1000000" Increment="1" Height="40"
Value="{Binding Path=KeepPrevFrame,Mode=TwoWay}"></toolkit:DoubleUpDown>
<TextBlock Text="内" Foreground="White" FontSize="18" VerticalAlignment="Center" Grid.Column="2"
HorizontalAlignment="Right"></TextBlock>
</Grid>
......@@ -180,8 +180,8 @@
<ColumnDefinition Width="*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<TextBlock Text="手动校准半径(像素)" Foreground="White" FontSize="18" VerticalAlignment="Center"></TextBlock>
<fcommon:NumberBox Grid.Column="1" MinValue="200" MaxValue="400" Interval="1" Height="40"
Value="{Binding Path=ManualCorrectionRadius,Mode=TwoWay}"></fcommon:NumberBox>
<toolkit:DoubleUpDown Grid.Column="1" Minimum="200" Maximum="400" Increment="1" Height="40"
Value="{Binding Path=ManualCorrectionRadius,Mode=TwoWay}"></toolkit:DoubleUpDown>
</Grid>
</Grid>
</Border>
......
......@@ -6,6 +6,7 @@
xmlns:local="clr-namespace:VIZ.H2V.Module"
xmlns:fcommon="clr-namespace:VIZ.Framework.Common;assembly=VIZ.Framework.Common"
xmlns:behaviors="http://schemas.microsoft.com/xaml/behaviors"
xmlns:toolkit="http://schemas.xceed.com/wpf/xaml/toolkit"
d:DataContext="{d:DesignInstance Type=local:AlgorithmNearPanelViewModel}"
mc:Ignorable="d"
d:DesignHeight="800" d:DesignWidth="1000">
......@@ -17,7 +18,6 @@
<ResourceDictionary Source="/VIZ.H2V.Module.Resource;component/Style/TextBox/TextBox_Setting.xaml"></ResourceDictionary>
<ResourceDictionary Source="/VIZ.H2V.Module.Resource;component/Style/Slider/Slider_Setting.xaml"></ResourceDictionary>
<ResourceDictionary Source="/VIZ.H2V.Module.Resource;component/Style/CheckBox/CheckBox_Setting.xaml"></ResourceDictionary>
<ResourceDictionary Source="/VIZ.Framework.Common.Resource;component/Style/NumberBox/NumberBox.xaml"></ResourceDictionary>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</UserControl.Resources>
......@@ -62,20 +62,20 @@
</Grid.ColumnDefinitions>
<TextBlock Text="权重(%)" Foreground="White" FontSize="18" VerticalAlignment="Center" Grid.Row="0"></TextBlock>
<!-- 人物面积占比 -->
<fcommon:NumberBox Grid.Row="1" Height="40" MinValue="0" MaxValue="100" Interval="1"
Value="{Binding Path=PersonAreaProportionWeight,Mode=TwoWay}"></fcommon:NumberBox>
<toolkit:DoubleUpDown Grid.Row="1" Height="40" Minimum="0" Maximum="100" Increment="1"
Value="{Binding Path=PersonAreaProportionWeight,Mode=TwoWay}"></toolkit:DoubleUpDown>
<TextBlock Text="人物面积占比" Margin="10,0,0,0" Foreground="White" FontSize="18" VerticalAlignment="Center" Grid.Row="1" Grid.Column="1"></TextBlock>
<fcommon:NumberBox Grid.Row="1" Height="40" MinValue="0" MaxValue="100" Interval="0.1" Grid.Column="2"
Value="{Binding Path=PersonAreaProportion,Mode=TwoWay}"></fcommon:NumberBox>
<toolkit:DoubleUpDown Grid.Row="1" Height="40" Minimum="0" Maximum="100" Increment="0.1" Grid.Column="2"
Value="{Binding Path=PersonAreaProportion,Mode=TwoWay}"></toolkit:DoubleUpDown>
<!-- 置信度 -->
<fcommon:NumberBox Grid.Row="2" Height="40" MinValue="0" MaxValue="100" Interval="1"
Value="{Binding Path=ConfidenceWeight,Mode=TwoWay}"></fcommon:NumberBox>
<toolkit:DoubleUpDown Grid.Row="2" Height="40" Minimum="0" Maximum="100" Increment="1"
Value="{Binding Path=ConfidenceWeight,Mode=TwoWay}"></toolkit:DoubleUpDown>
<TextBlock Text="置信度" Margin="10,0,0,0" Foreground="White" FontSize="18" VerticalAlignment="Center" Grid.Row="2" Grid.Column="1"></TextBlock>
<fcommon:NumberBox Grid.Row="2" Height="40" MinValue="0" MaxValue="100" Interval="0.1" Grid.Column="2"
Value="{Binding Path=Confidence,Mode=TwoWay}"></fcommon:NumberBox>
<toolkit:DoubleUpDown Grid.Row="2" Height="40" Minimum="0" Maximum="100" Increment="0.1" Grid.Column="2"
Value="{Binding Path=Confidence,Mode=TwoWay}"></toolkit:DoubleUpDown>
<!-- 距离画面中心的位置 -->
<fcommon:NumberBox Grid.Row="3" Height="40" MinValue="0" MaxValue="100" Interval="1"
Value="{Binding Path=PositionToCenterWeight,Mode=TwoWay}"></fcommon:NumberBox>
<toolkit:DoubleUpDown Grid.Row="3" Height="40" Minimum="0" Maximum="100" Increment="1"
Value="{Binding Path=PositionToCenterWeight,Mode=TwoWay}"></toolkit:DoubleUpDown>
<TextBlock Text="距离画面中心的位置" Margin="10,0,0,0" Foreground="White" FontSize="18" VerticalAlignment="Center" Grid.Row="3" Grid.Column="1"></TextBlock>
</Grid>
......@@ -90,7 +90,7 @@
<ColumnDefinition Width="80"></ColumnDefinition>
<ColumnDefinition Width="*"></ColumnDefinition>
<ColumnDefinition Width="80"></ColumnDefinition>
<ColumnDefinition Width="80"></ColumnDefinition>
<ColumnDefinition Width="100"></ColumnDefinition>
</Grid.ColumnDefinitions>
<TextBlock Text="非常平滑,移动速度慢" Foreground="#aaffffff" FontSize="14" Grid.ColumnSpan="2" VerticalAlignment="Center" Margin="18,0,0,0"></TextBlock>
<TextBlock Text="一般平滑,移动速度快" Foreground="#aaffffff" FontSize="14" Grid.ColumnSpan="2" Grid.Column="1" HorizontalAlignment="Right" VerticalAlignment="Center" Margin="0,0,24,0"></TextBlock>
......@@ -99,9 +99,9 @@
Minimum="0.001" Maximum="0.05" IsSnapToTickEnabled="True" TickFrequency="0.001"
Value="{Binding Path=SmoothCoeff,Mode=TwoWay}"></Slider>
<TextBlock VerticalAlignment="Center" HorizontalAlignment="Center" Text="0.05" Foreground="White" FontSize="16" Grid.Column="2" Grid.Row="1"></TextBlock>
<fcommon:NumberBox Grid.Column="3" Height="40" IsShowUpAndDownButton="False" Grid.Row="1"
MinValue="0.001" MaxValue="0.05" Interval="0.001"
Value="{Binding Path=SmoothCoeff,Mode=TwoWay}"></fcommon:NumberBox>
<toolkit:DoubleUpDown Grid.Column="3" Height="40" Grid.Row="1"
Minimum="0.001" Maximum="0.05" Increment="0.001"
Value="{Binding Path=SmoothCoeff,Mode=TwoWay}"></toolkit:DoubleUpDown>
</Grid>
<!-- 默认策略 -->
<!-- 维持上一帧位置(帧) -->
......@@ -114,8 +114,8 @@
<ColumnDefinition Width="40"></ColumnDefinition>
</Grid.ColumnDefinitions>
<TextBlock Text="维持上一帧位置(帧)" Foreground="White" FontSize="18" VerticalAlignment="Center"></TextBlock>
<fcommon:NumberBox Grid.Column="1" MinValue="0" MaxValue="1000000" Interval="1" Height="40"
Value="{Binding Path=KeepPrevFrame,Mode=TwoWay}"></fcommon:NumberBox>
<toolkit:DoubleUpDown Grid.Column="1" Minimum="0" Maximum="1000000" Increment="1" Height="40"
Value="{Binding Path=KeepPrevFrame,Mode=TwoWay}"></toolkit:DoubleUpDown>
<TextBlock Text="内" Foreground="White" FontSize="18" VerticalAlignment="Center" Grid.Column="2"
Margin="10,0,0,0"></TextBlock>
</Grid>
......@@ -180,8 +180,8 @@
<ColumnDefinition Width="*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<TextBlock Text="手动校准半径(像素)" Foreground="White" FontSize="18" VerticalAlignment="Center"></TextBlock>
<fcommon:NumberBox Grid.Column="1" MinValue="200" MaxValue="400" Interval="1" Height="40"
Value="{Binding Path=ManualCorrectionRadius,Mode=TwoWay}"></fcommon:NumberBox>
<toolkit:DoubleUpDown Grid.Column="1" Minimum="200" Maximum="400" Increment="1" Height="40"
Value="{Binding Path=ManualCorrectionRadius,Mode=TwoWay}"></toolkit:DoubleUpDown>
</Grid>
</Grid>
</Border>
......
......@@ -6,6 +6,7 @@
xmlns:local="clr-namespace:VIZ.H2V.Module"
xmlns:fcommon="clr-namespace:VIZ.Framework.Common;assembly=VIZ.Framework.Common"
xmlns:behaviors="http://schemas.microsoft.com/xaml/behaviors"
xmlns:toolkit="http://schemas.xceed.com/wpf/xaml/toolkit"
d:DataContext="{d:DesignInstance Type=local:AlgorithmSinglePanelViewModel}"
mc:Ignorable="d"
d:DesignHeight="450" d:DesignWidth="800">
......@@ -17,7 +18,6 @@
<ResourceDictionary Source="/VIZ.H2V.Module.Resource;component/Style/Button/Button_Setting.xaml"></ResourceDictionary>
<ResourceDictionary Source="/VIZ.H2V.Module.Resource;component/Style/TextBox/TextBox_Setting.xaml"></ResourceDictionary>
<ResourceDictionary Source="/VIZ.H2V.Module.Resource;component/Style/Slider/Slider_Setting.xaml"></ResourceDictionary>
<ResourceDictionary Source="/VIZ.Framework.Common.Resource;component/Style/NumberBox/NumberBox.xaml"></ResourceDictionary>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</UserControl.Resources>
......@@ -53,7 +53,7 @@
<ColumnDefinition Width="80"></ColumnDefinition>
<ColumnDefinition Width="*"></ColumnDefinition>
<ColumnDefinition Width="80"></ColumnDefinition>
<ColumnDefinition Width="80"></ColumnDefinition>
<ColumnDefinition Width="100"></ColumnDefinition>
</Grid.ColumnDefinitions>
<TextBlock Text="非常平滑,移动速度慢" Foreground="#aaffffff" FontSize="14" Grid.ColumnSpan="2" VerticalAlignment="Center" Margin="18,0,0,0"></TextBlock>
<TextBlock Text="一般平滑,移动速度快" Foreground="#aaffffff" FontSize="14" Grid.ColumnSpan="2" Grid.Column="1" HorizontalAlignment="Right" VerticalAlignment="Center" Margin="0,0,24,0"></TextBlock>
......@@ -62,9 +62,9 @@
Minimum="0.001" Maximum="0.05" IsSnapToTickEnabled="True" TickFrequency="0.001"
Value="{Binding Path=SmoothCoeff,Mode=TwoWay}"></Slider>
<TextBlock VerticalAlignment="Center" HorizontalAlignment="Center" Text="0.05" Foreground="White" FontSize="16" Grid.Column="2" Grid.Row="1"></TextBlock>
<fcommon:NumberBox Grid.Column="3" Height="40" IsShowUpAndDownButton="False" Grid.Row="1"
MinValue="0.001" MaxValue="0.05" Interval="0.001"
Value="{Binding Path=SmoothCoeff,Mode=TwoWay}"></fcommon:NumberBox>
<toolkit:DoubleUpDown Grid.Column="3" Height="40" Grid.Row="1"
Minimum="0.001" Maximum="0.05" Increment="0.001"
Value="{Binding Path=SmoothCoeff,Mode=TwoWay}"></toolkit:DoubleUpDown>
</Grid>
<!-- 默认策略 -->
<!-- 维持上一帧位置(帧) -->
......@@ -77,8 +77,8 @@
<ColumnDefinition Width="40"></ColumnDefinition>
</Grid.ColumnDefinitions>
<TextBlock Text="维持上一帧位置(帧)" Foreground="White" FontSize="18" VerticalAlignment="Center"></TextBlock>
<fcommon:NumberBox Grid.Column="1" MinValue="0" MaxValue="1000000" Interval="1" Height="40"
Value="{Binding Path=KeepPrevFrame,Mode=TwoWay}"></fcommon:NumberBox>
<toolkit:DoubleUpDown Grid.Column="1" Minimum="0" Maximum="1000000" Increment="1" Height="40"
Value="{Binding Path=KeepPrevFrame,Mode=TwoWay}"></toolkit:DoubleUpDown>
<TextBlock Text="内" Foreground="White" FontSize="18" VerticalAlignment="Center" Grid.Column="2"
Margin="10,0,0,0"></TextBlock>
</Grid>
......@@ -145,8 +145,8 @@
<ColumnDefinition Width="40"></ColumnDefinition>
</Grid.ColumnDefinitions>
<TextBlock Text="跟踪框面积占比小于x%时自动校准" Foreground="White" FontSize="18" VerticalAlignment="Center"></TextBlock>
<fcommon:NumberBox Grid.Column="1" MinValue="0" MaxValue="100" Interval="0.01" Height="40"
Value="{Binding Path=AreaCorrectionRatio,Mode=TwoWay}"></fcommon:NumberBox>
<toolkit:DoubleUpDown Grid.Column="1" Minimum="0" Maximum="100" Increment="0.01" Height="40"
Value="{Binding Path=AreaCorrectionRatio,Mode=TwoWay}"></toolkit:DoubleUpDown>
<TextBlock Text="%" Foreground="White" FontSize="18" VerticalAlignment="Center" Grid.Column="2"
Margin="10,0,0,0"></TextBlock>
</Grid>
......@@ -158,8 +158,8 @@
<ColumnDefinition Width="*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<TextBlock Text="自动校准置信度" Foreground="White" FontSize="18" VerticalAlignment="Center"></TextBlock>
<fcommon:NumberBox Grid.Column="1" MinValue="0" MaxValue="100" Interval="0.01" Height="40"
Value="{Binding Path=AreaCorrectionConfidence,Mode=TwoWay}"></fcommon:NumberBox>
<toolkit:DoubleUpDown Grid.Column="1" Minimum="0" Maximum="100" Increment="0.01" Height="40"
Value="{Binding Path=AreaCorrectionConfidence,Mode=TwoWay}"></toolkit:DoubleUpDown>
</Grid>
</Grid>
</Border>
......
......@@ -6,6 +6,7 @@
xmlns:local="clr-namespace:VIZ.H2V.Module"
xmlns:fcommon="clr-namespace:VIZ.Framework.Common;assembly=VIZ.Framework.Common"
xmlns:behaviors="http://schemas.microsoft.com/xaml/behaviors"
xmlns:toolkit="http://schemas.xceed.com/wpf/xaml/toolkit"
d:DataContext="{d:DesignInstance Type=local:AlgorithmSixteenPanelViewModel}"
mc:Ignorable="d"
d:DesignHeight="800" d:DesignWidth="1000">
......@@ -17,7 +18,6 @@
<ResourceDictionary Source="/VIZ.H2V.Module.Resource;component/Style/TextBox/TextBox_Setting.xaml"></ResourceDictionary>
<ResourceDictionary Source="/VIZ.H2V.Module.Resource;component/Style/Slider/Slider_Setting.xaml"></ResourceDictionary>
<ResourceDictionary Source="/VIZ.H2V.Module.Resource;component/Style/CheckBox/CheckBox_Setting.xaml"></ResourceDictionary>
<ResourceDictionary Source="/VIZ.Framework.Common.Resource;component/Style/NumberBox/NumberBox.xaml"></ResourceDictionary>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</UserControl.Resources>
......@@ -62,20 +62,20 @@
</Grid.ColumnDefinitions>
<TextBlock Text="权重(%)" Foreground="White" FontSize="18" VerticalAlignment="Center" Grid.Row="0"></TextBlock>
<!-- 人物面积占比 -->
<fcommon:NumberBox Grid.Row="1" Height="40" MinValue="0" MaxValue="100" Interval="1"
Value="{Binding Path=PersonAreaProportionWeight,Mode=TwoWay}"></fcommon:NumberBox>
<toolkit:DoubleUpDown Grid.Row="1" Height="40" Minimum="0" Maximum="100" Increment="1"
Value="{Binding Path=PersonAreaProportionWeight,Mode=TwoWay}"></toolkit:DoubleUpDown>
<TextBlock Text="人物面积占比" Margin="10,0,0,0" Foreground="White" FontSize="18" VerticalAlignment="Center" Grid.Row="1" Grid.Column="1"></TextBlock>
<fcommon:NumberBox Grid.Row="1" Height="40" MinValue="0" MaxValue="100" Interval="0.1" Grid.Column="2"
Value="{Binding Path=PersonAreaProportion,Mode=TwoWay}"></fcommon:NumberBox>
<toolkit:DoubleUpDown Grid.Row="1" Height="40" Minimum="0" Maximum="100" Increment="0.1" Grid.Column="2"
Value="{Binding Path=PersonAreaProportion,Mode=TwoWay}"></toolkit:DoubleUpDown>
<!-- 置信度 -->
<fcommon:NumberBox Grid.Row="2" Height="40" MinValue="0" MaxValue="100" Interval="1"
Value="{Binding Path=ConfidenceWeight,Mode=TwoWay}"></fcommon:NumberBox>
<toolkit:DoubleUpDown Grid.Row="2" Height="40" Minimum="0" Maximum="100" Increment="1"
Value="{Binding Path=ConfidenceWeight,Mode=TwoWay}"></toolkit:DoubleUpDown>
<TextBlock Text="置信度" Margin="10,0,0,0" Foreground="White" FontSize="18" VerticalAlignment="Center" Grid.Row="2" Grid.Column="1"></TextBlock>
<fcommon:NumberBox Grid.Row="2" Height="40" MinValue="0" MaxValue="100" Interval="0.1" Grid.Column="2"
Value="{Binding Path=Confidence,Mode=TwoWay}"></fcommon:NumberBox>
<toolkit:DoubleUpDown Grid.Row="2" Height="40" Minimum="0" Maximum="100" Increment="0.1" Grid.Column="2"
Value="{Binding Path=Confidence,Mode=TwoWay}"></toolkit:DoubleUpDown>
<!-- 距离画面中心的位置 -->
<fcommon:NumberBox Grid.Row="3" Height="40" MinValue="0" MaxValue="100" Interval="1"
Value="{Binding Path=PositionToCenterWeight,Mode=TwoWay}"></fcommon:NumberBox>
<toolkit:DoubleUpDown Grid.Row="3" Height="40" Minimum="0" Maximum="100" Increment="1"
Value="{Binding Path=PositionToCenterWeight,Mode=TwoWay}"></toolkit:DoubleUpDown>
<TextBlock Text="距离画面中心的位置" Margin="10,0,0,0" Foreground="White" FontSize="18" VerticalAlignment="Center" Grid.Row="3" Grid.Column="1"></TextBlock>
</Grid>
......@@ -90,7 +90,7 @@
<ColumnDefinition Width="80"></ColumnDefinition>
<ColumnDefinition Width="*"></ColumnDefinition>
<ColumnDefinition Width="80"></ColumnDefinition>
<ColumnDefinition Width="80"></ColumnDefinition>
<ColumnDefinition Width="100"></ColumnDefinition>
</Grid.ColumnDefinitions>
<TextBlock Text="非常平滑,移动速度慢" Foreground="#aaffffff" FontSize="14" Grid.ColumnSpan="2" VerticalAlignment="Center" Margin="18,0,0,0"></TextBlock>
<TextBlock Text="一般平滑,移动速度快" Foreground="#aaffffff" FontSize="14" Grid.ColumnSpan="2" Grid.Column="1" HorizontalAlignment="Right" VerticalAlignment="Center" Margin="0,0,24,0"></TextBlock>
......@@ -99,9 +99,9 @@
Minimum="0.001" Maximum="0.05" IsSnapToTickEnabled="True" TickFrequency="0.001"
Value="{Binding Path=SmoothCoeff,Mode=TwoWay}"></Slider>
<TextBlock VerticalAlignment="Center" HorizontalAlignment="Center" Text="0.05" Foreground="White" FontSize="16" Grid.Column="2" Grid.Row="1"></TextBlock>
<fcommon:NumberBox Grid.Column="3" Height="40" IsShowUpAndDownButton="False" Grid.Row="1"
MinValue="0.001" MaxValue="0.05" Interval="0.001"
Value="{Binding Path=SmoothCoeff,Mode=TwoWay}"></fcommon:NumberBox>
<toolkit:DoubleUpDown Grid.Column="3" Height="40" Grid.Row="1"
Minimum="0.001" Maximum="0.05" Increment="0.001"
Value="{Binding Path=SmoothCoeff,Mode=TwoWay}"></toolkit:DoubleUpDown>
</Grid>
<!-- 默认策略 -->
<!-- 维持上一帧位置(帧) -->
......@@ -114,8 +114,8 @@
<ColumnDefinition Width="40"></ColumnDefinition>
</Grid.ColumnDefinitions>
<TextBlock Text="维持上一帧位置(帧)" Foreground="White" FontSize="18" VerticalAlignment="Center"></TextBlock>
<fcommon:NumberBox Grid.Column="1" MinValue="0" MaxValue="1000000" Interval="1" Height="40"
Value="{Binding Path=KeepPrevFrame,Mode=TwoWay}"></fcommon:NumberBox>
<toolkit:DoubleUpDown Grid.Column="1" Minimum="0" Maximum="1000000" Increment="1" Height="40"
Value="{Binding Path=KeepPrevFrame,Mode=TwoWay}"></toolkit:DoubleUpDown>
<TextBlock Text="内" Foreground="White" FontSize="18" VerticalAlignment="Center" Grid.Column="2"
HorizontalAlignment="Right"></TextBlock>
</Grid>
......@@ -180,8 +180,8 @@
<ColumnDefinition Width="*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<TextBlock Text="手动校准半径(像素)" Foreground="White" FontSize="18" VerticalAlignment="Center"></TextBlock>
<fcommon:NumberBox Grid.Column="1" MinValue="200" MaxValue="400" Interval="1" Height="40"
Value="{Binding Path=ManualCorrectionRadius,Mode=TwoWay}"></fcommon:NumberBox>
<toolkit:DoubleUpDown Grid.Column="1" Minimum="200" Maximum="400" Increment="1" Height="40"
Value="{Binding Path=ManualCorrectionRadius,Mode=TwoWay}"></toolkit:DoubleUpDown>
</Grid>
</Grid>
</Border>
......
......@@ -6,6 +6,7 @@
xmlns:local="clr-namespace:VIZ.H2V.Module"
xmlns:fcommon="clr-namespace:VIZ.Framework.Common;assembly=VIZ.Framework.Common"
xmlns:behaviors="http://schemas.microsoft.com/xaml/behaviors"
xmlns:toolkit="http://schemas.xceed.com/wpf/xaml/toolkit"
d:DataContext="{d:DesignInstance Type=local:AlgorithmTacticsPanelViewModel}"
mc:Ignorable="d"
d:DesignHeight="800" d:DesignWidth="1000">
......@@ -17,7 +18,6 @@
<ResourceDictionary Source="/VIZ.H2V.Module.Resource;component/Style/TextBox/TextBox_Setting.xaml"></ResourceDictionary>
<ResourceDictionary Source="/VIZ.H2V.Module.Resource;component/Style/Slider/Slider_Setting.xaml"></ResourceDictionary>
<ResourceDictionary Source="/VIZ.H2V.Module.Resource;component/Style/CheckBox/CheckBox_Setting.xaml"></ResourceDictionary>
<ResourceDictionary Source="/VIZ.Framework.Common.Resource;component/Style/NumberBox/NumberBox.xaml"></ResourceDictionary>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</UserControl.Resources>
......@@ -62,20 +62,20 @@
</Grid.ColumnDefinitions>
<TextBlock Text="权重(%)" Foreground="White" FontSize="18" VerticalAlignment="Center" Grid.Row="0"></TextBlock>
<!-- 人物面积占比 -->
<fcommon:NumberBox Grid.Row="1" Height="40" MinValue="0" MaxValue="100" Interval="1"
Value="{Binding Path=PersonAreaProportionWeight,Mode=TwoWay}"></fcommon:NumberBox>
<toolkit:DoubleUpDown Grid.Row="1" Height="40" Minimum="0" Maximum="100" Increment="1"
Value="{Binding Path=PersonAreaProportionWeight,Mode=TwoWay}"></toolkit:DoubleUpDown>
<TextBlock Text="人物面积占比" Margin="10,0,0,0" Foreground="White" FontSize="18" VerticalAlignment="Center" Grid.Row="1" Grid.Column="1"></TextBlock>
<fcommon:NumberBox Grid.Row="1" Height="40" MinValue="0" MaxValue="100" Interval="0.1" Grid.Column="2"
Value="{Binding Path=PersonAreaProportion,Mode=TwoWay}"></fcommon:NumberBox>
<toolkit:DoubleUpDown Grid.Row="1" Height="40" Minimum="0" Maximum="100" Increment="0.1" Grid.Column="2"
Value="{Binding Path=PersonAreaProportion,Mode=TwoWay}"></toolkit:DoubleUpDown>
<!-- 置信度 -->
<fcommon:NumberBox Grid.Row="2" Height="40" MinValue="0" MaxValue="100" Interval="1"
Value="{Binding Path=ConfidenceWeight,Mode=TwoWay}"></fcommon:NumberBox>
<toolkit:DoubleUpDown Grid.Row="2" Height="40" Minimum="0" Maximum="100" Increment="1"
Value="{Binding Path=ConfidenceWeight,Mode=TwoWay}"></toolkit:DoubleUpDown>
<TextBlock Text="置信度" Margin="10,0,0,0" Foreground="White" FontSize="18" VerticalAlignment="Center" Grid.Row="2" Grid.Column="1"></TextBlock>
<fcommon:NumberBox Grid.Row="2" Height="40" MinValue="0" MaxValue="100" Interval="0.1" Grid.Column="2"
Value="{Binding Path=Confidence,Mode=TwoWay}"></fcommon:NumberBox>
<toolkit:DoubleUpDown Grid.Row="2" Height="40" Minimum="0" Maximum="100" Increment="0.1" Grid.Column="2"
Value="{Binding Path=Confidence,Mode=TwoWay}"></toolkit:DoubleUpDown>
<!-- 距离画面中心的位置 -->
<fcommon:NumberBox Grid.Row="3" Height="40" MinValue="0" MaxValue="100" Interval="1"
Value="{Binding Path=PositionToCenterWeight,Mode=TwoWay}"></fcommon:NumberBox>
<toolkit:DoubleUpDown Grid.Row="3" Height="40" Minimum="0" Maximum="100" Increment="1"
Value="{Binding Path=PositionToCenterWeight,Mode=TwoWay}"></toolkit:DoubleUpDown>
<TextBlock Text="距离画面中心的位置" Margin="10,0,0,0" Foreground="White" FontSize="18" VerticalAlignment="Center" Grid.Row="3" Grid.Column="1"></TextBlock>
</Grid>
......@@ -90,7 +90,7 @@
<ColumnDefinition Width="80"></ColumnDefinition>
<ColumnDefinition Width="*"></ColumnDefinition>
<ColumnDefinition Width="80"></ColumnDefinition>
<ColumnDefinition Width="80"></ColumnDefinition>
<ColumnDefinition Width="100"></ColumnDefinition>
</Grid.ColumnDefinitions>
<TextBlock Text="非常平滑,移动速度慢" Foreground="#aaffffff" FontSize="14" Grid.ColumnSpan="2" VerticalAlignment="Center" Margin="18,0,0,0"></TextBlock>
<TextBlock Text="一般平滑,移动速度快" Foreground="#aaffffff" FontSize="14" Grid.ColumnSpan="2" Grid.Column="1" HorizontalAlignment="Right" VerticalAlignment="Center" Margin="0,0,24,0"></TextBlock>
......@@ -99,9 +99,9 @@
Minimum="0.001" Maximum="0.05" IsSnapToTickEnabled="True" TickFrequency="0.001"
Value="{Binding Path=SmoothCoeff,Mode=TwoWay}"></Slider>
<TextBlock VerticalAlignment="Center" HorizontalAlignment="Center" Text="0.05" Foreground="White" FontSize="16" Grid.Column="2" Grid.Row="1"></TextBlock>
<fcommon:NumberBox Grid.Column="3" Height="40" IsShowUpAndDownButton="False" Grid.Row="1"
MinValue="0.001" MaxValue="0.05" Interval="0.001"
Value="{Binding Path=SmoothCoeff,Mode=TwoWay}"></fcommon:NumberBox>
<toolkit:DoubleUpDown Grid.Column="3" Height="40" Grid.Row="1"
Minimum="0.001" Maximum="0.05" Increment="0.001"
Value="{Binding Path=SmoothCoeff,Mode=TwoWay}"></toolkit:DoubleUpDown>
</Grid>
<!-- 默认策略 -->
<!-- 维持上一帧位置(帧) -->
......@@ -114,8 +114,8 @@
<ColumnDefinition Width="40"></ColumnDefinition>
</Grid.ColumnDefinitions>
<TextBlock Text="维持上一帧位置(帧)" Foreground="White" FontSize="18" VerticalAlignment="Center"></TextBlock>
<fcommon:NumberBox Grid.Column="1" MinValue="0" MaxValue="1000000" Interval="1" Height="40"
Value="{Binding Path=KeepPrevFrame,Mode=TwoWay}"></fcommon:NumberBox>
<toolkit:DoubleUpDown Grid.Column="1" Minimum="0" Maximum="1000000" Increment="1" Height="40"
Value="{Binding Path=KeepPrevFrame,Mode=TwoWay}"></toolkit:DoubleUpDown>
<TextBlock Text="内" Foreground="White" FontSize="18" VerticalAlignment="Center" Grid.Column="2"
HorizontalAlignment="Right"></TextBlock>
</Grid>
......@@ -180,8 +180,8 @@
<ColumnDefinition Width="*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<TextBlock Text="手动校准半径(像素)" Foreground="White" FontSize="18" VerticalAlignment="Center"></TextBlock>
<fcommon:NumberBox Grid.Column="1" MinValue="200" MaxValue="400" Interval="1" Height="40"
Value="{Binding Path=ManualCorrectionRadius,Mode=TwoWay}"></fcommon:NumberBox>
<toolkit:DoubleUpDown Grid.Column="1" Minimum="200" Maximum="400" Increment="1" Height="40"
Value="{Binding Path=ManualCorrectionRadius,Mode=TwoWay}"></toolkit:DoubleUpDown>
</Grid>
</Grid>
</Border>
......
......@@ -6,6 +6,7 @@
xmlns:local="clr-namespace:VIZ.H2V.Module"
xmlns:behaviors="http://schemas.microsoft.com/xaml/behaviors"
xmlns:fcommon="clr-namespace:VIZ.Framework.Common;assembly=VIZ.Framework.Common"
xmlns:resource="clr-namespace:VIZ.H2V.Module.Resource;assembly=VIZ.H2V.Module.Resource"
d:DataContext="{d:DesignInstance Type=local:AlgorithmSettingPanelViewModel}"
mc:Ignorable="d"
d:DesignHeight="450" d:DesignWidth="800">
......@@ -16,6 +17,8 @@
<ResourceDictionary Source="/VIZ.H2V.Module.Resource;component/Style/Button/Button_Setting.xaml"></ResourceDictionary>
<ResourceDictionary Source="/VIZ.H2V.Module.Resource;component/Style/TextBox/TextBox_Setting.xaml"></ResourceDictionary>
</ResourceDictionary.MergedDictionaries>
<resource:AlgorithmStrategyTagStringConverter x:Key="AlgorithmStrategyTagStringConverter"></resource:AlgorithmStrategyTagStringConverter>
</ResourceDictionary>
</UserControl.Resources>
......@@ -40,15 +43,19 @@
<ComboBox.ItemTemplate>
<DataTemplate>
<Border Background="Transparent" IsHitTestVisible="False">
<TextBlock Text="{Binding Path=DisplayName}" Foreground="White" FontSize="16"></TextBlock>
<StackPanel Orientation="Horizontal" VerticalAlignment="Center" HorizontalAlignment="Left">
<TextBlock Text="{Binding Path=DisplayName}" Foreground="White" FontSize="16"></TextBlock>
<TextBlock Text="{Binding Path=Tag,Mode=OneWay,Converter={StaticResource AlgorithmStrategyTagStringConverter}}"
Foreground="White" FontSize="16" Margin="10,0,0,0"></TextBlock>
</StackPanel>
</Border>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
<fcommon:NavigationControl Grid.Row="3"
ItemsSource="{Binding Path=AlgorithmStrategys}"
SelectedValue="{Binding Path=SelectedAlgorithmStrategy,Mode=OneWay}">
ItemsSource="{Binding Path=AlgorithmStrategys}"
SelectedValue="{Binding Path=SelectedAlgorithmStrategy,Mode=OneWay}">
</fcommon:NavigationControl>
</Grid>
......
......@@ -5,6 +5,7 @@
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:VIZ.H2V.Module"
xmlns:behaviors="http://schemas.microsoft.com/xaml/behaviors"
xmlns:toolkit="http://schemas.xceed.com/wpf/xaml/toolkit"
d:DataContext="{d:DesignInstance Type=local:NDISettingPanelViewModel}"
mc:Ignorable="d"
d:DesignHeight="600" d:DesignWidth="800">
......
......@@ -109,10 +109,10 @@ namespace VIZ.H2V.Module
/// </summary>
private void Loaded()
{
NDISettingView settingView = WPFHelper.GetAncestorByType<NDISettingView>(this.GetView<System.Windows.FrameworkElement>());
NDISettingView settingView = WPFHelper.GetAncestorByType<NDISettingView>(this.GetView<FrameworkElement>());
NDISettingViewModel vm = settingView.DataContext as NDISettingViewModel;
this.ViewConfig = vm.ViewConfig;
AlgorithmStrategyType StrategyType = this.ViewConfig.StrategyType;
int strategyID = this.ViewConfig.StrategyID;
vm.Settings.Add(this);
// 加载算法分类信息
......@@ -125,13 +125,15 @@ namespace VIZ.H2V.Module
{
AlgorithmStrategyModel model = new AlgorithmStrategyModel();
model.ID = entity.ID;
model.Type = entity.Type;
model.Tag = entity.Tag;
model.Name = entity.Name;
model.DisplayName = entity.DisplayName;
model.SetupPath = entity.SetupPath;
model.ViewType = this.GetViewType((AlgorithmStrategyType)entity.ID);
model.MainPath = entity.MainPath;
model.ViewType = this.GetViewType(entity.Type);
if (selected == null)
{
selected = (AlgorithmStrategyType)entity.ID == StrategyType ? model : null;
selected = (entity.ID == strategyID) ? model : null;
}
list.Add(model);
......@@ -203,7 +205,8 @@ namespace VIZ.H2V.Module
/// <returns>是否成功保存</returns>
public bool Save()
{
this.ViewConfig.StrategyType = (AlgorithmStrategyType)this.SelectedAlgorithmStrategy.ID;
this.ViewConfig.StrategyID = this.SelectedAlgorithmStrategy.ID;
this.ViewConfig.StrategyType = this.SelectedAlgorithmStrategy.Type;
ApplicationDomainEx.LiteDbContext.ViewConfig.Update(this.ViewConfig);
return true;
......@@ -219,10 +222,10 @@ namespace VIZ.H2V.Module
if (service == null)
return false;
AlgorithmStrategy strategy = ApplicationDomainEx.CsvContext.AlgorithmStrategys.FirstOrDefault(p => p.ID == (int)this.ViewConfig.StrategyType);
AlgorithmStrategy strategy = ApplicationDomainEx.CsvContext.AlgorithmStrategys.FirstOrDefault(p => p.ID == this.ViewConfig.StrategyID);
if (strategy != null)
{
// 设置算法显示名称
service.StrategyID = strategy.ID;
service.StrategyDisplayName = strategy.DisplayName;
service.StrategyType = this.ViewConfig.StrategyType;
}
......
......@@ -99,7 +99,7 @@ namespace VIZ.H2V.Module
public void StopAlgorithm()
{
// 已经处于等待停止状态 || 处于停止状态 || 进程ID不存在 那么不处理
if (this.Support.ViewStatus == NDIViewStatus.WaitStop || this.Support.ViewStatus == NDIViewStatus.Stop || this.Support.ProcessModel.ProcessID == 0)
if (this.Support.ViewStatus == NDIViewStatus.WaitStop || this.Support.ViewStatus == NDIViewStatus.Stop || this.Support.ProcessModel.MainProcess == null)
return;
this.Support.ViewStatus = NDIViewStatus.WaitStop;
......@@ -229,7 +229,7 @@ namespace VIZ.H2V.Module
private bool ExecuteRestartAlgorithm()
{
// 需要先停止
if (this.Support.ProcessModel.ProcessID > 0)
if (this.Support.ProcessModel.MainProcess != null)
{
// 停止算法进程
if (!this.ExecuteRestartAlgorithm_StopProcess())
......@@ -264,7 +264,6 @@ namespace VIZ.H2V.Module
// 发送停止消息
UdpEndpointManager manager = ConnectionManager.UdpConnection.GetEndpointManager(this.Support.ViewKey);
Process process = null;
// 拥有UDP链接管理器,那么尝试发送停止消息
if (manager != null)
{
......@@ -276,17 +275,19 @@ namespace VIZ.H2V.Module
{
// 发送停止指令,即便异常也不需要处理
}
}
// 检测进程是否已经结束
if (this.Support.ProcessModel.MainProcess != null)
{
DateTime beginTime = DateTime.Now;
// 等待停止
while ((DateTime.Now - beginTime).TotalMilliseconds < this.ALGORITHM_STOP_TIMEOUT)
{
try
{
if (this.Support.ProcessModel.ProcessID > 0)
{
process = Process.GetProcessById(this.Support.ProcessModel.ProcessID);
}
if (this.Support.ProcessModel.MainProcess.HasExited)
break;
}
catch
{
......@@ -294,31 +295,12 @@ namespace VIZ.H2V.Module
break;
}
if (process == null)
break;
Task.Delay(1000).Wait();
}
}
try
{
if (this.Support.ProcessModel.ProcessID > 0)
{
process = Process.GetProcessById(this.Support.ProcessModel.ProcessID);
}
}
catch
{
// 如果未获取到进程会报错,但不需要处理该异常
}
// 如果没有被停止,那么KILL
if (process != null)
{
try
{
process.Kill();
this.Support.ProcessModel.MainProcess.Kill();
}
catch (Exception ex)
{
......@@ -332,15 +314,7 @@ namespace VIZ.H2V.Module
GlobalUsedPorts.Remove(this.Support.ProcessModel.Port);
}
this.Support.ProcessModel.ProcessID = 0;
// 如果缓存已经被释放,那么不处理更新缓存
if (ApplicationDomainEx.LiteDbContext == null)
return true;
// 更新缓存
this.Support.ViewConfig.ProcessID = 0;
ApplicationDomainEx.LiteDbContext.ViewConfig.Update(this.Support.ViewConfig);
this.Support.ProcessModel.MainProcess = null;
return true;
}
......@@ -367,7 +341,8 @@ namespace VIZ.H2V.Module
private bool ExecuteRestartAlgorithm_StartProcess()
{
// 算法配置
AlgorithmStrategy strategy = ApplicationDomainEx.CsvContext.AlgorithmStrategys.FirstOrDefault(p => p.ID == (int)this.Support.ViewConfig.StrategyType);
AlgorithmStrategy strategy = ApplicationDomainEx.CsvContext.AlgorithmStrategys
.FirstOrDefault(p => p.ID == this.Support.ViewConfig.StrategyID);
if (strategy == null)
{
log.Error($"未找到对应算法'{this.Support.ViewConfig.StrategyType}'的配置信息");
......@@ -375,10 +350,10 @@ namespace VIZ.H2V.Module
return false;
}
if (!System.IO.File.Exists(strategy.SetupPath))
if (!System.IO.File.Exists(strategy.MainPath))
{
log.Error($"算法'{this.Support.ViewConfig.StrategyType}'的启动路径:'{strategy.SetupPath}'不正确!");
MessageBoxEx.ShowDialog($"算法'{this.Support.ViewConfig.StrategyType}'的启动路径:'{strategy.SetupPath}'不正确!");
log.Error($"算法'{this.Support.ViewConfig.StrategyType}'的启动路径:'{strategy.MainPath}'不正确!");
MessageBoxEx.ShowDialog($"算法'{this.Support.ViewConfig.StrategyType}'的启动路径:'{strategy.MainPath}'不正确!");
return false;
}
......@@ -391,39 +366,26 @@ namespace VIZ.H2V.Module
// GPU设备号
int device = this.Support.ViewConfig.GPU;
string fullPath = null;
Uri uri = new Uri(strategy.SetupPath, UriKind.RelativeOrAbsolute);
if (uri.IsAbsoluteUri)
{
fullPath = uri.LocalPath;
}
else
{
fullPath = new Uri(new Uri(AppDomain.CurrentDomain.BaseDirectory), uri).LocalPath;
}
Dictionary<string, string> args = new Dictionary<string, string>();
args["--port"] = $"{port}"; // 端口
args["--ndi_name"] = $"{ndi_name}"; // NDI流名称
args["--id"] = $"{id}"; // 窗口ID
args["--device"] = $"{device}"; // GPU设备ID
args["--vis_port"] = $"{CLIENT_PORT}"; // 软件端口
Process proc = new Process();
proc.StartInfo.UseShellExecute = true;
proc.StartInfo.FileName = ALGORITHM_PYTHON_PATH;
proc.StartInfo.Arguments = $"\"{fullPath}\" --port=\"{port}\" --ndi_name=\"{ndi_name}\" --id=\"{id}\" --device=\"{device}\" --vis_port=\"{CLIENT_PORT}\"";
proc.StartInfo.WindowStyle = ProcessWindowStyle.Normal;
Process mainProcess = this.CreateSetupProcess(strategy.MainPath, args);
if (!proc.Start())
if (!mainProcess.Start())
{
log.Error($"算法'{this.Support.ViewConfig.StrategyType}'的启动路径:'{strategy.SetupPath}'启动失败!");
MessageBoxEx.ShowDialog($"算法'{this.Support.ViewConfig.StrategyType}'的启动路径:'{strategy.SetupPath}'启动失败!");
log.Error($"算法'{this.Support.ViewConfig.StrategyType}'的启动路径:'{strategy.MainPath}'启动失败!");
MessageBoxEx.ShowDialog($"算法'{this.Support.ViewConfig.StrategyType}'的启动路径:'{strategy.MainPath}'启动失败!");
return false;
}
// 记录进程模型
this.Support.ProcessModel.ViewKey = this.Support.ViewKey;
this.Support.ProcessModel.ProcessID = proc.Id;
this.Support.ProcessModel.Process = proc;
// 更新缓存
this.Support.ViewConfig.ProcessID = this.Support.ProcessModel.ProcessID;
ApplicationDomainEx.LiteDbContext.ViewConfig.Update(this.Support.ViewConfig);
this.Support.ProcessModel.MainProcess = mainProcess;
return true;
}
......@@ -436,7 +398,7 @@ namespace VIZ.H2V.Module
{
// 添加新的UDP管理器
string clientIP = ApplicationDomainEx.IniStorage.GetValue<UdpConfig, string>(p => p.UDP_BINDING_IP);
AlgorithmStrategy strategy = ApplicationDomainEx.CsvContext.AlgorithmStrategys.FirstOrDefault(p => p.ID == (int)this.Support.ViewConfig.StrategyType);
AlgorithmStrategy strategy = ApplicationDomainEx.CsvContext.AlgorithmStrategys.FirstOrDefault(p => p.Type == this.Support.ViewConfig.StrategyType);
if (strategy == null)
{
......@@ -469,5 +431,38 @@ namespace VIZ.H2V.Module
return true;
}
/// <summary>
/// 创建启动进程
/// </summary>
/// <param name="path">进程路径</param>
/// <param name="args">进程参数</param>
/// <returns>进程对象</returns>
private Process CreateSetupProcess(string path, Dictionary<string, string> args)
{
StringBuilder sb = new StringBuilder();
foreach (var kv in args)
{
sb.Append($"{kv.Key}=\"{kv.Value}\" ");
}
string fileName = path;
string fileNameArgs = string.Empty;
if (System.IO.Path.GetExtension(fileName).ToLower() == ".py")
{
// 如果是 .py 文件那么 采用 CMD 启动python程序
fileName = "python";
fileNameArgs = path;
}
Process proc = new Process();
proc.StartInfo.UseShellExecute = true;
proc.StartInfo.FileName = path;
//proc.StartInfo.Arguments = $"\"{fullPath}\" --port=\"{port}\" --ndi_name=\"{ndi_name}\" --id=\"{id}\" --device=\"{device}\" --vis_port=\"{CLIENT_PORT}\"";
proc.StartInfo.Arguments = $"{fileNameArgs} {sb}";
proc.StartInfo.WindowStyle = ProcessWindowStyle.Normal;
return proc;
}
}
}
......@@ -35,6 +35,11 @@ namespace VIZ.H2V.Module
bool IsActive { get; set; }
/// <summary>
/// 算法ID
/// </summary>
int StrategyID { get; set; }
/// <summary>
/// 算法类型
/// </summary>
AlgorithmStrategyType StrategyType { get; set; }
......
......@@ -182,42 +182,6 @@
<RowDefinition Height="auto"></RowDefinition>
</Grid.RowDefinitions>
<!--<RadioButton Content="手动校准" Foreground="White" FontSize="20"
Style="{StaticResource RadioButton_NdiView_Tool}"
IsChecked="{Binding Path=ToolPartViewModel.IsManualCorrectionChecked,Mode=TwoWay}"
GroupName="{Binding Path=ViewKey,Converter={StaticResource StringAppendConverter}, ConverterParameter=Tool}"
HorizontalContentAlignment="Center" VerticalContentAlignment="Center">
<RadioButton.Visibility>
<MultiBinding Converter="{StaticResource NDIViewProperty2VisibilityConverter_ManualCorrection}">
<Binding Path="DataContext.ViewStatus" ElementName="uc"></Binding>
<Binding Path="DataContext.StrategyMode" ElementName="uc"></Binding>
<Binding Path="DataContext.StrategyType" ElementName="uc"></Binding>
</MultiBinding>
</RadioButton.Visibility>
</RadioButton>-->
<!-- 近景机位 & 16米机位 & 战术机位 ===== 边线检测选择面板 -->
<!--<Border Grid.Row="1" Background="{x:Null}"
Visibility="{Binding Path=AlgorithmConfig.IsShowBorder,Mode=OneWay,Converter={StaticResource Bool2VisibilityConverter}}">
<RadioButton Style="{StaticResource RadioButton_NdiView_None}"
Height="{Binding ElementName=uc,Path=DataContext.StrategyType,Converter={StaticResource AlgorithmStrategyType2FootballFieldHeightConverter}}"
IsChecked="{Binding Path=ToolPartViewModel.IsSideCheckPolygonChecked,Mode=TwoWay}"
GroupName="{Binding Path=ViewKey,Converter={StaticResource StringAppendConverter}, ConverterParameter=Tool}"
HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch">
<RadioButton.Visibility>
<MultiBinding Converter="{StaticResource NDIViewProperty2VisibilityConverter_FootballFieldPanel}">
<Binding Path="DataContext.ViewStatus" ElementName="uc"></Binding>
<Binding Path="DataContext.StrategyMode" ElementName="uc"></Binding>
<Binding Path="DataContext.StrategyType" ElementName="uc"></Binding>
</MultiBinding>
</RadioButton.Visibility>
<common:FootballFieldPanel FootballFieldWidth="150" FootballFieldHeight="100"
DataContext="{Binding Path=FootballFieldPanelModel}"
Orientation="{Binding ElementName=uc,Path=DataContext.StrategyType,Converter={StaticResource AlgorithmStrategyType2FootballFieldOrientationConverter}}">
</common:FootballFieldPanel>
</RadioButton>
</Border>-->
<!-- 居中模式 按钮组-->
<Grid Grid.Row="1" Background="{x:Null}">
<Grid.Visibility>
......
......@@ -91,7 +91,7 @@ namespace VIZ.H2V.Module
private void Loaded_Property()
{
SystemConfig systemConfig = ApplicationDomainEx.LiteDbContext.SystemConfig.FindAll().FirstOrDefault();
AlgorithmStrategy strategy = ApplicationDomainEx.CsvContext.AlgorithmStrategys.FirstOrDefault(p => p.ID == (int)this.ViewConfig.StrategyType);
AlgorithmStrategy strategy = ApplicationDomainEx.CsvContext.AlgorithmStrategys.FirstOrDefault(p => p.ID == this.ViewConfig.StrategyID);
// 算法ID
this.ID = $"{ApplicationDomainEx.LOCAL_LOGIC_MAC}__{this.ViewKey}";
......
......@@ -242,6 +242,20 @@ namespace VIZ.H2V.Module
#endregion
#region StrategyID -- 算法ID
private int strategyID;
/// <summary>
/// 算法ID
/// </summary>
public int StrategyID
{
get { return strategyID; }
set { strategyID = value; this.RaisePropertyChanged(nameof(StrategyID)); }
}
#endregion
#region StrategyType -- 算法类型
private AlgorithmStrategyType strategyType = AlgorithmStrategyType.Single;
......
......@@ -90,14 +90,13 @@ namespace VIZ.H2V.Module
{
foreach (AlgorithmProcessModel model in AlgorithmProcessModel.AllProcessModelList)
{
if (model.ProcessID <= 0 || model.Process == null)
if (model.MainProcess == null)
continue;
if (!model.Process.HasExited)
if (!model.MainProcess.HasExited)
continue;
model.ProcessID = 0;
model.Process = null;
model.MainProcess = null;
WPFHelper.BeginInvoke(() =>
{
......
......@@ -41,7 +41,7 @@ namespace VIZ.H2V.Module
// CSV配置
ApplicationDomainEx.CsvContext = new CsvContext();
ApplicationDomainEx.CsvContext.LoadAlgorithmStrategys(algorithm_strategy_path);
ApplicationDomainEx.CsvContext.LoadAlgorithmStrategys(algorithm_strategy_path, ApplicationDomainEx.IS_DEBUG);
ApplicationDomainEx.CsvContext.LoadAlgorithmBorderScenes(algorithm_border_scence_path);
ApplicationDomainEx.CsvContext.LoadClipSystems(clip_system_path);
ApplicationDomainEx.CsvContext.LoadNavigation3DMappings(navigation_3d_mapping_dir);
......
......@@ -6,6 +6,7 @@
xmlns:local="clr-namespace:VIZ.H2V.Module"
xmlns:fcommon="clr-namespace:VIZ.Framework.Common;assembly=VIZ.Framework.Common"
xmlns:behaviors="http://schemas.microsoft.com/xaml/behaviors"
xmlns:toolkit="http://schemas.xceed.com/wpf/xaml/toolkit"
d:DataContext="{d:DesignInstance Type=local:StyleSettingPanelViewModel}"
mc:Ignorable="d"
d:DesignHeight="800" d:DesignWidth="800">
......@@ -17,7 +18,6 @@
<ResourceDictionary Source="/VIZ.H2V.Module.Resource;component/Style/TextBox/TextBox_Setting.xaml"></ResourceDictionary>
<ResourceDictionary Source="/VIZ.H2V.Module.Resource;component/Style/Slider/Slider_Setting.xaml"></ResourceDictionary>
<ResourceDictionary Source="/VIZ.H2V.Module.Resource;component/Style/CheckBox/CheckBox_Setting.xaml"></ResourceDictionary>
<ResourceDictionary Source="/VIZ.Framework.Common.Resource;component/Style/NumberBox/NumberBox.xaml"></ResourceDictionary>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</UserControl.Resources>
......@@ -39,7 +39,7 @@
<RowDefinition Height="60"></RowDefinition>
<RowDefinition Height="60"></RowDefinition>
<RowDefinition Height="60"></RowDefinition>
<RowDefinition Height="60"></RowDefinition>
<RowDefinition Height="70"></RowDefinition>
<RowDefinition Height="60"></RowDefinition>
<RowDefinition Height="*"></RowDefinition>
</Grid.RowDefinitions>
......@@ -121,8 +121,8 @@
<ColumnDefinition Width="*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<TextBlock Text="手动裁切框移动倍率" Foreground="White" FontSize="18" VerticalAlignment="Center" Grid.Row="2"></TextBlock>
<fcommon:NumberBox Grid.Column="1" MinValue="0.1" MaxValue="5" Interval="0.1" Height="40"
Value="{Binding Path=Navigation3DMappingMultiple,Mode=TwoWay}"></fcommon:NumberBox>
<toolkit:DoubleUpDown Grid.Column="1" Minimum="0.1" Maximum="5" Increment="0.1" Height="40"
Value="{Binding Path=Navigation3DMappingMultiple,Mode=TwoWay}"></toolkit:DoubleUpDown>
</Grid>
<!-- 手动裁切框移动 -->
<TextBlock Text="手动裁切框移动平滑系数" Foreground="White" FontSize="18" VerticalAlignment="Center" Grid.Row="7"></TextBlock>
......@@ -135,7 +135,7 @@
<ColumnDefinition Width="80"></ColumnDefinition>
<ColumnDefinition Width="*"></ColumnDefinition>
<ColumnDefinition Width="80"></ColumnDefinition>
<ColumnDefinition Width="80"></ColumnDefinition>
<ColumnDefinition Width="100"></ColumnDefinition>
</Grid.ColumnDefinitions>
<TextBlock Text="非常平滑,移动速度慢" Foreground="#aaffffff" FontSize="14" Grid.ColumnSpan="2" VerticalAlignment="Center" Margin="18,0,0,0"></TextBlock>
<TextBlock Text="一般平滑,移动速度快" Foreground="#aaffffff" FontSize="14" Grid.ColumnSpan="2" Grid.Column="1" HorizontalAlignment="Right" VerticalAlignment="Center" Margin="0,0,24,0"></TextBlock>
......@@ -144,11 +144,10 @@
Minimum="0.001" Maximum="0.2" IsSnapToTickEnabled="True" TickFrequency="0.001"
Value="{Binding Path=ManualSmoothCoeff,Mode=TwoWay}"></Slider>
<TextBlock VerticalAlignment="Center" HorizontalAlignment="Center" Text="0.2" Foreground="White" FontSize="16" Grid.Column="2" Grid.Row="1"></TextBlock>
<fcommon:NumberBox Grid.Column="3" Height="40" IsShowUpAndDownButton="False" Grid.Row="1"
MinValue="0.001" MaxValue="0.2" Interval="0.001"
Value="{Binding Path=ManualSmoothCoeff,Mode=TwoWay}"></fcommon:NumberBox>
<toolkit:DoubleUpDown Grid.Column="3" Height="40" Grid.Row="1"
Minimum="0.001" Maximum="0.2" Increment="0.001"
Value="{Binding Path=ManualSmoothCoeff,Mode=TwoWay}"></toolkit:DoubleUpDown>
</Grid>
</Grid>
</Border>
</UserControl>
\ No newline at end of file
......@@ -115,6 +115,21 @@
<Reference Include="WindowsBase" />
<Reference Include="PresentationCore" />
<Reference Include="PresentationFramework" />
<Reference Include="Xceed.Wpf.AvalonDock, Version=4.4.0.0, Culture=neutral, PublicKeyToken=3e4669d2f30244f4, processorArchitecture=MSIL">
<HintPath>..\packages\Extended.Wpf.Toolkit.4.4.0\lib\net40\Xceed.Wpf.AvalonDock.dll</HintPath>
</Reference>
<Reference Include="Xceed.Wpf.AvalonDock.Themes.Aero, Version=4.4.0.0, Culture=neutral, PublicKeyToken=3e4669d2f30244f4, processorArchitecture=MSIL">
<HintPath>..\packages\Extended.Wpf.Toolkit.4.4.0\lib\net40\Xceed.Wpf.AvalonDock.Themes.Aero.dll</HintPath>
</Reference>
<Reference Include="Xceed.Wpf.AvalonDock.Themes.Metro, Version=4.4.0.0, Culture=neutral, PublicKeyToken=3e4669d2f30244f4, processorArchitecture=MSIL">
<HintPath>..\packages\Extended.Wpf.Toolkit.4.4.0\lib\net40\Xceed.Wpf.AvalonDock.Themes.Metro.dll</HintPath>
</Reference>
<Reference Include="Xceed.Wpf.AvalonDock.Themes.VS2010, Version=4.4.0.0, Culture=neutral, PublicKeyToken=3e4669d2f30244f4, processorArchitecture=MSIL">
<HintPath>..\packages\Extended.Wpf.Toolkit.4.4.0\lib\net40\Xceed.Wpf.AvalonDock.Themes.VS2010.dll</HintPath>
</Reference>
<Reference Include="Xceed.Wpf.Toolkit, Version=4.4.0.0, Culture=neutral, PublicKeyToken=3e4669d2f30244f4, processorArchitecture=MSIL">
<HintPath>..\packages\Extended.Wpf.Toolkit.4.4.0\lib\net40\Xceed.Wpf.Toolkit.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<Page Include="NDIMainView\View\AlgorithmServiceStatusPanelView.xaml">
......
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Extended.Wpf.Toolkit" version="4.4.0" targetFramework="net48" />
<package id="LiteDB" version="5.0.12" targetFramework="net48" />
<package id="log4net" version="2.0.14" targetFramework="net48" />
<package id="Microsoft.Xaml.Behaviors.Wpf" version="1.1.39" targetFramework="net48" />
......
......@@ -13,11 +13,25 @@ namespace VIZ.H2V.Storage
{
/// <summary>
/// 编号
/// <see cref="AlgorithmStrategyType"/>
/// </summary>
public int ID { get; set; }
/// <summary>
/// 是否启用
/// </summary>
public bool IsEnabled { get; set; }
/// <summary>
/// 标记
/// </summary>
public string Tag { get; set; }
/// <summary>
/// 算法类型
/// </summary>
public AlgorithmStrategyType Type { get; set; }
/// <summary>
/// 名称
/// </summary>
public string Name { get; set; }
......@@ -28,8 +42,12 @@ namespace VIZ.H2V.Storage
public string DisplayName { get; set; }
/// <summary>
/// 启动路径(绝对路径 or 相对路径)
/// 主进程路径
/// </summary>
public string SetupPath { get; set; }
/// <remarks>
/// 后缀为 .exe 则直接启动
/// 后缀为 .py 则调用CMD使用 python 命令启动
/// </remarks>
public string MainPath { get; set; }
}
}
......@@ -52,12 +52,25 @@ namespace VIZ.H2V.Storage
/// 加载算法信息
/// </summary>
/// <param name="path">文件路径</param>
public void LoadAlgorithmStrategys(string path)
/// <param name="isDebug">是否是调试模式</param>
public void LoadAlgorithmStrategys(string path, bool isDebug)
{
using (StreamReader sr = new StreamReader(path, Encoding.Default))
using (CsvReader reader = new CsvReader(sr, CultureInfo.InvariantCulture))
{
this.AlgorithmStrategys = reader.GetRecords<AlgorithmStrategy>()?.ToList();
List<AlgorithmStrategy> list = new List<AlgorithmStrategy>();
foreach (AlgorithmStrategy item in reader.GetRecords<AlgorithmStrategy>())
{
if (!item.IsEnabled)
continue;
if (!isDebug && item.Tag == "DEBUG")
continue;
list.Add(item);
}
this.AlgorithmStrategys = list;
}
}
......
......@@ -54,6 +54,11 @@ namespace VIZ.H2V.Storage
public bool IsUseClip { get; set; } = true;
/// <summary>
/// 算法类型ID
/// </summary>
public int StrategyID { get; set; }
/// <summary>
/// 算法类型类型
/// </summary>
public AlgorithmStrategyType StrategyType { get; set; } = AlgorithmStrategyType.Single;
......@@ -62,10 +67,5 @@ namespace VIZ.H2V.Storage
/// 裁切模式
/// </summary>
public AlgorithmStrategyMode StrategyMode { get; set; } = AlgorithmStrategyMode.auto_mode;
/// <summary>
/// 算法进程ID
/// </summary>
public int ProcessID { get; set; }
}
}
......@@ -67,6 +67,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VIZ.H2V.ClipTestTool", "VIZ
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "VIZ.Framework.Core.Navigation3D", "..\VIZ.Framework\VIZ.Framework.Core.Navigation3D\VIZ.Framework.Core.Navigation3D.vcxproj", "{D1AA6399-2000-42BA-A577-D50BC5FCA393}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "03-Driver", "03-Driver", "{EA9A2679-B43B-4D2C-A418-6CA223D55104}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
......
......@@ -9,6 +9,7 @@
<ResourceDictionary Source="/VIZ.Framework.Common.Resource;component/Style/ScrollView/ScrollView_Default.xaml"></ResourceDictionary>
<ResourceDictionary Source="/VIZ.Framework.Common;component/Themes/Generic.xaml"></ResourceDictionary>
<ResourceDictionary Source="/VIZ.H2V.Module.Resource;component/Style/MessageBox/MessageBoxEx.xaml"></ResourceDictionary>
<ResourceDictionary Source="/VIZ.H2V.Module.Resource;component/Toolkit/NumericUpDown/NumericUpDown.xaml"></ResourceDictionary>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
......
......@@ -102,6 +102,21 @@
<Reference Include="WindowsBase" />
<Reference Include="PresentationCore" />
<Reference Include="PresentationFramework" />
<Reference Include="Xceed.Wpf.AvalonDock, Version=4.4.0.0, Culture=neutral, PublicKeyToken=3e4669d2f30244f4, processorArchitecture=MSIL">
<HintPath>..\packages\Extended.Wpf.Toolkit.4.4.0\lib\net40\Xceed.Wpf.AvalonDock.dll</HintPath>
</Reference>
<Reference Include="Xceed.Wpf.AvalonDock.Themes.Aero, Version=4.4.0.0, Culture=neutral, PublicKeyToken=3e4669d2f30244f4, processorArchitecture=MSIL">
<HintPath>..\packages\Extended.Wpf.Toolkit.4.4.0\lib\net40\Xceed.Wpf.AvalonDock.Themes.Aero.dll</HintPath>
</Reference>
<Reference Include="Xceed.Wpf.AvalonDock.Themes.Metro, Version=4.4.0.0, Culture=neutral, PublicKeyToken=3e4669d2f30244f4, processorArchitecture=MSIL">
<HintPath>..\packages\Extended.Wpf.Toolkit.4.4.0\lib\net40\Xceed.Wpf.AvalonDock.Themes.Metro.dll</HintPath>
</Reference>
<Reference Include="Xceed.Wpf.AvalonDock.Themes.VS2010, Version=4.4.0.0, Culture=neutral, PublicKeyToken=3e4669d2f30244f4, processorArchitecture=MSIL">
<HintPath>..\packages\Extended.Wpf.Toolkit.4.4.0\lib\net40\Xceed.Wpf.AvalonDock.Themes.VS2010.dll</HintPath>
</Reference>
<Reference Include="Xceed.Wpf.Toolkit, Version=4.4.0.0, Culture=neutral, PublicKeyToken=3e4669d2f30244f4, processorArchitecture=MSIL">
<HintPath>..\packages\Extended.Wpf.Toolkit.4.4.0\lib\net40\Xceed.Wpf.Toolkit.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<ApplicationDefinition Include="App.xaml">
......
ID,Name,DisplayName,SetupPath
1,单人机位,单人机位,E:\Projects\VIZ.H2V\VIZ.H2V.UdpTestTool\bin\x64\Debug\VIZ.H2V.UdpTestTool.exe
2,近景机位,近景机位,E:\Projects\VIZ.H2V\VIZ.H2V.UdpTestTool\bin\x64\Debug\VIZ.H2V.UdpTestTool.exe
3,16米机位,16米机位,E:\Projects\VIZ.H2V\VIZ.H2V.UdpTestTool\bin\x64\Debug\VIZ.H2V.UdpTestTool.exe
4,战术机位,战术机位,E:\Projects\VIZ.H2V\VIZ.H2V.UdpTestTool\bin\x64\Debug\VIZ.H2V.UdpTestTool.exe
5,索道机位,索道机位,E:\Projects\VIZ.H2V\VIZ.H2V.UdpTestTool\bin\x64\Debug\VIZ.H2V.UdpTestTool.exe
ID,IsEnabled,Tag,Type,Name,DisplayName,MainPath,
1,TRUE,,Single,单人机位,单人机位,E:\Projects\VIZ.H2V\VIZ.H2V.UdpTestTool\bin\x64\Debug\VIZ.H2V.UdpTestTool.exe
2,TRUE,,Near,近景机位,近景机位,E:\Projects\VIZ.H2V\VIZ.H2V.UdpTestTool\bin\x64\Debug\VIZ.H2V.UdpTestTool.exe
3,TRUE,,Sixteen,16米机位,16米机位,E:\Projects\VIZ.H2V\VIZ.H2V.UdpTestTool\bin\x64\Debug\VIZ.H2V.UdpTestTool.exe
4,TRUE,,Tactics,战术机位,战术机位,E:\Projects\VIZ.H2V\VIZ.H2V.UdpTestTool\bin\x64\Debug\VIZ.H2V.UdpTestTool.exe
5,TRUE,,Cableway,索道机位,索道机位,E:\Projects\VIZ.H2V\VIZ.H2V.UdpTestTool\bin\x64\Debug\VIZ.H2V.UdpTestTool.exe
6,TRUE,DEBUG,Single,单人机位,单人机位,E:\Projects\VIZ.H2V\VIZ.H2V.UdpTestTool\bin\x64\Debug\VIZ.H2V.UdpTestTool.exe
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Extended.Wpf.Toolkit" version="4.4.0" targetFramework="net48" />
<package id="LiteDB" version="5.0.12" targetFramework="net48" />
<package id="log4net" version="2.0.14" targetFramework="net48" />
<package id="Microsoft.Xaml.Behaviors.Wpf" version="1.1.39" targetFramework="net48" />
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment