Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
V
VIZ.H2V
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
刘龙飞
VIZ.H2V
Commits
780f3ea9
Commit
780f3ea9
authored
Jul 22, 2022
by
liulongfei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修复检测按钮异常显示问题
parent
d45f1472
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
292 additions
and
175 deletions
+292
-175
VIZ.H2V.Module.Resource/Converter/NDIViewProperty2BoolConverter.cs
+135
-0
VIZ.H2V.Module.Resource/Converter/NDIViewProperty2VisibilityConverter.cs
+137
-0
VIZ.H2V.Module.Resource/Converter/NDIViewStatusAndMode2BoolConverter.cs
+0
-73
VIZ.H2V.Module.Resource/Converter/NDIViewStatusAndMode2VisibilityConverter.cs
+0
-92
VIZ.H2V.Module.Resource/VIZ.H2V.Module.Resource.csproj
+2
-2
VIZ.H2V.Module/NDIMainView/View/NDIMainView.xaml
+2
-2
VIZ.H2V.Module/NDIView/View/NDIView.xaml
+16
-6
No files found.
VIZ.H2V.Module.Resource/Converter/NDIViewProperty2BoolConverter.cs
0 → 100644
View file @
780f3ea9
using
System
;
using
System.Collections.Generic
;
using
System.Globalization
;
using
System.Linq
;
using
System.Text
;
using
System.Threading.Tasks
;
using
System.Windows.Data
;
using
VIZ.H2V.Domain
;
using
VIZ.H2V.Storage
;
namespace
VIZ.H2V.Module.Resource
{
/// <summary>
/// NDI视图属性 -> 面板是否可用转化器
/// 参数1 -- 当前视图状态
/// 参数2 -- 当前算法模式
/// 参数2 -- 当前算法类型
/// </summary>
public
class
NDIViewProperty2BoolConverter
:
IMultiValueConverter
{
#
region
ViewStatusListString
--
状态列表字符串
private
string
viewStatusListString
;
/// <summary>
/// 状态列表字符串
/// </summary>
public
string
ViewStatusListString
{
get
{
return
viewStatusListString
;
}
set
{
viewStatusListString
=
value
;
string
[]
items
=
value
.
Split
(
','
);
List
<
NDIViewStatus
>
list
=
new
List
<
NDIViewStatus
>();
foreach
(
string
item
in
items
)
{
list
.
Add
((
NDIViewStatus
)
Enum
.
Parse
(
typeof
(
NDIViewStatus
),
item
.
Trim
()));
}
this
.
viewStatusList
=
list
;
}
}
/// <summary>
/// 视图状态列表
/// </summary>
private
List
<
NDIViewStatus
>
viewStatusList
;
#
endregion
#
region
StrategyTypeListString
--
算法列表字符串
private
string
strategyTypeListString
;
/// <summary>
/// 算法列表字符串
/// </summary>
public
string
StrategyTypeListString
{
get
{
return
strategyTypeListString
;
}
set
{
strategyTypeListString
=
value
;
string
[]
items
=
value
.
Split
(
','
);
List
<
AlgorithmStrategyType
>
list
=
new
List
<
AlgorithmStrategyType
>();
foreach
(
string
item
in
items
)
{
list
.
Add
((
AlgorithmStrategyType
)
Enum
.
Parse
(
typeof
(
AlgorithmStrategyType
),
item
.
Trim
()));
}
this
.
strategyTypeList
=
list
;
}
}
/// <summary>
/// 算法列表
/// </summary>
private
List
<
AlgorithmStrategyType
>
strategyTypeList
;
#
endregion
#
region
StrategyModeListString
--
算法模式列表字符串
private
string
strategyModeListString
;
/// <summary>
/// 算法模式列表字符串
/// </summary>
public
string
StrategyModeListString
{
get
{
return
strategyModeListString
;
}
set
{
string
[]
items
=
value
.
Split
(
','
);
List
<
AlgorithmStrategyMode
>
list
=
new
List
<
AlgorithmStrategyMode
>();
foreach
(
string
item
in
items
)
{
list
.
Add
((
AlgorithmStrategyMode
)
Enum
.
Parse
(
typeof
(
AlgorithmStrategyMode
),
item
.
Trim
()));
}
this
.
strategyModeList
=
list
;
}
}
/// <summary>
/// 算法模式列表
/// </summary>
private
List
<
AlgorithmStrategyMode
>
strategyModeList
;
#
endregion
public
object
Convert
(
object
[]
values
,
Type
targetType
,
object
parameter
,
CultureInfo
culture
)
{
if
(
values
==
null
||
values
.
Length
<
3
||
!(
values
[
0
]
is
NDIViewStatus
)
||
!(
values
[
1
]
is
AlgorithmStrategyMode
)
||
!(
values
[
2
]
is
AlgorithmStrategyType
))
return
false
;
NDIViewStatus
status
=
(
NDIViewStatus
)
values
[
0
];
AlgorithmStrategyMode
mode
=
(
AlgorithmStrategyMode
)
values
[
1
];
AlgorithmStrategyType
type
=
(
AlgorithmStrategyType
)
values
[
2
];
return
this
.
viewStatusList
.
Contains
(
status
)
&&
this
.
strategyModeList
.
Contains
(
mode
)
&&
this
.
strategyTypeList
.
Contains
(
type
);
}
public
object
[]
ConvertBack
(
object
value
,
Type
[]
targetTypes
,
object
parameter
,
CultureInfo
culture
)
{
throw
new
NotImplementedException
();
}
}
}
\ No newline at end of file
VIZ.H2V.Module.Resource/Converter/NDIViewProperty2VisibilityConverter.cs
0 → 100644
View file @
780f3ea9
using
System
;
using
System.Collections.Generic
;
using
System.Globalization
;
using
System.Linq
;
using
System.Text
;
using
System.Threading.Tasks
;
using
System.Windows.Data
;
using
VIZ.H2V.Domain
;
using
VIZ.H2V.Storage
;
using
System.Windows
;
namespace
VIZ.H2V.Module.Resource
{
/// <summary>
/// NDI视图属性 -> 面板可见性转化器
/// 参数1 -- 当前视图状态
/// 参数2 -- 当前算法模式
/// 参数2 -- 当前算法类型
/// </summary>
public
class
NDIViewProperty2VisibilityConverter
:
IMultiValueConverter
{
#
region
ViewStatusListString
--
状态列表字符串
private
string
viewStatusListString
;
/// <summary>
/// 状态列表字符串
/// </summary>
public
string
ViewStatusListString
{
get
{
return
viewStatusListString
;
}
set
{
viewStatusListString
=
value
;
string
[]
items
=
value
.
Split
(
','
);
List
<
NDIViewStatus
>
list
=
new
List
<
NDIViewStatus
>();
foreach
(
string
item
in
items
)
{
list
.
Add
((
NDIViewStatus
)
Enum
.
Parse
(
typeof
(
NDIViewStatus
),
item
.
Trim
()));
}
this
.
viewStatusList
=
list
;
}
}
/// <summary>
/// 视图状态列表
/// </summary>
private
List
<
NDIViewStatus
>
viewStatusList
;
#
endregion
#
region
StrategyTypeListString
--
算法列表字符串
private
string
strategyTypeListString
;
/// <summary>
/// 算法列表字符串
/// </summary>
public
string
StrategyTypeListString
{
get
{
return
strategyTypeListString
;
}
set
{
strategyTypeListString
=
value
;
string
[]
items
=
value
.
Split
(
','
);
List
<
AlgorithmStrategyType
>
list
=
new
List
<
AlgorithmStrategyType
>();
foreach
(
string
item
in
items
)
{
list
.
Add
((
AlgorithmStrategyType
)
Enum
.
Parse
(
typeof
(
AlgorithmStrategyType
),
item
.
Trim
()));
}
this
.
strategyTypeList
=
list
;
}
}
/// <summary>
/// 算法列表
/// </summary>
private
List
<
AlgorithmStrategyType
>
strategyTypeList
;
#
endregion
#
region
StrategyModeListString
--
算法模式列表字符串
private
string
strategyModeListString
;
/// <summary>
/// 算法模式列表字符串
/// </summary>
public
string
StrategyModeListString
{
get
{
return
strategyModeListString
;
}
set
{
string
[]
items
=
value
.
Split
(
','
);
List
<
AlgorithmStrategyMode
>
list
=
new
List
<
AlgorithmStrategyMode
>();
foreach
(
string
item
in
items
)
{
list
.
Add
((
AlgorithmStrategyMode
)
Enum
.
Parse
(
typeof
(
AlgorithmStrategyMode
),
item
.
Trim
()));
}
this
.
strategyModeList
=
list
;
}
}
/// <summary>
/// 算法模式列表
/// </summary>
private
List
<
AlgorithmStrategyMode
>
strategyModeList
;
#
endregion
public
object
Convert
(
object
[]
values
,
Type
targetType
,
object
parameter
,
CultureInfo
culture
)
{
if
(
values
==
null
||
values
.
Length
<
3
||
!(
values
[
0
]
is
NDIViewStatus
)
||
!(
values
[
1
]
is
AlgorithmStrategyMode
)
||
!(
values
[
2
]
is
AlgorithmStrategyType
))
return
false
;
NDIViewStatus
status
=
(
NDIViewStatus
)
values
[
0
];
AlgorithmStrategyMode
mode
=
(
AlgorithmStrategyMode
)
values
[
1
];
AlgorithmStrategyType
type
=
(
AlgorithmStrategyType
)
values
[
2
];
return
this
.
viewStatusList
.
Contains
(
status
)
&&
this
.
strategyModeList
.
Contains
(
mode
)
&&
this
.
strategyTypeList
.
Contains
(
type
)
?
Visibility
.
Visible
:
Visibility
.
Collapsed
;
}
public
object
[]
ConvertBack
(
object
value
,
Type
[]
targetTypes
,
object
parameter
,
CultureInfo
culture
)
{
throw
new
NotImplementedException
();
}
}
}
\ No newline at end of file
VIZ.H2V.Module.Resource/Converter/NDIViewStatusAndMode2BoolConverter.cs
deleted
100644 → 0
View file @
d45f1472
using
System
;
using
System.Collections.Generic
;
using
System.Globalization
;
using
System.Linq
;
using
System.Text
;
using
System.Threading.Tasks
;
using
System.Windows.Data
;
using
VIZ.H2V.Domain
;
using
VIZ.H2V.Storage
;
namespace
VIZ.H2V.Module.Resource
{
/// <summary>
/// NDI视图状态 -> 面板是否可用转化器
/// </summary>
public
class
NDIViewStatusAndMode2BoolConverter
:
IMultiValueConverter
{
#
region
TrueListString
--
为
True
的值
private
string
trueListStringmyVar
;
/// <summary>
/// 为True的值
/// </summary>
public
string
TrueListString
{
get
{
return
trueListStringmyVar
;
}
set
{
trueListStringmyVar
=
value
;
string
[]
items
=
value
.
Split
(
','
);
List
<
NDIViewStatus
>
list
=
new
List
<
NDIViewStatus
>();
foreach
(
string
item
in
items
)
{
NDIViewStatus
status
=
(
NDIViewStatus
)
Enum
.
Parse
(
typeof
(
NDIViewStatus
),
item
.
Trim
());
list
.
Add
(
status
);
}
this
.
trueList
=
list
;
}
}
private
List
<
NDIViewStatus
>
trueList
=
new
List
<
NDIViewStatus
>();
#
endregion
#
region
Mode
--
算法模式
/// <summary>
/// 算法模式
/// </summary>
public
AlgorithmStrategyMode
Mode
{
get
;
set
;
}
#
endregion
public
object
Convert
(
object
[]
values
,
Type
targetType
,
object
parameter
,
CultureInfo
culture
)
{
if
(
values
==
null
||
values
.
Length
<
2
||
!(
values
[
0
]
is
AlgorithmStrategyMode
)
||
!(
values
[
1
]
is
NDIViewStatus
))
return
false
;
AlgorithmStrategyMode
mode
=
(
AlgorithmStrategyMode
)
values
[
0
];
NDIViewStatus
status
=
(
NDIViewStatus
)
values
[
1
];
return
this
.
Mode
==
mode
&&
this
.
trueList
.
Contains
(
status
);
}
public
object
[]
ConvertBack
(
object
value
,
Type
[]
targetTypes
,
object
parameter
,
CultureInfo
culture
)
{
throw
new
NotImplementedException
();
}
}
}
\ No newline at end of file
VIZ.H2V.Module.Resource/Converter/NDIViewStatusAndMode2VisibilityConverter.cs
deleted
100644 → 0
View file @
d45f1472
using
System
;
using
System.Collections.Generic
;
using
System.Globalization
;
using
System.Linq
;
using
System.Text
;
using
System.Threading.Tasks
;
using
System.Windows.Data
;
using
VIZ.H2V.Domain
;
using
VIZ.H2V.Storage
;
using
System.Windows
;
namespace
VIZ.H2V.Module.Resource
{
/// <summary>
/// NDI视图状态 -> 面板可见性转化器
/// </summary>
public
class
NDIViewStatusAndMode2VisibilityConverter
:
IMultiValueConverter
{
#
region
TrueVisibility
--
为真时的返回值
/// <summary>
/// 为真时的返回值
/// </summary>
public
Visibility
TrueVisibility
{
get
;
set
;
}
=
Visibility
.
Visible
;
#
endregion
#
region
FalseVisibility
--
为假时的返回值
/// <summary>
/// 为假时的返回值
/// </summary>
public
Visibility
FalseVisibility
{
get
;
set
;
}
=
Visibility
.
Hidden
;
#
endregion
#
region
TrueListString
--
为
True
的值
private
string
trueListStringmyVar
;
/// <summary>
/// 为True的值
/// </summary>
public
string
TrueListString
{
get
{
return
trueListStringmyVar
;
}
set
{
trueListStringmyVar
=
value
;
string
[]
items
=
value
.
Split
(
','
);
List
<
NDIViewStatus
>
list
=
new
List
<
NDIViewStatus
>();
foreach
(
string
item
in
items
)
{
NDIViewStatus
status
=
(
NDIViewStatus
)
Enum
.
Parse
(
typeof
(
NDIViewStatus
),
item
.
Trim
());
list
.
Add
(
status
);
}
this
.
trueList
=
list
;
}
}
private
List
<
NDIViewStatus
>
trueList
=
new
List
<
NDIViewStatus
>();
#
endregion
#
region
Mode
--
算法模式
/// <summary>
/// 算法模式
/// </summary>
public
AlgorithmStrategyMode
Mode
{
get
;
set
;
}
#
endregion
public
object
Convert
(
object
[]
values
,
Type
targetType
,
object
parameter
,
CultureInfo
culture
)
{
if
(
values
==
null
||
values
.
Length
<
2
||
!(
values
[
0
]
is
AlgorithmStrategyMode
)
||
!(
values
[
1
]
is
NDIViewStatus
))
return
false
;
AlgorithmStrategyMode
mode
=
(
AlgorithmStrategyMode
)
values
[
0
];
NDIViewStatus
status
=
(
NDIViewStatus
)
values
[
1
];
return
(
this
.
Mode
==
mode
&&
this
.
trueList
.
Contains
(
status
))
?
this
.
TrueVisibility
:
this
.
FalseVisibility
;
}
public
object
[]
ConvertBack
(
object
value
,
Type
[]
targetTypes
,
object
parameter
,
CultureInfo
culture
)
{
throw
new
NotImplementedException
();
}
}
}
\ No newline at end of file
VIZ.H2V.Module.Resource/VIZ.H2V.Module.Resource.csproj
View file @
780f3ea9
...
...
@@ -104,8 +104,8 @@
</Page>
</ItemGroup>
<ItemGroup>
<Compile Include="Converter\NDIView
StatusAndMode
2VisibilityConverter.cs" />
<Compile Include="Converter\NDIView
StatusAndMode
2BoolConverter.cs" />
<Compile Include="Converter\NDIView
Property
2VisibilityConverter.cs" />
<Compile Include="Converter\NDIView
Property
2BoolConverter.cs" />
<Compile Include="Converter\NDIViewStatus2BoolConverter.cs" />
<Compile Include="Properties\AssemblyInfo.cs">
<SubType>Code</SubType>
...
...
VIZ.H2V.Module/NDIMainView/View/NDIMainView.xaml
View file @
780f3ea9
...
...
@@ -46,9 +46,9 @@
<ColumnDefinition Width="*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<local:NDIView NDIKey="{x:Static Member=domain:NDIViewKeys.CAM_1}" Grid.Row="0" Grid.Column="0" Margin="30"></local:NDIView>
<local:NDIView NDIKey="{x:Static Member=domain:NDIViewKeys.CAM_2}" Grid.Row="0" Grid.Column="1" Margin="30"></local:NDIView>
<
!--<
local:NDIView NDIKey="{x:Static Member=domain:NDIViewKeys.CAM_2}" Grid.Row="0" Grid.Column="1" Margin="30"></local:NDIView>
<local:NDIView NDIKey="{x:Static Member=domain:NDIViewKeys.CAM_3}" Grid.Row="1" Grid.Column="0" Margin="30"></local:NDIView>
<local:NDIView NDIKey="{x:Static Member=domain:NDIViewKeys.CAM_4}" Grid.Row="1" Grid.Column="1" Margin="30"></local:NDIView>
<local:NDIView NDIKey="{x:Static Member=domain:NDIViewKeys.CAM_4}" Grid.Row="1" Grid.Column="1" Margin="30"></local:NDIView>
-->
</Grid>
<!-- 底部 -->
<Border Grid.Row="2" Background="#ff12202d">
...
...
VIZ.H2V.Module/NDIView/View/NDIView.xaml
View file @
780f3ea9
...
...
@@ -24,8 +24,16 @@
<fcore:Bool2BoolConverter x:Key="Bool2BoolConverter"></fcore:Bool2BoolConverter>
<resource:NDIViewStatus2BoolConverter x:Key="NDIViewStatus2IsEnabledConverter" TrueListString="Detect,CropRoi"></resource:NDIViewStatus2BoolConverter>
<resource:NDIViewStatus2BoolConverter x:Key="NDIViewStatus2IsEnabledConverter_SettingButton" TrueListString="Stop,Detect,CropRoi"></resource:NDIViewStatus2BoolConverter>
<resource:NDIViewStatusAndMode2VisibilityConverter x:Key="NDIViewStatusAndMode2VisibilityConverter_DetectButton" TrueListString="Detect,CropRoi" Mode="auto_mode"></resource:NDIViewStatusAndMode2VisibilityConverter>
<resource:NDIViewStatusAndMode2BoolConverter x:Key="NDIViewStatusAndMode2BoolConverter_DetectButton" TrueListString="CropRoi" Mode="auto_mode"></resource:NDIViewStatusAndMode2BoolConverter>
<resource:NDIViewProperty2VisibilityConverter x:Key="NDIViewProperty2VisibilityConverter_DetectButton"
ViewStatusListString="Detect,CropRoi"
StrategyModeListString="auto_mode"
StrategyTypeListString="Single">
</resource:NDIViewProperty2VisibilityConverter>
<resource:NDIViewProperty2BoolConverter x:Key="NDIViewProperty2BoolConverter_DetectButton"
ViewStatusListString="CropRoi"
StrategyModeListString="auto_mode"
StrategyTypeListString="Single">
</resource:NDIViewProperty2BoolConverter>
</ResourceDictionary>
</UserControl.Resources>
...
...
@@ -100,15 +108,17 @@
Height="40" Width="120" HorizontalAlignment="Right" Margin="0,0,10,0"
Command="{Binding Path=DetectCommand}">
<Button.IsEnabled>
<MultiBinding Converter="{StaticResource NDIViewStatusAndMode2BoolConverter_DetectButton}">
<Binding Path="StrategyMode"></Binding>
<MultiBinding Converter="{StaticResource NDIViewProperty2BoolConverter_DetectButton}">
<Binding Path="ViewStatus"></Binding>
<Binding Path="StrategyMode"></Binding>
<Binding Path="StrategyType"></Binding>
</MultiBinding>
</Button.IsEnabled>
<Button.Visibility>
<MultiBinding Converter="{StaticResource NDIViewStatusAndMode2VisibilityConverter_DetectButton}">
<Binding Path="StrategyMode"></Binding>
<MultiBinding Converter="{StaticResource NDIViewProperty2VisibilityConverter_DetectButton}">
<Binding Path="ViewStatus"></Binding>
<Binding Path="StrategyMode"></Binding>
<Binding Path="StrategyType"></Binding>
</MultiBinding>
</Button.Visibility>
</Button>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment