EgtCAM5 2.2f4 :
- Spostamento Parametri e metodi lettura/scrittura delle Operazioni in EgtWPFLib5 - Creazione diverse "paginette" per ciascun tipo di Operazione
This commit is contained in:
@@ -14,6 +14,7 @@
|
||||
Public Const MSG_TOOLSDBPAGE As Integer = MSG_EGTCAM5 + 1000
|
||||
Public Const MSG_TOOLSERRORS As Integer = MSG_EGTCAM5 + 1100
|
||||
Public Const MSG_MACHININGSDBPAGE As Integer = MSG_EGTCAM5 + 1200
|
||||
Public Const MSG_MACHININGDB As Integer = MSG_EGTWPFLIB5 + 1200
|
||||
Public Const MSG_MACHININGSERRORS As Integer = MSG_EGTCAM5 + 1370
|
||||
Public Const MSG_MACHININGOPTIONPAGE As Integer = MSG_EGTCAM5 + 1400
|
||||
Public Const MSG_SETUP As Integer = MSG_EGTCAM5 + 1450
|
||||
|
||||
@@ -155,6 +155,45 @@
|
||||
<DependentUpon>CurrSetUpV.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="CurrSetUp\CurrSetUpVM.vb" />
|
||||
<Compile Include="OptionPanel\MachiningOptionPanel\OperationExpander\MachiningParameterExpander\StoneMillingParameterExpanderV.xaml.vb">
|
||||
<DependentUpon>StoneMillingParameterExpanderV.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="OptionPanel\MachiningOptionPanel\OperationExpander\MachiningParameterExpander\ChiselingParameterExpanderV.xaml.vb">
|
||||
<DependentUpon>ChiselingParameterExpanderV.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="OptionPanel\MachiningOptionPanel\OperationExpander\MachiningParameterExpander\StoneSawRoughingParameterExpanderV.xaml.vb">
|
||||
<DependentUpon>StoneSawRoughingParameterExpanderV.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="OptionPanel\MachiningOptionPanel\OperationExpander\MachiningParameterExpander\StoneSawFinishingParameterExpanderV.xaml.vb">
|
||||
<DependentUpon>StoneSawFinishingParameterExpanderV.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="OptionPanel\MachiningOptionPanel\OperationExpander\MachiningParameterExpander\StoneDrillingParameterExpanderV.xaml.vb">
|
||||
<DependentUpon>StoneDrillingParameterExpanderV.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="OptionPanel\MachiningOptionPanel\OperationExpander\MachiningParameterExpander\WoodDrillingParameterExpanderV.xaml.vb">
|
||||
<DependentUpon>WoodDrillingParameterExpanderV.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="OptionPanel\MachiningOptionPanel\OperationExpander\MachiningParameterExpander\PocketingParameterExpanderV.xaml.vb">
|
||||
<DependentUpon>PocketingParameterExpanderV.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="OptionPanel\MachiningOptionPanel\OperationExpander\MachiningParameterExpander\MortisingParameterExpanderV.xaml.vb">
|
||||
<DependentUpon>MortisingParameterExpanderV.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="OptionPanel\MachiningOptionPanel\OperationExpander\MachiningParameterExpander\BeamMillingParameterExpanderV.xaml.vb">
|
||||
<DependentUpon>BeamMillingParameterExpanderV.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="OptionPanel\MachiningOptionPanel\OperationExpander\MachiningParameterExpander\WaterjettingParameterExpanderV.xaml.vb">
|
||||
<DependentUpon>WaterjettingParameterExpanderV.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="OptionPanel\MachiningOptionPanel\OperationExpander\MachiningParameterExpander\WoodMillingParameterExpanderV.xaml.vb">
|
||||
<DependentUpon>WoodMillingParameterExpanderV.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="OptionPanel\MachiningOptionPanel\OperationExpander\MachiningParameterExpander\WoodSawingParameterExpanderV.xaml.vb">
|
||||
<DependentUpon>WoodSawingParameterExpanderV.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="OptionPanel\MachiningOptionPanel\OperationExpander\MachiningParameterExpander\StoneSawingParameterExpanderV.xaml.vb">
|
||||
<DependentUpon>StoneSawingParameterExpanderV.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="OptionsWindow\MachineBox.xaml.vb">
|
||||
<DependentUpon>MachineBox.xaml</DependentUpon>
|
||||
</Compile>
|
||||
@@ -374,6 +413,58 @@
|
||||
<SubType>Designer</SubType>
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</Page>
|
||||
<Page Include="OptionPanel\MachiningOptionPanel\OperationExpander\MachiningParameterExpander\StoneMillingParameterExpanderV.xaml">
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
</Page>
|
||||
<Page Include="OptionPanel\MachiningOptionPanel\OperationExpander\MachiningParameterExpander\ChiselingParameterExpanderV.xaml">
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
</Page>
|
||||
<Page Include="OptionPanel\MachiningOptionPanel\OperationExpander\MachiningParameterExpander\StoneSawRoughingParameterExpanderV.xaml">
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
</Page>
|
||||
<Page Include="OptionPanel\MachiningOptionPanel\OperationExpander\MachiningParameterExpander\StoneSawFinishingParameterExpanderV.xaml">
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
</Page>
|
||||
<Page Include="OptionPanel\MachiningOptionPanel\OperationExpander\MachiningParameterExpander\StoneDrillingParameterExpanderV.xaml">
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
</Page>
|
||||
<Page Include="OptionPanel\MachiningOptionPanel\OperationExpander\MachiningParameterExpander\WoodDrillingParameterExpanderV.xaml">
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
</Page>
|
||||
<Page Include="OptionPanel\MachiningOptionPanel\OperationExpander\MachiningParameterExpander\PocketingParameterExpanderV.xaml">
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
</Page>
|
||||
<Page Include="OptionPanel\MachiningOptionPanel\OperationExpander\MachiningParameterExpander\MortisingParameterExpanderV.xaml">
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
</Page>
|
||||
<Page Include="OptionPanel\MachiningOptionPanel\OperationExpander\MachiningParameterExpander\BeamMillingParameterExpanderV.xaml">
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
</Page>
|
||||
<Page Include="OptionPanel\MachiningOptionPanel\OperationExpander\MachiningParameterExpander\WaterjettingParameterExpanderV.xaml">
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
</Page>
|
||||
<Page Include="OptionPanel\MachiningOptionPanel\OperationExpander\MachiningParameterExpander\WoodMillingParameterExpanderV.xaml">
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
</Page>
|
||||
<Page Include="OptionPanel\MachiningOptionPanel\OperationExpander\MachiningParameterExpander\WoodSawingParameterExpanderV.xaml">
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
</Page>
|
||||
<Page Include="OptionPanel\MachiningOptionPanel\OperationExpander\MachiningParameterExpander\StoneSawingParameterExpanderV.xaml">
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
</Page>
|
||||
<Page Include="OptionsWindow\MachineBox.xaml">
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
<SubType>Designer</SubType>
|
||||
|
||||
@@ -70,5 +70,5 @@ Imports System.Windows
|
||||
' by using the '*' as shown below:
|
||||
' <Assembly: AssemblyVersion("1.0.*")>
|
||||
|
||||
<Assembly: AssemblyVersion("2.2.6.3")>
|
||||
<Assembly: AssemblyFileVersion("2.2.6.3")>
|
||||
<Assembly: AssemblyVersion("2.2.6.4")>
|
||||
<Assembly: AssemblyFileVersion("2.2.6.4")>
|
||||
|
||||
+322
@@ -0,0 +1,322 @@
|
||||
<UserControl x:Class="BeamMillingParameterExpanderV"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:sys="clr-namespace:System;assembly=mscorlib"
|
||||
xmlns:Interactivity="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
|
||||
xmlns:EgtCAM5="clr-namespace:EgtCAM5"
|
||||
xmlns:EgtWPFLib5="clr-namespace:EgtWPFLib5;assembly=EgtWPFLib5">
|
||||
|
||||
<UserControl.Resources>
|
||||
<EgtCAM5:OperationParamVisibilityConverter x:Key="OperationParamVisibilityConverter"/>
|
||||
<EgtCAM5:DepthUnitConverter x:Key="DepthUnitConverter"/>
|
||||
<sys:Int32 x:Key="Invert">0</sys:Int32>
|
||||
<sys:Int32 x:Key="LeaveTab">1</sys:Int32>
|
||||
<sys:Int32 x:Key="WorkSide">2</sys:Int32>
|
||||
<sys:Int32 x:Key="HeadSide">3</sys:Int32>
|
||||
<sys:Int32 x:Key="LeadInType">4</sys:Int32>
|
||||
<sys:Int32 x:Key="ExtLinkType">5</sys:Int32>
|
||||
<sys:Int32 x:Key="LeadOutType">6</sys:Int32>
|
||||
<sys:Int32 x:Key="CurveUse">7</sys:Int32>
|
||||
<sys:Int32 x:Key="StepType">8</sys:Int32>
|
||||
<sys:Int32 x:Key="LeadLinkType">9</sys:Int32>
|
||||
<sys:Int32 x:Key="Speed">10</sys:Int32>
|
||||
<sys:Int32 x:Key="Feed">11</sys:Int32>
|
||||
<sys:Int32 x:Key="StartFeed">12</sys:Int32>
|
||||
<sys:Int32 x:Key="EndFeed">13</sys:Int32>
|
||||
<sys:Int32 x:Key="TipFeed">14</sys:Int32>
|
||||
<sys:Int32 x:Key="OffSr">15</sys:Int32>
|
||||
<sys:Int32 x:Key="OffSl">16</sys:Int32>
|
||||
<sys:Int32 x:Key="SideAngle">17</sys:Int32>
|
||||
<sys:Int32 x:Key="Approx">18</sys:Int32>
|
||||
<sys:Int32 x:Key="StartPos">19</sys:Int32>
|
||||
<sys:Int32 x:Key="StartSlowLen">20</sys:Int32>
|
||||
<sys:Int32 x:Key="EndSlowLen">21</sys:Int32>
|
||||
<sys:Int32 x:Key="ThrouAddLen">22</sys:Int32>
|
||||
<sys:Int32 x:Key="StepPar">23</sys:Int32>
|
||||
<sys:Int32 x:Key="ReturnPos">24</sys:Int32>
|
||||
<sys:Int32 x:Key="TabLen">25</sys:Int32>
|
||||
<sys:Int32 x:Key="TabDist">26</sys:Int32>
|
||||
<sys:Int32 x:Key="TabHeight">27</sys:Int32>
|
||||
<sys:Int32 x:Key="TabAngle">28</sys:Int32>
|
||||
<sys:Int32 x:Key="LiTang">29</sys:Int32>
|
||||
<sys:Int32 x:Key="LiPerp">30</sys:Int32>
|
||||
<sys:Int32 x:Key="LiElev">31</sys:Int32>
|
||||
<sys:Int32 x:Key="LiCompLen">32</sys:Int32>
|
||||
<sys:Int32 x:Key="LoTang">33</sys:Int32>
|
||||
<sys:Int32 x:Key="LoPerp">34</sys:Int32>
|
||||
<sys:Int32 x:Key="LoElev">35</sys:Int32>
|
||||
<sys:Int32 x:Key="LoCompLen">36</sys:Int32>
|
||||
<sys:Int32 x:Key="StartAddLen">37</sys:Int32>
|
||||
<sys:Int32 x:Key="EndAddLen">38</sys:Int32>
|
||||
<sys:Int32 x:Key="StepExtArc">39</sys:Int32>
|
||||
<sys:Int32 x:Key="StepIntArc">40</sys:Int32>
|
||||
<sys:Int32 x:Key="SideStep">41</sys:Int32>
|
||||
<sys:Int32 x:Key="VertFeed">42</sys:Int32>
|
||||
<sys:Int32 x:Key="NamePar">43</sys:Int32>
|
||||
<sys:Int32 x:Key="Tool">44</sys:Int32>
|
||||
<sys:Int32 x:Key="DepthStr">45</sys:Int32>
|
||||
<sys:Int32 x:Key="UserNotes">46</sys:Int32>
|
||||
<sys:Int32 x:Key="OverLapStr">47</sys:Int32>
|
||||
<sys:Int32 x:Key="OffsetStr">48</sys:Int32>
|
||||
<sys:Int32 x:Key="SubType">49</sys:Int32>
|
||||
<sys:Int32 x:Key="SolChoiceType">50</sys:Int32>
|
||||
<sys:Int32 x:Key="AxRotRef">51</sys:Int32>
|
||||
<sys:Int32 x:Key="BlockedAxesRef">52</sys:Int32>
|
||||
<sys:Int32 x:Key="FaceUseType">53</sys:Int32>
|
||||
<sys:Int32 x:Key="InvertToolDir">54</sys:Int32>
|
||||
<sys:Int32 x:Key="ExpanderLeadIn">55</sys:Int32>
|
||||
<sys:Int32 x:Key="ExpanderLeadOut">56</sys:Int32>
|
||||
<sys:Int32 x:Key="ApproxGen">57</sys:Int32>
|
||||
<sys:Int32 x:Key="OscEnable">58</sys:Int32>
|
||||
<sys:Int32 x:Key="OscHeight">59</sys:Int32>
|
||||
<sys:Int32 x:Key="OscRampLen">60</sys:Int32>
|
||||
<sys:Int32 x:Key="OscFlatLen">61</sys:Int32>
|
||||
</UserControl.Resources>
|
||||
|
||||
<StackPanel Name="OperationParametersStackPanel">
|
||||
<StackPanel Name="OperationFirstParametersStackPanel">
|
||||
<UniformGrid Columns="2">
|
||||
<TextBlock Text="{Binding DepthMsg}" Style="{DynamicResource MPExpander_DepthTxBlMargin}"/>
|
||||
<EgtWPFLib5:EgtTextBox Text="{Binding DepthStr, UpdateSourceTrigger=PropertyChanged,
|
||||
Converter={StaticResource DepthUnitConverter}}"
|
||||
Style="{DynamicResource MPExpander_DepthTxBxMargin}"/>
|
||||
</UniformGrid>
|
||||
<EgtWPFLib5:CheckParamV
|
||||
ParamTxBl="{Binding InvertMsg}"
|
||||
ParamChBx="{Binding Path=Invert,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource CheckParamV_Margin}"/>
|
||||
<EgtWPFLib5:ComboParamV
|
||||
ParamTxBl="{Binding WorkSideMsg}"
|
||||
ParamCmBxList="{Binding Path=WorkSideList,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
ParamCmBxSelIndex="{Binding Path=SelectedWorkSide}"
|
||||
Style="{DynamicResource ComboParamV_Margin}"/>
|
||||
<UniformGrid Columns="2">
|
||||
<TextBlock Text="{Binding UserNotesMsg}"
|
||||
Style="{DynamicResource MPExpander_UserNotesTxBlMargin}"/>
|
||||
<EgtWPFLib5:EgtTextBox Text="{Binding UserNotes, UpdateSourceTrigger=PropertyChanged}"
|
||||
Style="{DynamicResource MPExpander_UserNotesTxBxMargin}">
|
||||
<EgtWPFLib5:EgtTextBox.ToolTip>
|
||||
<TextBlock Text="{Binding UserNotesTooltip}"/>
|
||||
</EgtWPFLib5:EgtTextBox.ToolTip>
|
||||
</EgtWPFLib5:EgtTextBox>
|
||||
</UniformGrid>
|
||||
</StackPanel>
|
||||
<StackPanel Name="AutomaticCloseExpanderStackPanel">
|
||||
<Expander Header="{Binding GenericExpanderHeader}" Name="GenericExpander"
|
||||
Style="{StaticResource ExpanderStyle}" Margin="0,1,0,1">
|
||||
<StackPanel>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding StartPosMsg}"
|
||||
ParamTxBx="{Binding Path=StartPos,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding OverLapMsg}"
|
||||
ParamTxBx="{Binding Path=OverLap,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:ComboParamV
|
||||
ParamTxBl="{Binding StepTypeMsg}"
|
||||
ParamCmBxList="{Binding Path=StepTypeList,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
ParamCmBxSelIndex="{Binding Path=SelectedStepType}"
|
||||
Style="{DynamicResource ComboParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding StepParMsg}"
|
||||
ParamTxBx="{Binding Path=StepPar,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding OffsetSrMsg}"
|
||||
ParamTxBx="{Binding Path=OffSr,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding OffsetSlMsg}"
|
||||
ParamTxBx="{Binding Path=OffSl,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
</StackPanel>
|
||||
</Expander>
|
||||
|
||||
<Expander Header="{Binding AdvancedParamMsg}" Name="AdvancedParam"
|
||||
Style="{StaticResource ExpanderStyle}" Margin="0,1,0,1">
|
||||
<StackPanel>
|
||||
<EgtWPFLib5:CheckParamV
|
||||
ParamTxBl="{Binding InvertToolDirMsg}"
|
||||
ParamChBx="{Binding Path=ToolInvert,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource CheckParamV_Margin}"/>
|
||||
<EgtWPFLib5:ComboParamV
|
||||
ParamTxBl="{Binding FaceUseTypeMsg}"
|
||||
ParamCmBxList="{Binding Path=FaceUseTypeList,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
ParamCmBxSelIndex="{Binding Path=SelectedFaceUseType}"
|
||||
Style="{DynamicResource ComboParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding InitAngsMsg}"
|
||||
ParamTxBx="{Binding Path=InitAngs,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding BlockedAxisMsg}"
|
||||
ParamTxBx="{Binding Path=BlockedAxis,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:ComboParamV
|
||||
ParamTxBl="{Binding SolChoiceTypeMsg}"
|
||||
ParamCmBxList="{Binding Path=SolChoiceTypeList,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True,
|
||||
Mode=OneWay}"
|
||||
ParamCmBxSelIndex="{Binding Path=SelectedSolChoiceType}"
|
||||
Style="{DynamicResource ComboParamV_Margin}"/>
|
||||
</StackPanel>
|
||||
</Expander>
|
||||
|
||||
<Expander Style="{StaticResource ExpanderStyle}">
|
||||
<Expander.Header>
|
||||
<EgtWPFLib5:ComboParamV
|
||||
ParamTxBl="{Binding LeadInTypeMsg}"
|
||||
ParamCmBxList="{Binding Path=LeadInTypeList,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
ParamCmBxSelIndex="{Binding Path=SelectedLeadInType}"
|
||||
Style="{DynamicResource ComboParamV_Margin}"/>
|
||||
</Expander.Header>
|
||||
<StackPanel>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding StartAddLenMsg}"
|
||||
ParamTxBx="{Binding Path=StartAddLen,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding LiTangMsg}"
|
||||
ParamTxBx="{Binding Path=LiTang,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding LiPerpMsg}"
|
||||
ParamTxBx="{Binding Path=LiPerp,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding LiElevMsg}"
|
||||
ParamTxBx="{Binding Path=LiElev,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding LiCompLenMsg}"
|
||||
ParamTxBx="{Binding Path=LiCompLen,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
</StackPanel>
|
||||
</Expander>
|
||||
|
||||
<Expander Style="{StaticResource ExpanderStyle}">
|
||||
<Expander.Header>
|
||||
<EgtWPFLib5:ComboParamV
|
||||
ParamTxBl="{Binding LeadOutTypeMsg}"
|
||||
ParamCmBxList="{Binding Path=LeadOutTypeList,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
ParamCmBxSelIndex="{Binding Path=SelectedLeadOutType}"
|
||||
Style="{DynamicResource ComboParamV_Margin}"/>
|
||||
</Expander.Header>
|
||||
<StackPanel>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding EndAddLenMsg}"
|
||||
ParamTxBx="{Binding Path=EndAddLen,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding LoTangMsg}"
|
||||
ParamTxBx="{Binding Path=LoTang,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding LoPerpMsg}"
|
||||
ParamTxBx="{Binding Path=LoPerp,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding LoElevMsg}"
|
||||
ParamTxBx="{Binding Path=LoElev,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding LoCompLenMsg}"
|
||||
ParamTxBx="{Binding Path=LoCompLen,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
</StackPanel>
|
||||
</Expander>
|
||||
|
||||
<Expander Style="{StaticResource ExpanderStyle}">
|
||||
<Expander.Header>
|
||||
<TextBlock Text="{Binding ToolExpanderHeader}"/>
|
||||
</Expander.Header>
|
||||
<StackPanel>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding SpeedMsg}"
|
||||
ParamTxBx="{Binding Path=Speed,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding FeedMsg}"
|
||||
ParamTxBx="{Binding Path=Feed,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding TipFeedMsg}"
|
||||
ParamTxBx="{Binding Path=TipFeed,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding StartFeedMsg}"
|
||||
ParamTxBx="{Binding Path=StartFeed,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding EndFeedMsg}"
|
||||
ParamTxBx="{Binding Path=EndFeed,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
</StackPanel>
|
||||
</Expander>
|
||||
<Interactivity:Interaction.Behaviors>
|
||||
<EgtCAM5:AutomaticCloseExpander/>
|
||||
</Interactivity:Interaction.Behaviors>
|
||||
</StackPanel>
|
||||
</StackPanel>
|
||||
|
||||
</UserControl>
|
||||
+83
@@ -0,0 +1,83 @@
|
||||
Imports EgtWPFLib5
|
||||
Imports EgtWPFLib5.EgtFloating
|
||||
|
||||
Public Class BeamMillingParameterExpanderV
|
||||
|
||||
Private EgtFloatingTray As EgtFloatingTray
|
||||
Private EgtFloatingPanel As EgtFloatingPanel
|
||||
|
||||
Private m_bFirst As Boolean = True
|
||||
|
||||
Private Sub OperationExpanderView_Loaded(sender As Object, e As System.Windows.RoutedEventArgs) Handles Me.Loaded
|
||||
If m_bFirst Then
|
||||
EgtFloatingTray = FindAncestor(Of EgtFloatingTray)(Me)
|
||||
EgtFloatingPanel = FindAncestor(Of EgtFloatingPanel)(Me)
|
||||
AddHandler EgtFloatingTray.SizeChanged, AddressOf EgtFloatingTray_SizeChanged
|
||||
PanelHeight = EgtFloatingPanel.ActualHeight
|
||||
Me.AutomaticCloseExpanderStackPanelHeight = AutomaticCloseExpanderStackPanel.ActualHeight
|
||||
m_bFirst = False
|
||||
End If
|
||||
CalculateOperationParametersStackPanelMaxHeight()
|
||||
End Sub
|
||||
|
||||
Dim m_bSizeChanging As Boolean = False
|
||||
|
||||
Private Sub EgtFloatingTray_SizeChanged(sender As Object, e As System.Windows.SizeChangedEventArgs)
|
||||
If m_bSizeChanging Then Return
|
||||
m_bSizeChanging = True
|
||||
CalculateOperationParametersStackPanelMaxHeight()
|
||||
m_bSizeChanging = False
|
||||
End Sub
|
||||
|
||||
Dim PanelHeight As Double = 0
|
||||
Dim AutomaticCloseExpanderStackPanelHeight As Double = 0
|
||||
|
||||
Private Sub CalculateOperationParametersStackPanelMaxHeight()
|
||||
Dim AutomaticCloseExpanderStackPanelHeight As Double = 0
|
||||
Dim OpenedExpanderList As New List(Of Boolean)
|
||||
For Index = 0 To AutomaticCloseExpanderStackPanel.Children.Count - 1
|
||||
If TypeOf AutomaticCloseExpanderStackPanel.Children(Index) Is Expander Then
|
||||
Dim IndexedExpander As Expander = DirectCast(AutomaticCloseExpanderStackPanel.Children(Index), Expander)
|
||||
If IndexedExpander.IsExpanded Then
|
||||
OpenedExpanderList.Add(True)
|
||||
IndexedExpander.IsExpanded = False
|
||||
Dim CurrExpanderContent As FrameworkElement = DirectCast(IndexedExpander.Content, FrameworkElement)
|
||||
CurrExpanderContent.Measure(New Size(Double.PositiveInfinity, Double.PositiveInfinity))
|
||||
AutomaticCloseExpanderStackPanelHeight -= CurrExpanderContent.DesiredSize.Height
|
||||
' Sottraggo anche i padding
|
||||
AutomaticCloseExpanderStackPanelHeight -= (IndexedExpander.Padding.Top + IndexedExpander.Padding.Bottom)
|
||||
Else
|
||||
OpenedExpanderList.Add(False)
|
||||
End If
|
||||
Else
|
||||
OpenedExpanderList.Add(False)
|
||||
End If
|
||||
Next
|
||||
Dim RemainingHeight As Double = EgtFloatingTray.ActualHeight - PanelHeight
|
||||
AutomaticCloseExpanderStackPanel.MaxHeight = Me.AutomaticCloseExpanderStackPanelHeight + RemainingHeight
|
||||
For Index = AutomaticCloseExpanderStackPanel.Children.Count - 1 To 0 Step -1
|
||||
If TypeOf AutomaticCloseExpanderStackPanel.Children(Index) Is Expander Then
|
||||
Dim IndexedExpander As Expander = DirectCast(AutomaticCloseExpanderStackPanel.Children(Index), Expander)
|
||||
If OpenedExpanderList(Index) Then
|
||||
IndexedExpander.IsExpanded = True
|
||||
End If
|
||||
End If
|
||||
Next
|
||||
End Sub
|
||||
|
||||
' Funzione che permette di trovare il primo contenitore di tipo T di un elemento grafico dependencyObject
|
||||
Public Function FindAncestor(Of T As Class)(dependencyObject As DependencyObject) As T
|
||||
Dim target As DependencyObject = dependencyObject
|
||||
Do
|
||||
target = LogicalTreeHelper.GetParent(target)
|
||||
Loop While target IsNot Nothing AndAlso Not (TypeOf target Is T)
|
||||
If IsNothing(target) Then
|
||||
target = dependencyObject
|
||||
Do
|
||||
target = VisualTreeHelper.GetParent(target)
|
||||
Loop While target IsNot Nothing AndAlso Not (TypeOf target Is T)
|
||||
End If
|
||||
Return TryCast(target, T)
|
||||
End Function
|
||||
|
||||
End Class
|
||||
+232
@@ -0,0 +1,232 @@
|
||||
<UserControl x:Class="ChiselingParameterExpanderV"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:sys="clr-namespace:System;assembly=mscorlib"
|
||||
xmlns:Interactivity="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
|
||||
xmlns:EgtCAM5="clr-namespace:EgtCAM5"
|
||||
xmlns:EgtWPFLib5="clr-namespace:EgtWPFLib5;assembly=EgtWPFLib5">
|
||||
|
||||
<UserControl.Resources>
|
||||
<EgtCAM5:OperationParamVisibilityConverter x:Key="OperationParamVisibilityConverter"/>
|
||||
<EgtCAM5:DepthUnitConverter x:Key="DepthUnitConverter"/>
|
||||
<sys:Int32 x:Key="Invert">0</sys:Int32>
|
||||
<sys:Int32 x:Key="LeaveTab">1</sys:Int32>
|
||||
<sys:Int32 x:Key="WorkSide">2</sys:Int32>
|
||||
<sys:Int32 x:Key="HeadSide">3</sys:Int32>
|
||||
<sys:Int32 x:Key="LeadInType">4</sys:Int32>
|
||||
<sys:Int32 x:Key="ExtLinkType">5</sys:Int32>
|
||||
<sys:Int32 x:Key="LeadOutType">6</sys:Int32>
|
||||
<sys:Int32 x:Key="CurveUse">7</sys:Int32>
|
||||
<sys:Int32 x:Key="StepType">8</sys:Int32>
|
||||
<sys:Int32 x:Key="LeadLinkType">9</sys:Int32>
|
||||
<sys:Int32 x:Key="Speed">10</sys:Int32>
|
||||
<sys:Int32 x:Key="Feed">11</sys:Int32>
|
||||
<sys:Int32 x:Key="StartFeed">12</sys:Int32>
|
||||
<sys:Int32 x:Key="EndFeed">13</sys:Int32>
|
||||
<sys:Int32 x:Key="TipFeed">14</sys:Int32>
|
||||
<sys:Int32 x:Key="OffSr">15</sys:Int32>
|
||||
<sys:Int32 x:Key="OffSl">16</sys:Int32>
|
||||
<sys:Int32 x:Key="SideAngle">17</sys:Int32>
|
||||
<sys:Int32 x:Key="Approx">18</sys:Int32>
|
||||
<sys:Int32 x:Key="StartPos">19</sys:Int32>
|
||||
<sys:Int32 x:Key="StartSlowLen">20</sys:Int32>
|
||||
<sys:Int32 x:Key="EndSlowLen">21</sys:Int32>
|
||||
<sys:Int32 x:Key="ThrouAddLen">22</sys:Int32>
|
||||
<sys:Int32 x:Key="StepPar">23</sys:Int32>
|
||||
<sys:Int32 x:Key="ReturnPos">24</sys:Int32>
|
||||
<sys:Int32 x:Key="TabLen">25</sys:Int32>
|
||||
<sys:Int32 x:Key="TabDist">26</sys:Int32>
|
||||
<sys:Int32 x:Key="TabHeight">27</sys:Int32>
|
||||
<sys:Int32 x:Key="TabAngle">28</sys:Int32>
|
||||
<sys:Int32 x:Key="LiTang">29</sys:Int32>
|
||||
<sys:Int32 x:Key="LiPerp">30</sys:Int32>
|
||||
<sys:Int32 x:Key="LiElev">31</sys:Int32>
|
||||
<sys:Int32 x:Key="LiCompLen">32</sys:Int32>
|
||||
<sys:Int32 x:Key="LoTang">33</sys:Int32>
|
||||
<sys:Int32 x:Key="LoPerp">34</sys:Int32>
|
||||
<sys:Int32 x:Key="LoElev">35</sys:Int32>
|
||||
<sys:Int32 x:Key="LoCompLen">36</sys:Int32>
|
||||
<sys:Int32 x:Key="StartAddLen">37</sys:Int32>
|
||||
<sys:Int32 x:Key="EndAddLen">38</sys:Int32>
|
||||
<sys:Int32 x:Key="StepExtArc">39</sys:Int32>
|
||||
<sys:Int32 x:Key="StepIntArc">40</sys:Int32>
|
||||
<sys:Int32 x:Key="SideStep">41</sys:Int32>
|
||||
<sys:Int32 x:Key="VertFeed">42</sys:Int32>
|
||||
<sys:Int32 x:Key="NamePar">43</sys:Int32>
|
||||
<sys:Int32 x:Key="Tool">44</sys:Int32>
|
||||
<sys:Int32 x:Key="DepthStr">45</sys:Int32>
|
||||
<sys:Int32 x:Key="UserNotes">46</sys:Int32>
|
||||
<sys:Int32 x:Key="OverLapStr">47</sys:Int32>
|
||||
<sys:Int32 x:Key="OffsetStr">48</sys:Int32>
|
||||
<sys:Int32 x:Key="SubType">49</sys:Int32>
|
||||
<sys:Int32 x:Key="SolChoiceType">50</sys:Int32>
|
||||
<sys:Int32 x:Key="AxRotRef">51</sys:Int32>
|
||||
<sys:Int32 x:Key="BlockedAxesRef">52</sys:Int32>
|
||||
<sys:Int32 x:Key="FaceUseType">53</sys:Int32>
|
||||
<sys:Int32 x:Key="InvertToolDir">54</sys:Int32>
|
||||
<sys:Int32 x:Key="ExpanderLeadIn">55</sys:Int32>
|
||||
<sys:Int32 x:Key="ExpanderLeadOut">56</sys:Int32>
|
||||
<sys:Int32 x:Key="ApproxGen">57</sys:Int32>
|
||||
<sys:Int32 x:Key="OscEnable">58</sys:Int32>
|
||||
<sys:Int32 x:Key="OscHeight">59</sys:Int32>
|
||||
<sys:Int32 x:Key="OscRampLen">60</sys:Int32>
|
||||
<sys:Int32 x:Key="OscFlatLen">61</sys:Int32>
|
||||
</UserControl.Resources>
|
||||
|
||||
<StackPanel Name="OperationParametersStackPanel">
|
||||
<StackPanel Name="OperationFirstParametersStackPanel">
|
||||
<UniformGrid Columns="2">
|
||||
<TextBlock Text="{Binding DepthMsg}" Style="{DynamicResource MPExpander_DepthTxBlMargin}"/>
|
||||
<EgtWPFLib5:EgtTextBox Text="{Binding DepthStr, UpdateSourceTrigger=PropertyChanged,
|
||||
Converter={StaticResource DepthUnitConverter}}"
|
||||
Style="{DynamicResource MPExpander_DepthTxBxMargin}"/>
|
||||
</UniformGrid>
|
||||
<EgtWPFLib5:CheckParamV
|
||||
ParamTxBl="{Binding InvertMsg}"
|
||||
ParamChBx="{Binding Path=Invert,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource CheckParamV_Margin}"/>
|
||||
<EgtWPFLib5:ComboParamV
|
||||
ParamTxBl="{Binding WorkSideMsg}"
|
||||
ParamCmBxList="{Binding Path=WorkSideList,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
ParamCmBxSelIndex="{Binding Path=SelectedWorkSide}"
|
||||
Style="{DynamicResource ComboParamV_Margin}"/>
|
||||
<UniformGrid Columns="2">
|
||||
<TextBlock Text="{Binding UserNotesMsg}"
|
||||
Style="{DynamicResource MPExpander_UserNotesTxBlMargin}"/>
|
||||
<EgtWPFLib5:EgtTextBox Text="{Binding UserNotes, UpdateSourceTrigger=PropertyChanged}"
|
||||
Style="{DynamicResource MPExpander_UserNotesTxBxMargin}">
|
||||
<EgtWPFLib5:EgtTextBox.ToolTip>
|
||||
<TextBlock Text="{Binding UserNotesTooltip}"/>
|
||||
</EgtWPFLib5:EgtTextBox.ToolTip>
|
||||
</EgtWPFLib5:EgtTextBox>
|
||||
</UniformGrid>
|
||||
</StackPanel>
|
||||
<StackPanel Name="AutomaticCloseExpanderStackPanel">
|
||||
<Expander Header="{Binding GenericExpanderHeader}" Name="GenericExpander"
|
||||
Style="{StaticResource ExpanderStyle}" Margin="0,1,0,1">
|
||||
<StackPanel>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding StartPosMsg}"
|
||||
ParamTxBx="{Binding Path=StartPos,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding ReturnPosMsg}"
|
||||
ParamTxBx="{Binding Path=ReturnPos,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding StepParMsg}"
|
||||
ParamTxBx="{Binding Path=StepPar,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding OffsetSrMsg}"
|
||||
ParamTxBx="{Binding Path=OffSr,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding OffsetSlMsg}"
|
||||
ParamTxBx="{Binding Path=OffSl,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
</StackPanel>
|
||||
</Expander>
|
||||
|
||||
<Expander Header="{Binding AdvancedParamMsg}" Name="AdvancedParam"
|
||||
Style="{StaticResource ExpanderStyle}" Margin="0,1,0,1">
|
||||
<StackPanel>
|
||||
<EgtWPFLib5:CheckParamV
|
||||
ParamTxBl="{Binding InvertToolDirMsg}"
|
||||
ParamChBx="{Binding Path=ToolInvert,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource CheckParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding InitAngsMsg}"
|
||||
ParamTxBx="{Binding Path=InitAngs,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding BlockedAxisMsg}"
|
||||
ParamTxBx="{Binding Path=BlockedAxis,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:ComboParamV
|
||||
ParamTxBl="{Binding SolChoiceTypeMsg}"
|
||||
ParamCmBxList="{Binding Path=SolChoiceTypeList,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True,
|
||||
Mode=OneWay}"
|
||||
ParamCmBxSelIndex="{Binding Path=SelectedSolChoiceType}"
|
||||
Style="{DynamicResource ComboParamV_Margin}"/>
|
||||
</StackPanel>
|
||||
</Expander>
|
||||
|
||||
<Expander Header="{Binding LeadOutTypeMsg}" Name="LeadOutType"
|
||||
Style="{StaticResource ExpanderStyle}" Margin="0,1,0,1">
|
||||
<StackPanel>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding EndAddLenMsg}"
|
||||
ParamTxBx="{Binding Path=EndAddLen,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
</StackPanel>
|
||||
</Expander>
|
||||
|
||||
<Expander Style="{StaticResource ExpanderStyle}">
|
||||
<Expander.Header>
|
||||
<TextBlock Text="{Binding ToolExpanderHeader}"/>
|
||||
</Expander.Header>
|
||||
<StackPanel>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding SpeedMsg}"
|
||||
ParamTxBx="{Binding Path=Speed,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding FeedMsg}"
|
||||
ParamTxBx="{Binding Path=Feed,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding TipFeedMsg}"
|
||||
ParamTxBx="{Binding Path=TipFeed,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding StartFeedMsg}"
|
||||
ParamTxBx="{Binding Path=StartFeed,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding EndFeedMsg}"
|
||||
ParamTxBx="{Binding Path=EndFeed,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
</StackPanel>
|
||||
</Expander>
|
||||
<Interactivity:Interaction.Behaviors>
|
||||
<EgtCAM5:AutomaticCloseExpander/>
|
||||
</Interactivity:Interaction.Behaviors>
|
||||
</StackPanel>
|
||||
</StackPanel>
|
||||
|
||||
</UserControl>
|
||||
+83
@@ -0,0 +1,83 @@
|
||||
Imports EgtWPFLib5
|
||||
Imports EgtWPFLib5.EgtFloating
|
||||
|
||||
Public Class ChiselingParameterExpanderV
|
||||
|
||||
Private EgtFloatingTray As EgtFloatingTray
|
||||
Private EgtFloatingPanel As EgtFloatingPanel
|
||||
|
||||
Private m_bFirst As Boolean = True
|
||||
|
||||
Private Sub OperationExpanderView_Loaded(sender As Object, e As System.Windows.RoutedEventArgs) Handles Me.Loaded
|
||||
If m_bFirst Then
|
||||
EgtFloatingTray = FindAncestor(Of EgtFloatingTray)(Me)
|
||||
EgtFloatingPanel = FindAncestor(Of EgtFloatingPanel)(Me)
|
||||
AddHandler EgtFloatingTray.SizeChanged, AddressOf EgtFloatingTray_SizeChanged
|
||||
PanelHeight = EgtFloatingPanel.ActualHeight
|
||||
Me.AutomaticCloseExpanderStackPanelHeight = AutomaticCloseExpanderStackPanel.ActualHeight
|
||||
m_bFirst = False
|
||||
End If
|
||||
CalculateOperationParametersStackPanelMaxHeight()
|
||||
End Sub
|
||||
|
||||
Dim m_bSizeChanging As Boolean = False
|
||||
|
||||
Private Sub EgtFloatingTray_SizeChanged(sender As Object, e As System.Windows.SizeChangedEventArgs)
|
||||
If m_bSizeChanging Then Return
|
||||
m_bSizeChanging = True
|
||||
CalculateOperationParametersStackPanelMaxHeight()
|
||||
m_bSizeChanging = False
|
||||
End Sub
|
||||
|
||||
Dim PanelHeight As Double = 0
|
||||
Dim AutomaticCloseExpanderStackPanelHeight As Double = 0
|
||||
|
||||
Private Sub CalculateOperationParametersStackPanelMaxHeight()
|
||||
Dim AutomaticCloseExpanderStackPanelHeight As Double = 0
|
||||
Dim OpenedExpanderList As New List(Of Boolean)
|
||||
For Index = 0 To AutomaticCloseExpanderStackPanel.Children.Count - 1
|
||||
If TypeOf AutomaticCloseExpanderStackPanel.Children(Index) Is Expander Then
|
||||
Dim IndexedExpander As Expander = DirectCast(AutomaticCloseExpanderStackPanel.Children(Index), Expander)
|
||||
If IndexedExpander.IsExpanded Then
|
||||
OpenedExpanderList.Add(True)
|
||||
IndexedExpander.IsExpanded = False
|
||||
Dim CurrExpanderContent As FrameworkElement = DirectCast(IndexedExpander.Content, FrameworkElement)
|
||||
CurrExpanderContent.Measure(New Size(Double.PositiveInfinity, Double.PositiveInfinity))
|
||||
AutomaticCloseExpanderStackPanelHeight -= CurrExpanderContent.DesiredSize.Height
|
||||
' Sottraggo anche i padding
|
||||
AutomaticCloseExpanderStackPanelHeight -= (IndexedExpander.Padding.Top + IndexedExpander.Padding.Bottom)
|
||||
Else
|
||||
OpenedExpanderList.Add(False)
|
||||
End If
|
||||
Else
|
||||
OpenedExpanderList.Add(False)
|
||||
End If
|
||||
Next
|
||||
Dim RemainingHeight As Double = EgtFloatingTray.ActualHeight - PanelHeight
|
||||
AutomaticCloseExpanderStackPanel.MaxHeight = Me.AutomaticCloseExpanderStackPanelHeight + RemainingHeight
|
||||
For Index = AutomaticCloseExpanderStackPanel.Children.Count - 1 To 0 Step -1
|
||||
If TypeOf AutomaticCloseExpanderStackPanel.Children(Index) Is Expander Then
|
||||
Dim IndexedExpander As Expander = DirectCast(AutomaticCloseExpanderStackPanel.Children(Index), Expander)
|
||||
If OpenedExpanderList(Index) Then
|
||||
IndexedExpander.IsExpanded = True
|
||||
End If
|
||||
End If
|
||||
Next
|
||||
End Sub
|
||||
|
||||
' Funzione che permette di trovare il primo contenitore di tipo T di un elemento grafico dependencyObject
|
||||
Public Function FindAncestor(Of T As Class)(dependencyObject As DependencyObject) As T
|
||||
Dim target As DependencyObject = dependencyObject
|
||||
Do
|
||||
target = LogicalTreeHelper.GetParent(target)
|
||||
Loop While target IsNot Nothing AndAlso Not (TypeOf target Is T)
|
||||
If IsNothing(target) Then
|
||||
target = dependencyObject
|
||||
Do
|
||||
target = VisualTreeHelper.GetParent(target)
|
||||
Loop While target IsNot Nothing AndAlso Not (TypeOf target Is T)
|
||||
End If
|
||||
Return TryCast(target, T)
|
||||
End Function
|
||||
|
||||
End Class
|
||||
+18
-484
@@ -75,490 +75,24 @@
|
||||
<sys:Int32 x:Key="TabMin">63</sys:Int32>
|
||||
</UserControl.Resources>
|
||||
|
||||
<StackPanel Name="OperationParametersStackPanel">
|
||||
<StackPanel Name="OperationFirstParametersStackPanel">
|
||||
<UniformGrid Columns="2" Visibility="{Binding Type,
|
||||
Converter={StaticResource OperationParamVisibilityConverter},
|
||||
ConverterParameter={StaticResource DepthStr}}">
|
||||
<TextBlock Text="{Binding DepthMsg}"/>
|
||||
<EgtWPFLib5:EgtTextBox Text="{Binding DepthStr, UpdateSourceTrigger=PropertyChanged,
|
||||
Converter={StaticResource DepthUnitConverter}}"/>
|
||||
</UniformGrid>
|
||||
<UniformGrid Columns="2" Height="20" Visibility="{Binding Type,
|
||||
Converter={StaticResource OperationParamVisibilityConverter},
|
||||
ConverterParameter={StaticResource Invert}}">
|
||||
<TextBlock Text="{Binding InvertMsg}"/>
|
||||
<CheckBox HorizontalAlignment="Center" VerticalAlignment="Center"
|
||||
IsChecked="{Binding Invert}"/>
|
||||
</UniformGrid>
|
||||
<UniformGrid Columns="2" Visibility="{Binding Type,
|
||||
Converter={StaticResource OperationParamVisibilityConverter},
|
||||
ConverterParameter={StaticResource WorkSide}}">
|
||||
<TextBlock Text="{Binding WorkSideMsg}"/>
|
||||
<ComboBox ItemsSource="{Binding WorkSideList, Mode=OneWay}"
|
||||
SelectedIndex="{Binding SelectedWorkSide}"
|
||||
IsSynchronizedWithCurrentItem="True">
|
||||
</ComboBox>
|
||||
</UniformGrid>
|
||||
<UniformGrid Columns="2" Visibility="{Binding Type,
|
||||
Converter={StaticResource OperationParamVisibilityConverter},
|
||||
ConverterParameter={StaticResource HeadSide}}">
|
||||
<TextBlock Text="{Binding HeadSideMsg}"/>
|
||||
<ComboBox ItemsSource="{Binding HeadSideList, Mode=OneWay}"
|
||||
SelectedIndex="{Binding SelectedHeadSide}"
|
||||
IsSynchronizedWithCurrentItem="True">
|
||||
</ComboBox>
|
||||
</UniformGrid>
|
||||
<UniformGrid Columns="2" Visibility="{Binding Type,
|
||||
Converter={StaticResource OperationParamVisibilityConverter},
|
||||
ConverterParameter={StaticResource UserNotes}}">
|
||||
<TextBlock Text="{Binding UserNotesMsg}"/>
|
||||
<EgtWPFLib5:EgtTextBox Text="{Binding UserNotes, UpdateSourceTrigger=PropertyChanged}">
|
||||
<EgtWPFLib5:EgtTextBox.ToolTip>
|
||||
<TextBlock Text="{Binding UserNotesTooltip}"/>
|
||||
</EgtWPFLib5:EgtTextBox.ToolTip>
|
||||
</EgtWPFLib5:EgtTextBox>
|
||||
</UniformGrid>
|
||||
</StackPanel>
|
||||
<StackPanel Name="AutomaticCloseExpanderStackPanel">
|
||||
<Expander Header="{Binding GenericExpanderHeader}" Name="GenericExpander"
|
||||
Style="{StaticResource ExpanderStyle}" Margin="0,1,0,1">
|
||||
<StackPanel>
|
||||
<UniformGrid Columns="2" Visibility="{Binding Type,
|
||||
Converter={StaticResource OperationParamVisibilityConverter},
|
||||
ConverterParameter={StaticResource StartPos}}">
|
||||
<TextBlock Text="{Binding StartPosMsg}"/>
|
||||
<EgtWPFLib5:EgtTextBox Text="{Binding StartPos, UpdateSourceTrigger=PropertyChanged}"/>
|
||||
</UniformGrid>
|
||||
<UniformGrid Columns="2" Visibility="{Binding Type,
|
||||
Converter={StaticResource OperationParamVisibilityConverter},
|
||||
ConverterParameter={StaticResource ReturnPos}}">
|
||||
<TextBlock Text="{Binding ReturnPosMsg}"/>
|
||||
<EgtWPFLib5:EgtTextBox Text="{Binding ReturnPos, UpdateSourceTrigger=PropertyChanged}"/>
|
||||
</UniformGrid>
|
||||
<UniformGrid Columns="2" Visibility="{Binding Type,
|
||||
Converter={StaticResource OperationParamVisibilityConverter},
|
||||
ConverterParameter={StaticResource OverLapStr}}">
|
||||
<TextBlock Text="{Binding OverLapMsg}"/>
|
||||
<EgtWPFLib5:EgtTextBox Text="{Binding OverLap, UpdateSourceTrigger=PropertyChanged}"/>
|
||||
</UniformGrid>
|
||||
<UniformGrid Columns="2" Visibility="{Binding Type,
|
||||
Converter={StaticResource OperationParamVisibilityConverter},
|
||||
ConverterParameter={StaticResource ThrouAddLen}}">
|
||||
<TextBlock Text="{Binding ThrouAddLenMsg}"/>
|
||||
<EgtWPFLib5:EgtTextBox Text="{Binding ThrouAddLen, UpdateSourceTrigger=PropertyChanged}"/>
|
||||
</UniformGrid>
|
||||
<UniformGrid Columns="2" Visibility="{Binding Type,
|
||||
Converter={StaticResource OperationParamVisibilityConverter},
|
||||
ConverterParameter={StaticResource StepType}}">
|
||||
<TextBlock Text="{Binding StepTypeMsg}"/>
|
||||
<ComboBox ItemsSource="{Binding StepTypeList, Mode=OneWay}"
|
||||
SelectedIndex="{Binding SelectedStepType}"
|
||||
IsSynchronizedWithCurrentItem="True">
|
||||
</ComboBox>
|
||||
</UniformGrid>
|
||||
<UniformGrid Columns="2" Visibility="{Binding Type,
|
||||
Converter={StaticResource OperationParamVisibilityConverter},
|
||||
ConverterParameter={StaticResource SubType}}">
|
||||
<TextBlock Text="{Binding SubTypeMsg}"/>
|
||||
<ComboBox ItemsSource="{Binding SubTypeList, Mode=OneWay}"
|
||||
SelectedIndex="{Binding SelectedSubType}"
|
||||
IsSynchronizedWithCurrentItem="True">
|
||||
</ComboBox>
|
||||
</UniformGrid>
|
||||
<UniformGrid Columns="2" Visibility="{Binding Type,
|
||||
Converter={StaticResource OperationParamVisibilityConverter},
|
||||
ConverterParameter={StaticResource StepPar}}">
|
||||
<TextBlock Text="{Binding StepParMsg}"/>
|
||||
<EgtWPFLib5:EgtTextBox Text="{Binding StepPar, UpdateSourceTrigger=PropertyChanged}"/>
|
||||
</UniformGrid>
|
||||
<UniformGrid Columns="2" Visibility="{Binding Type,
|
||||
Converter={StaticResource OperationParamVisibilityConverter},
|
||||
ConverterParameter={StaticResource SideStep}}">
|
||||
<TextBlock Text="{Binding SideStepMsg}"/>
|
||||
<EgtWPFLib5:EgtTextBox Text="{Binding SideStep, UpdateSourceTrigger=PropertyChanged}"/>
|
||||
</UniformGrid>
|
||||
<UniformGrid Columns="2" Visibility="{Binding Type,
|
||||
Converter={StaticResource OperationParamVisibilityConverter},
|
||||
ConverterParameter={StaticResource StartSlowLen}}">
|
||||
<TextBlock Text="{Binding StartSlowLenMsg}"/>
|
||||
<EgtWPFLib5:EgtTextBox Text="{Binding StartSlowLen, UpdateSourceTrigger=PropertyChanged}"/>
|
||||
</UniformGrid>
|
||||
<UniformGrid Columns="2" Visibility="{Binding Type,
|
||||
Converter={StaticResource OperationParamVisibilityConverter},
|
||||
ConverterParameter={StaticResource EndSlowLen}}">
|
||||
<TextBlock Text="{Binding EndSlowLenMsg}"/>
|
||||
<EgtWPFLib5:EgtTextBox Text="{Binding EndSlowLen, UpdateSourceTrigger=PropertyChanged}"/>
|
||||
</UniformGrid>
|
||||
<UniformGrid Columns="2" Visibility="{Binding Type,
|
||||
Converter={StaticResource OperationParamVisibilityConverter},
|
||||
ConverterParameter={StaticResource SideAngle}}">
|
||||
<TextBlock Text="{Binding SideAngleMsg}"/>
|
||||
<EgtWPFLib5:EgtTextBox Text="{Binding SideAngle, UpdateSourceTrigger=PropertyChanged}"/>
|
||||
</UniformGrid>
|
||||
<UniformGrid Columns="2" Visibility="{Binding Type,
|
||||
Converter={StaticResource OperationParamVisibilityConverter},
|
||||
ConverterParameter={StaticResource OffSr}}">
|
||||
<TextBlock Text="{Binding OffsetSrMsg}"/>
|
||||
<EgtWPFLib5:EgtTextBox Text="{Binding OffSr, UpdateSourceTrigger=PropertyChanged}"/>
|
||||
</UniformGrid>
|
||||
<UniformGrid Columns="2" Visibility="{Binding Type,
|
||||
Converter={StaticResource OperationParamVisibilityConverter},
|
||||
ConverterParameter={StaticResource OffSl}}">
|
||||
<TextBlock Text="{Binding OffsetSlMsg}"/>
|
||||
<EgtWPFLib5:EgtTextBox Text="{Binding OffSl, UpdateSourceTrigger=PropertyChanged}"/>
|
||||
</UniformGrid>
|
||||
<UniformGrid Columns="2" Visibility="{Binding Type,
|
||||
Converter={StaticResource OperationParamVisibilityConverter},
|
||||
ConverterParameter={StaticResource ApproxGen}}">
|
||||
<TextBlock Text="{Binding ApproxMsg}"/>
|
||||
<EgtWPFLib5:EgtTextBox Text="{Binding Approx, UpdateSourceTrigger=PropertyChanged}"/>
|
||||
</UniformGrid>
|
||||
</StackPanel>
|
||||
</Expander>
|
||||
<StackPanel>
|
||||
<ContentControl Content="{Binding Path=ParamExpanderPageV}" />
|
||||
|
||||
<Expander Header="{Binding AdvancedParamMsg}" Name="AdvancedParam"
|
||||
Style="{StaticResource ExpanderStyle}" Margin="0,1,0,1"
|
||||
Visibility="{Binding Type, Converter={StaticResource OperationParamVisibilityConverter},
|
||||
ConverterParameter={StaticResource AxRotRef}}">
|
||||
<Button Name="ApplyMachBtn" Height="30" Content="{Binding UpdateMachiningBtnMsg}"
|
||||
Command="{Binding UpdateMachiningCommand}" Background="{Binding UpdateMachiningBtn_Background}"/>
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="2*"/>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<ToggleButton Name="ViewToolBtn" Grid.Column="0" Height="30" Content="{Binding ViewToolBtnMsg}"
|
||||
IsChecked="{Binding ViewTool}" />
|
||||
<Button Name="NextStepToolBtn" Grid.Column="1" Height="30" Content="{Binding NextStepToolBtnMsg}"
|
||||
Command="{Binding NextStepToolCommand}" IsEnabled="{Binding IsChecked, ElementName=ViewToolBtn}"/>
|
||||
<Button Name="PrevStepToolBtn" Grid.Column="2" Height="30" Content="{Binding PrevStepToolBtnMsg}"
|
||||
Command="{Binding PrevStepToolCommand}" IsEnabled="{Binding IsChecked, ElementName=ViewToolBtn}"/>
|
||||
</Grid>
|
||||
</StackPanel>
|
||||
|
||||
<StackPanel>
|
||||
<UniformGrid Columns="2" Height="20" Visibility="{Binding Type,
|
||||
Converter={StaticResource OperationParamVisibilityConverter},
|
||||
ConverterParameter={StaticResource InvertToolDir}}">
|
||||
<TextBlock Text="{Binding InvertToolDirMsg}"/>
|
||||
<CheckBox HorizontalAlignment="Center" VerticalAlignment="Center"
|
||||
IsChecked="{Binding ToolInvert}"/>
|
||||
</UniformGrid>
|
||||
<UniformGrid Columns="2" Visibility="{Binding Type,
|
||||
Converter={StaticResource OperationParamVisibilityConverter},
|
||||
ConverterParameter={StaticResource FaceUseType}}">
|
||||
<TextBlock Text="{Binding FaceUseTypeMsg}"/>
|
||||
<ComboBox ItemsSource="{Binding FaceUseTypeList, Mode=OneWay}"
|
||||
SelectedIndex="{Binding SelectedFaceUseType}"
|
||||
IsSynchronizedWithCurrentItem="True">
|
||||
</ComboBox>
|
||||
</UniformGrid>
|
||||
<UniformGrid Columns="2" Visibility="{Binding Type,
|
||||
Converter={StaticResource OperationParamVisibilityConverter},
|
||||
ConverterParameter={StaticResource AxRotRef}}">
|
||||
<TextBlock Text="{Binding InitAngsMsg}"/>
|
||||
<EgtWPFLib5:EgtTextBox Text="{Binding InitAngs, UpdateSourceTrigger=PropertyChanged}"/>
|
||||
</UniformGrid>
|
||||
<UniformGrid Columns="2" Visibility="{Binding Type,
|
||||
Converter={StaticResource OperationParamVisibilityConverter},
|
||||
ConverterParameter={StaticResource BlockedAxesRef}}">
|
||||
<TextBlock Text="{Binding BlockedAxisMsg}"/>
|
||||
<EgtWPFLib5:EgtTextBox Text="{Binding BlockedAxis, UpdateSourceTrigger=PropertyChanged}"/>
|
||||
</UniformGrid>
|
||||
<UniformGrid Columns="2" Visibility="{Binding Type,
|
||||
Converter={StaticResource OperationParamVisibilityConverter},
|
||||
ConverterParameter={StaticResource SolChoiceType}}">
|
||||
<TextBlock Text="{Binding SolChoiceTypeMsg}"/>
|
||||
<ComboBox ItemsSource="{Binding SolChoiceTypeList, Mode=OneWay}"
|
||||
SelectedIndex="{Binding SelectedSolChoiceType}"
|
||||
IsSynchronizedWithCurrentItem="True">
|
||||
</ComboBox>
|
||||
</UniformGrid>
|
||||
</StackPanel>
|
||||
|
||||
</Expander>
|
||||
|
||||
<Expander Visibility="{Binding Type,
|
||||
Converter={StaticResource OperationParamVisibilityConverter},
|
||||
ConverterParameter={StaticResource ExpanderLeadIn}}"
|
||||
Style="{StaticResource ExpanderStyle}">
|
||||
<Expander.Header>
|
||||
<UniformGrid Columns="2">
|
||||
<TextBlock Text="{Binding LeadInTypeMsg}" Margin="0,0,5,0"/>
|
||||
<ComboBox ItemsSource="{Binding LeadInTypeList, Mode=OneWay}"
|
||||
SelectedIndex="{Binding SelectedLeadInType,Mode=TwoWay}"
|
||||
IsSynchronizedWithCurrentItem="True"
|
||||
Visibility="{Binding Type,
|
||||
Converter={StaticResource OperationParamVisibilityConverter},
|
||||
ConverterParameter={StaticResource LeadInType}}">
|
||||
</ComboBox>
|
||||
</UniformGrid>
|
||||
</Expander.Header>
|
||||
<StackPanel>
|
||||
<UniformGrid Columns="2" Visibility="{Binding Type,
|
||||
Converter={StaticResource OperationParamVisibilityConverter},
|
||||
ConverterParameter={StaticResource StartAddLen}}">
|
||||
<TextBlock Text="{Binding StartAddLenMsg}"/>
|
||||
<EgtWPFLib5:EgtTextBox Text="{Binding StartAddLen, UpdateSourceTrigger=PropertyChanged}"/>
|
||||
</UniformGrid>
|
||||
<UniformGrid Columns="2" Visibility="{Binding Type,
|
||||
Converter={StaticResource OperationParamVisibilityConverter},
|
||||
ConverterParameter={StaticResource LiTang}}">
|
||||
<TextBlock Text="{Binding LiTangMsg}"/>
|
||||
<EgtWPFLib5:EgtTextBox Text="{Binding LiTang, UpdateSourceTrigger=PropertyChanged}"/>
|
||||
</UniformGrid>
|
||||
<UniformGrid Columns="2" Visibility="{Binding Type,
|
||||
Converter={StaticResource OperationParamVisibilityConverter},
|
||||
ConverterParameter={StaticResource LiPerp}}">
|
||||
<TextBlock Text="{Binding LiPerpMsg}"/>
|
||||
<EgtWPFLib5:EgtTextBox Text="{Binding LiPerp, UpdateSourceTrigger=PropertyChanged}"/>
|
||||
</UniformGrid>
|
||||
<UniformGrid Columns="2" Visibility="{Binding Type,
|
||||
Converter={StaticResource OperationParamVisibilityConverter},
|
||||
ConverterParameter={StaticResource LiElev}}">
|
||||
<TextBlock Text="{Binding LiElevMsg}"/>
|
||||
<EgtWPFLib5:EgtTextBox Text="{Binding LiElev, UpdateSourceTrigger=PropertyChanged}"/>
|
||||
</UniformGrid>
|
||||
<UniformGrid Columns="2" Visibility="{Binding Type,
|
||||
Converter={StaticResource OperationParamVisibilityConverter},
|
||||
ConverterParameter={StaticResource LiCompLen}}">
|
||||
<TextBlock Text="{Binding LiCompLenMsg}"/>
|
||||
<EgtWPFLib5:EgtTextBox Text="{Binding LiCompLen, UpdateSourceTrigger=PropertyChanged}"/>
|
||||
</UniformGrid>
|
||||
</StackPanel>
|
||||
</Expander>
|
||||
|
||||
<Expander Visibility="{Binding Type,
|
||||
Converter={StaticResource OperationParamVisibilityConverter},
|
||||
ConverterParameter={StaticResource ExpanderLeadOut}}"
|
||||
Style="{StaticResource ExpanderStyle}">
|
||||
<Expander.Header>
|
||||
<UniformGrid Columns="2">
|
||||
<TextBlock Text="{Binding LeadOutTypeMsg}" Margin="0,0,5,0"
|
||||
VerticalAlignment="Center"/>
|
||||
<ComboBox ItemsSource="{Binding LeadOutTypeList, Mode=OneWay}"
|
||||
SelectedIndex="{Binding SelectedLeadOutType}"
|
||||
IsSynchronizedWithCurrentItem="True"
|
||||
Visibility="{Binding Type,
|
||||
Converter={StaticResource OperationParamVisibilityConverter},
|
||||
ConverterParameter={StaticResource LeadOutType}}">
|
||||
</ComboBox>
|
||||
</UniformGrid>
|
||||
</Expander.Header>
|
||||
<StackPanel Margin="2">
|
||||
<UniformGrid Columns="2" Visibility="{Binding Type,
|
||||
Converter={StaticResource OperationParamVisibilityConverter},
|
||||
ConverterParameter={StaticResource EndAddLen}}">
|
||||
<TextBlock Text="{Binding EndAddLenMsg}"/>
|
||||
<EgtWPFLib5:EgtTextBox Text="{Binding EndAddLen, UpdateSourceTrigger=PropertyChanged}"/>
|
||||
</UniformGrid>
|
||||
<UniformGrid Columns="2" Visibility="{Binding Type,
|
||||
Converter={StaticResource OperationParamVisibilityConverter},
|
||||
ConverterParameter={StaticResource LoTang}}">
|
||||
<TextBlock Text="{Binding LoTangMsg}"/>
|
||||
<EgtWPFLib5:EgtTextBox Text="{Binding LoTang, UpdateSourceTrigger=PropertyChanged}"/>
|
||||
</UniformGrid>
|
||||
<UniformGrid Columns="2" Visibility="{Binding Type,
|
||||
Converter={StaticResource OperationParamVisibilityConverter},
|
||||
ConverterParameter={StaticResource LoPerp}}">
|
||||
<TextBlock Text="{Binding LoPerpMsg}"/>
|
||||
<EgtWPFLib5:EgtTextBox Text="{Binding LoPerp, UpdateSourceTrigger=PropertyChanged}"/>
|
||||
</UniformGrid>
|
||||
<UniformGrid Columns="2" Visibility="{Binding Type,
|
||||
Converter={StaticResource OperationParamVisibilityConverter},
|
||||
ConverterParameter={StaticResource LoElev}}">
|
||||
<TextBlock Text="{Binding LoElevMsg}"/>
|
||||
<EgtWPFLib5:EgtTextBox Text="{Binding LoElev, UpdateSourceTrigger=PropertyChanged}"/>
|
||||
</UniformGrid>
|
||||
<UniformGrid Columns="2" Visibility="{Binding Type,
|
||||
Converter={StaticResource OperationParamVisibilityConverter},
|
||||
ConverterParameter={StaticResource LoCompLen}}">
|
||||
<TextBlock Text="{Binding LoCompLenMsg}"/>
|
||||
<EgtWPFLib5:EgtTextBox Text="{Binding LoCompLen, UpdateSourceTrigger=PropertyChanged}"/>
|
||||
</UniformGrid>
|
||||
</StackPanel>
|
||||
</Expander>
|
||||
<UniformGrid Columns="2" Visibility="{Binding Type,
|
||||
Converter={StaticResource OperationParamVisibilityConverter},
|
||||
ConverterParameter={StaticResource ExtLinkType}}">
|
||||
<TextBlock Text="{Binding ExtLinkTypeMsg}"/>
|
||||
<ComboBox ItemsSource="{Binding ExtLinkTypeList, Mode=OneWay}"
|
||||
SelectedIndex="{Binding SelectedExtLinkType}"
|
||||
IsSynchronizedWithCurrentItem="True">
|
||||
</ComboBox>
|
||||
</UniformGrid>
|
||||
<UniformGrid Columns="2" Visibility="{Binding Type,
|
||||
Converter={StaticResource OperationParamVisibilityConverter},
|
||||
ConverterParameter={StaticResource LeadLinkType}}">
|
||||
<TextBlock Text="{Binding LeadLinkTypeMsg}"/>
|
||||
<ComboBox ItemsSource="{Binding LeadLinkTypeList, Mode=OneWay}"
|
||||
SelectedIndex="{Binding SelectedLeadLinkType}"
|
||||
IsSynchronizedWithCurrentItem="True">
|
||||
</ComboBox>
|
||||
</UniformGrid>
|
||||
<Expander Visibility="{Binding Type,
|
||||
Converter={StaticResource OperationParamVisibilityConverter},
|
||||
ConverterParameter={StaticResource CurveUse}}"
|
||||
Style="{StaticResource ExpanderStyle}">
|
||||
<Expander.Header>
|
||||
<UniformGrid Columns="2">
|
||||
<TextBlock Text="{Binding CurveUseMsg}" Margin="0,0,5,0"
|
||||
VerticalAlignment="Center"/>
|
||||
<ComboBox ItemsSource="{Binding CurveUseList, Mode=OneWay}"
|
||||
SelectedIndex="{Binding SelectedCurveUse}"
|
||||
IsSynchronizedWithCurrentItem="True">
|
||||
</ComboBox>
|
||||
</UniformGrid>
|
||||
</Expander.Header>
|
||||
<StackPanel Margin="2">
|
||||
<UniformGrid Columns="2" Visibility="{Binding Type,
|
||||
Converter={StaticResource OperationParamVisibilityConverter},
|
||||
ConverterParameter={StaticResource Approx}}">
|
||||
<TextBlock Text="{Binding ApproxMsg}"/>
|
||||
<EgtWPFLib5:EgtTextBox Text="{Binding Approx, UpdateSourceTrigger=PropertyChanged}"/>
|
||||
</UniformGrid>
|
||||
<UniformGrid Columns="2" Visibility="{Binding Type,
|
||||
Converter={StaticResource OperationParamVisibilityConverter},
|
||||
ConverterParameter={StaticResource StepExtArc}}">
|
||||
<TextBlock Text="{Binding StepExtArcMsg}"/>
|
||||
<EgtWPFLib5:EgtTextBox Text="{Binding StepExtArc, UpdateSourceTrigger=PropertyChanged}"/>
|
||||
</UniformGrid>
|
||||
<UniformGrid Columns="2" Visibility="{Binding Type,
|
||||
Converter={StaticResource OperationParamVisibilityConverter},
|
||||
ConverterParameter={StaticResource StepIntArc}}">
|
||||
<TextBlock Text="{Binding StepIntArcMsg}"/>
|
||||
<EgtWPFLib5:EgtTextBox Text="{Binding StepIntArc, UpdateSourceTrigger=PropertyChanged}"/>
|
||||
</UniformGrid>
|
||||
</StackPanel>
|
||||
</Expander>
|
||||
<Expander Visibility="{Binding Type,
|
||||
Converter={StaticResource OperationParamVisibilityConverter},
|
||||
ConverterParameter={StaticResource LeaveTab}}"
|
||||
Style="{StaticResource ExpanderStyle}">
|
||||
<Expander.Header>
|
||||
<UniformGrid Columns="2">
|
||||
<TextBlock Text="{Binding LeaveTabMsg}"/>
|
||||
<CheckBox HorizontalAlignment="Center" IsChecked="{Binding LeaveTab}" />
|
||||
</UniformGrid>
|
||||
</Expander.Header>
|
||||
<StackPanel>
|
||||
<UniformGrid Columns="2" Visibility="{Binding Type,
|
||||
Converter={StaticResource OperationParamVisibilityConverter},
|
||||
ConverterParameter={StaticResource TabLen}}">
|
||||
<TextBlock Text="{Binding TabLenMsg}"/>
|
||||
<EgtWPFLib5:EgtTextBox Text="{Binding TabLen, UpdateSourceTrigger=PropertyChanged}"/>
|
||||
</UniformGrid>
|
||||
<UniformGrid Columns="2" Visibility="{Binding Type,
|
||||
Converter={StaticResource OperationParamVisibilityConverter},
|
||||
ConverterParameter={StaticResource TabHeight}}">
|
||||
<TextBlock Text="{Binding TabHeightMsg}"/>
|
||||
<EgtWPFLib5:EgtTextBox Text="{Binding TabHeight, UpdateSourceTrigger=PropertyChanged}"/>
|
||||
</UniformGrid>
|
||||
<UniformGrid Columns="2" Visibility="{Binding Type,
|
||||
Converter={StaticResource OperationParamVisibilityConverter},
|
||||
ConverterParameter={StaticResource TabAngle}}">
|
||||
<TextBlock Text="{Binding TabAngleMsg}"/>
|
||||
<EgtWPFLib5:EgtTextBox Text="{Binding TabAngle, UpdateSourceTrigger=PropertyChanged}"/>
|
||||
</UniformGrid>
|
||||
<UniformGrid Columns="2" Visibility="{Binding Type,
|
||||
Converter={StaticResource OperationParamVisibilityConverter},
|
||||
ConverterParameter={StaticResource TabDist}}">
|
||||
<TextBlock Text="{Binding TabDistMsg}"/>
|
||||
<EgtWPFLib5:EgtTextBox Text="{Binding TabDist, UpdateSourceTrigger=PropertyChanged}"/>
|
||||
</UniformGrid>
|
||||
<UniformGrid Columns="2" Visibility="{Binding Type,
|
||||
Converter={StaticResource OperationParamVisibilityConverter},
|
||||
ConverterParameter={StaticResource TabMin}}">
|
||||
<TextBlock Text="{Binding TabMinMsg}"/>
|
||||
<EgtWPFLib5:EgtTextBox Text="{Binding TabMin, UpdateSourceTrigger=PropertyChanged}"/>
|
||||
</UniformGrid>
|
||||
<UniformGrid Columns="2" Visibility="{Binding Type,
|
||||
Converter={StaticResource OperationParamVisibilityConverter},
|
||||
ConverterParameter={StaticResource TabMax}}">
|
||||
<TextBlock Text="{Binding TabMaxMsg}"/>
|
||||
<EgtWPFLib5:EgtTextBox Text="{Binding TabMax, UpdateSourceTrigger=PropertyChanged}"/>
|
||||
</UniformGrid>
|
||||
</StackPanel>
|
||||
</Expander>
|
||||
<Expander Visibility="{Binding Type,
|
||||
Converter={StaticResource OperationParamVisibilityConverter},
|
||||
ConverterParameter={StaticResource OscEnable}}"
|
||||
Style="{StaticResource ExpanderStyle}">
|
||||
<Expander.Header>
|
||||
<UniformGrid Columns="2">
|
||||
<TextBlock Text="{Binding OscEnableMsg}"/>
|
||||
<CheckBox HorizontalAlignment="Center" IsChecked="{Binding OscEnable}" />
|
||||
</UniformGrid>
|
||||
</Expander.Header>
|
||||
<StackPanel>
|
||||
<UniformGrid Columns="2" Visibility="{Binding Type,
|
||||
Converter={StaticResource OperationParamVisibilityConverter},
|
||||
ConverterParameter={StaticResource OscHeight}}">
|
||||
<TextBlock Text="{Binding OscHeightMsg}"/>
|
||||
<EgtWPFLib5:EgtTextBox Text="{Binding OscHeight, UpdateSourceTrigger=PropertyChanged}"/>
|
||||
</UniformGrid>
|
||||
<UniformGrid Columns="2" Visibility="{Binding Type,
|
||||
Converter={StaticResource OperationParamVisibilityConverter},
|
||||
ConverterParameter={StaticResource OscRampLen}}">
|
||||
<TextBlock Text="{Binding OscRampLenMsg}"/>
|
||||
<EgtWPFLib5:EgtTextBox Text="{Binding OscRampLen, UpdateSourceTrigger=PropertyChanged}"/>
|
||||
</UniformGrid>
|
||||
<UniformGrid Columns="2" Visibility="{Binding Type,
|
||||
Converter={StaticResource OperationParamVisibilityConverter},
|
||||
ConverterParameter={StaticResource OscFlatLen}}">
|
||||
<TextBlock Text="{Binding OscFlatLenMsg}"/>
|
||||
<EgtWPFLib5:EgtTextBox Text="{Binding OscFlatLen, UpdateSourceTrigger=PropertyChanged}"/>
|
||||
</UniformGrid>
|
||||
</StackPanel>
|
||||
</Expander>
|
||||
<Expander Style="{StaticResource ExpanderStyle}">
|
||||
<Expander.Header>
|
||||
<TextBlock Text="{Binding ToolExpanderHeader}"/>
|
||||
</Expander.Header>
|
||||
<StackPanel>
|
||||
<UniformGrid Columns="2"
|
||||
Visibility="{Binding Type,
|
||||
Converter={StaticResource OperationParamVisibilityConverter},
|
||||
ConverterParameter={StaticResource Speed}}">
|
||||
<TextBlock Text="{Binding SpeedMsg}"/>
|
||||
<EgtWPFLib5:EgtTextBox Text="{Binding Speed, UpdateSourceTrigger=PropertyChanged}"/>
|
||||
</UniformGrid>
|
||||
<UniformGrid Columns="2"
|
||||
Visibility="{Binding Type,
|
||||
Converter={StaticResource OperationParamVisibilityConverter},
|
||||
ConverterParameter={StaticResource Feed}}">
|
||||
|
||||
<TextBlock Text="{Binding FeedMsg}"/>
|
||||
<EgtWPFLib5:EgtTextBox Text="{Binding Feed, UpdateSourceTrigger=PropertyChanged}"/>
|
||||
</UniformGrid>
|
||||
<UniformGrid Columns="2"
|
||||
Visibility="{Binding Type,
|
||||
Converter={StaticResource OperationParamVisibilityConverter},
|
||||
ConverterParameter={StaticResource TipFeed}}">
|
||||
<TextBlock Text="{Binding TipFeedMsg}"/>
|
||||
<EgtWPFLib5:EgtTextBox Text="{Binding TipFeed, UpdateSourceTrigger=PropertyChanged}"/>
|
||||
</UniformGrid>
|
||||
<UniformGrid Columns="2"
|
||||
Visibility="{Binding Type,
|
||||
Converter={StaticResource OperationParamVisibilityConverter},
|
||||
ConverterParameter={StaticResource StartFeed}}">
|
||||
<TextBlock Text="{Binding StartFeedMsg}"/>
|
||||
<EgtWPFLib5:EgtTextBox Text="{Binding StartFeed, UpdateSourceTrigger=PropertyChanged}"/>
|
||||
</UniformGrid>
|
||||
<UniformGrid Columns="2"
|
||||
Visibility="{Binding Type,
|
||||
Converter={StaticResource OperationParamVisibilityConverter},
|
||||
ConverterParameter={StaticResource EndFeed}}">
|
||||
<TextBlock Text="{Binding EndFeedMsg}"/>
|
||||
<EgtWPFLib5:EgtTextBox Text="{Binding EndFeed, UpdateSourceTrigger=PropertyChanged}"/>
|
||||
</UniformGrid>
|
||||
</StackPanel>
|
||||
</Expander>
|
||||
<Interactivity:Interaction.Behaviors>
|
||||
<EgtCAM5:AutomaticCloseExpander/>
|
||||
</Interactivity:Interaction.Behaviors>
|
||||
</StackPanel>
|
||||
<Button Name="ApplyMachBtn" Height="30" Content="{Binding UpdateMachiningBtnMsg}"
|
||||
Command="{Binding UpdateMachiningCommand}" Background="{Binding UpdateMachiningBtn_Background}"/>
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="2*"/>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<ToggleButton Name="ViewToolBtn" Grid.Column="0" Height="30" Content="{Binding ViewToolBtnMsg}"
|
||||
IsChecked="{Binding ViewTool}" />
|
||||
<Button Name="NextStepToolBtn" Grid.Column="1" Height="30" Content="{Binding NextStepToolBtnMsg}"
|
||||
Command="{Binding NextStepToolCommand}" IsEnabled="{Binding IsChecked, ElementName=ViewToolBtn}"/>
|
||||
<Button Name="PrevStepToolBtn" Grid.Column="2" Height="30" Content="{Binding PrevStepToolBtnMsg}"
|
||||
Command="{Binding PrevStepToolCommand}" IsEnabled="{Binding IsChecked, ElementName=ViewToolBtn}"/>
|
||||
</Grid>
|
||||
</StackPanel>
|
||||
|
||||
</UserControl>
|
||||
|
||||
+69
-69
@@ -3,81 +3,81 @@ Imports EgtWPFLib5.EgtFloating
|
||||
|
||||
Public Class MachiningParameterExpanderV
|
||||
|
||||
Private EgtFloatingTray As EgtFloatingTray
|
||||
Private EgtFloatingPanel As EgtFloatingPanel
|
||||
'Private EgtFloatingTray As EgtFloatingTray
|
||||
'Private EgtFloatingPanel As EgtFloatingPanel
|
||||
|
||||
Private m_bFirst As Boolean = True
|
||||
'Private m_bFirst As Boolean = True
|
||||
|
||||
Private Sub OperationExpanderView_Loaded(sender As Object, e As System.Windows.RoutedEventArgs) Handles Me.Loaded
|
||||
If m_bFirst Then
|
||||
EgtFloatingTray = FindAncestor(Of EgtFloatingTray)(Me)
|
||||
EgtFloatingPanel = FindAncestor(Of EgtFloatingPanel)(Me)
|
||||
AddHandler EgtFloatingTray.SizeChanged, AddressOf EgtFloatingTray_SizeChanged
|
||||
PanelHeight = EgtFloatingPanel.ActualHeight
|
||||
Me.AutomaticCloseExpanderStackPanelHeight = AutomaticCloseExpanderStackPanel.ActualHeight
|
||||
m_bFirst = False
|
||||
End If
|
||||
CalculateOperationParametersStackPanelMaxHeight()
|
||||
End Sub
|
||||
'Private Sub OperationExpanderView_Loaded(sender As Object, e As System.Windows.RoutedEventArgs) Handles Me.Loaded
|
||||
' If m_bFirst Then
|
||||
' EgtFloatingTray = FindAncestor(Of EgtFloatingTray)(Me)
|
||||
' EgtFloatingPanel = FindAncestor(Of EgtFloatingPanel)(Me)
|
||||
' AddHandler EgtFloatingTray.SizeChanged, AddressOf EgtFloatingTray_SizeChanged
|
||||
' PanelHeight = EgtFloatingPanel.ActualHeight
|
||||
' Me.AutomaticCloseExpanderStackPanelHeight = AutomaticCloseExpanderStackPanel.ActualHeight
|
||||
' m_bFirst = False
|
||||
' End If
|
||||
' CalculateOperationParametersStackPanelMaxHeight()
|
||||
'End Sub
|
||||
|
||||
Dim m_bSizeChanging As Boolean = False
|
||||
'Dim m_bSizeChanging As Boolean = False
|
||||
|
||||
Private Sub EgtFloatingTray_SizeChanged(sender As Object, e As System.Windows.SizeChangedEventArgs)
|
||||
If m_bSizeChanging Then Return
|
||||
m_bSizeChanging = True
|
||||
CalculateOperationParametersStackPanelMaxHeight()
|
||||
m_bSizeChanging = False
|
||||
End Sub
|
||||
'Private Sub EgtFloatingTray_SizeChanged(sender As Object, e As System.Windows.SizeChangedEventArgs)
|
||||
' If m_bSizeChanging Then Return
|
||||
' m_bSizeChanging = True
|
||||
' CalculateOperationParametersStackPanelMaxHeight()
|
||||
' m_bSizeChanging = False
|
||||
'End Sub
|
||||
|
||||
Dim PanelHeight As Double = 0
|
||||
Dim AutomaticCloseExpanderStackPanelHeight As Double = 0
|
||||
'Dim PanelHeight As Double = 0
|
||||
'Dim AutomaticCloseExpanderStackPanelHeight As Double = 0
|
||||
|
||||
Private Sub CalculateOperationParametersStackPanelMaxHeight()
|
||||
Dim AutomaticCloseExpanderStackPanelHeight As Double = 0
|
||||
Dim OpenedExpanderList As New List(Of Boolean)
|
||||
For Index = 0 To AutomaticCloseExpanderStackPanel.Children.Count - 1
|
||||
If TypeOf AutomaticCloseExpanderStackPanel.Children(Index) Is Expander Then
|
||||
Dim IndexedExpander As Expander = DirectCast(AutomaticCloseExpanderStackPanel.Children(Index), Expander)
|
||||
If IndexedExpander.IsExpanded Then
|
||||
OpenedExpanderList.Add(True)
|
||||
IndexedExpander.IsExpanded = False
|
||||
Dim CurrExpanderContent As FrameworkElement = DirectCast(IndexedExpander.Content, FrameworkElement)
|
||||
CurrExpanderContent.Measure(New Size(Double.PositiveInfinity, Double.PositiveInfinity))
|
||||
AutomaticCloseExpanderStackPanelHeight -= CurrExpanderContent.DesiredSize.Height
|
||||
' Sottraggo anche i padding
|
||||
AutomaticCloseExpanderStackPanelHeight -= (IndexedExpander.Padding.Top + IndexedExpander.Padding.Bottom)
|
||||
Else
|
||||
OpenedExpanderList.Add(False)
|
||||
End If
|
||||
Else
|
||||
OpenedExpanderList.Add(False)
|
||||
End If
|
||||
Next
|
||||
Dim RemainingHeight As Double = EgtFloatingTray.ActualHeight - PanelHeight
|
||||
AutomaticCloseExpanderStackPanel.MaxHeight = Me.AutomaticCloseExpanderStackPanelHeight + RemainingHeight
|
||||
For Index = AutomaticCloseExpanderStackPanel.Children.Count - 1 To 0 Step -1
|
||||
If TypeOf AutomaticCloseExpanderStackPanel.Children(Index) Is Expander Then
|
||||
Dim IndexedExpander As Expander = DirectCast(AutomaticCloseExpanderStackPanel.Children(Index), Expander)
|
||||
If OpenedExpanderList(Index) Then
|
||||
IndexedExpander.IsExpanded = True
|
||||
End If
|
||||
End If
|
||||
Next
|
||||
End Sub
|
||||
'Private Sub CalculateOperationParametersStackPanelMaxHeight()
|
||||
' Dim AutomaticCloseExpanderStackPanelHeight As Double = 0
|
||||
' Dim OpenedExpanderList As New List(Of Boolean)
|
||||
' For Index = 0 To AutomaticCloseExpanderStackPanel.Children.Count - 1
|
||||
' If TypeOf AutomaticCloseExpanderStackPanel.Children(Index) Is Expander Then
|
||||
' Dim IndexedExpander As Expander = DirectCast(AutomaticCloseExpanderStackPanel.Children(Index), Expander)
|
||||
' If IndexedExpander.IsExpanded Then
|
||||
' OpenedExpanderList.Add(True)
|
||||
' IndexedExpander.IsExpanded = False
|
||||
' Dim CurrExpanderContent As FrameworkElement = DirectCast(IndexedExpander.Content, FrameworkElement)
|
||||
' CurrExpanderContent.Measure(New Size(Double.PositiveInfinity, Double.PositiveInfinity))
|
||||
' AutomaticCloseExpanderStackPanelHeight -= CurrExpanderContent.DesiredSize.Height
|
||||
' ' Sottraggo anche i padding
|
||||
' AutomaticCloseExpanderStackPanelHeight -= (IndexedExpander.Padding.Top + IndexedExpander.Padding.Bottom)
|
||||
' Else
|
||||
' OpenedExpanderList.Add(False)
|
||||
' End If
|
||||
' Else
|
||||
' OpenedExpanderList.Add(False)
|
||||
' End If
|
||||
' Next
|
||||
' Dim RemainingHeight As Double = EgtFloatingTray.ActualHeight - PanelHeight
|
||||
' AutomaticCloseExpanderStackPanel.MaxHeight = Me.AutomaticCloseExpanderStackPanelHeight + RemainingHeight
|
||||
' For Index = AutomaticCloseExpanderStackPanel.Children.Count - 1 To 0 Step -1
|
||||
' If TypeOf AutomaticCloseExpanderStackPanel.Children(Index) Is Expander Then
|
||||
' Dim IndexedExpander As Expander = DirectCast(AutomaticCloseExpanderStackPanel.Children(Index), Expander)
|
||||
' If OpenedExpanderList(Index) Then
|
||||
' IndexedExpander.IsExpanded = True
|
||||
' End If
|
||||
' End If
|
||||
' Next
|
||||
'End Sub
|
||||
|
||||
' Funzione che permette di trovare il primo contenitore di tipo T di un elemento grafico dependencyObject
|
||||
Public Function FindAncestor(Of T As Class)(dependencyObject As DependencyObject) As T
|
||||
Dim target As DependencyObject = dependencyObject
|
||||
Do
|
||||
target = LogicalTreeHelper.GetParent(target)
|
||||
Loop While target IsNot Nothing AndAlso Not (TypeOf target Is T)
|
||||
If IsNothing(target) Then
|
||||
target = dependencyObject
|
||||
Do
|
||||
target = VisualTreeHelper.GetParent(target)
|
||||
Loop While target IsNot Nothing AndAlso Not (TypeOf target Is T)
|
||||
End If
|
||||
Return TryCast(target, T)
|
||||
End Function
|
||||
'' Funzione che permette di trovare il primo contenitore di tipo T di un elemento grafico dependencyObject
|
||||
'Public Function FindAncestor(Of T As Class)(dependencyObject As DependencyObject) As T
|
||||
' Dim target As DependencyObject = dependencyObject
|
||||
' Do
|
||||
' target = LogicalTreeHelper.GetParent(target)
|
||||
' Loop While target IsNot Nothing AndAlso Not (TypeOf target Is T)
|
||||
' If IsNothing(target) Then
|
||||
' target = dependencyObject
|
||||
' Do
|
||||
' target = VisualTreeHelper.GetParent(target)
|
||||
' Loop While target IsNot Nothing AndAlso Not (TypeOf target Is T)
|
||||
' End If
|
||||
' Return TryCast(target, T)
|
||||
'End Function
|
||||
|
||||
End Class
|
||||
|
||||
+138
-2543
File diff suppressed because it is too large
Load Diff
+252
@@ -0,0 +1,252 @@
|
||||
<UserControl x:Class="MortisingParameterExpanderV"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:sys="clr-namespace:System;assembly=mscorlib"
|
||||
xmlns:Interactivity="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
|
||||
xmlns:EgtCAM5="clr-namespace:EgtCAM5"
|
||||
xmlns:EgtWPFLib5="clr-namespace:EgtWPFLib5;assembly=EgtWPFLib5">
|
||||
|
||||
<UserControl.Resources>
|
||||
<EgtCAM5:OperationParamVisibilityConverter x:Key="OperationParamVisibilityConverter"/>
|
||||
<EgtCAM5:DepthUnitConverter x:Key="DepthUnitConverter"/>
|
||||
<sys:Int32 x:Key="Invert">0</sys:Int32>
|
||||
<sys:Int32 x:Key="LeaveTab">1</sys:Int32>
|
||||
<sys:Int32 x:Key="WorkSide">2</sys:Int32>
|
||||
<sys:Int32 x:Key="HeadSide">3</sys:Int32>
|
||||
<sys:Int32 x:Key="LeadInType">4</sys:Int32>
|
||||
<sys:Int32 x:Key="ExtLinkType">5</sys:Int32>
|
||||
<sys:Int32 x:Key="LeadOutType">6</sys:Int32>
|
||||
<sys:Int32 x:Key="CurveUse">7</sys:Int32>
|
||||
<sys:Int32 x:Key="StepType">8</sys:Int32>
|
||||
<sys:Int32 x:Key="LeadLinkType">9</sys:Int32>
|
||||
<sys:Int32 x:Key="Speed">10</sys:Int32>
|
||||
<sys:Int32 x:Key="Feed">11</sys:Int32>
|
||||
<sys:Int32 x:Key="StartFeed">12</sys:Int32>
|
||||
<sys:Int32 x:Key="EndFeed">13</sys:Int32>
|
||||
<sys:Int32 x:Key="TipFeed">14</sys:Int32>
|
||||
<sys:Int32 x:Key="OffSr">15</sys:Int32>
|
||||
<sys:Int32 x:Key="OffSl">16</sys:Int32>
|
||||
<sys:Int32 x:Key="SideAngle">17</sys:Int32>
|
||||
<sys:Int32 x:Key="Approx">18</sys:Int32>
|
||||
<sys:Int32 x:Key="StartPos">19</sys:Int32>
|
||||
<sys:Int32 x:Key="StartSlowLen">20</sys:Int32>
|
||||
<sys:Int32 x:Key="EndSlowLen">21</sys:Int32>
|
||||
<sys:Int32 x:Key="ThrouAddLen">22</sys:Int32>
|
||||
<sys:Int32 x:Key="StepPar">23</sys:Int32>
|
||||
<sys:Int32 x:Key="ReturnPos">24</sys:Int32>
|
||||
<sys:Int32 x:Key="TabLen">25</sys:Int32>
|
||||
<sys:Int32 x:Key="TabDist">26</sys:Int32>
|
||||
<sys:Int32 x:Key="TabHeight">27</sys:Int32>
|
||||
<sys:Int32 x:Key="TabAngle">28</sys:Int32>
|
||||
<sys:Int32 x:Key="LiTang">29</sys:Int32>
|
||||
<sys:Int32 x:Key="LiPerp">30</sys:Int32>
|
||||
<sys:Int32 x:Key="LiElev">31</sys:Int32>
|
||||
<sys:Int32 x:Key="LiCompLen">32</sys:Int32>
|
||||
<sys:Int32 x:Key="LoTang">33</sys:Int32>
|
||||
<sys:Int32 x:Key="LoPerp">34</sys:Int32>
|
||||
<sys:Int32 x:Key="LoElev">35</sys:Int32>
|
||||
<sys:Int32 x:Key="LoCompLen">36</sys:Int32>
|
||||
<sys:Int32 x:Key="StartAddLen">37</sys:Int32>
|
||||
<sys:Int32 x:Key="EndAddLen">38</sys:Int32>
|
||||
<sys:Int32 x:Key="StepExtArc">39</sys:Int32>
|
||||
<sys:Int32 x:Key="StepIntArc">40</sys:Int32>
|
||||
<sys:Int32 x:Key="SideStep">41</sys:Int32>
|
||||
<sys:Int32 x:Key="VertFeed">42</sys:Int32>
|
||||
<sys:Int32 x:Key="NamePar">43</sys:Int32>
|
||||
<sys:Int32 x:Key="Tool">44</sys:Int32>
|
||||
<sys:Int32 x:Key="DepthStr">45</sys:Int32>
|
||||
<sys:Int32 x:Key="UserNotes">46</sys:Int32>
|
||||
<sys:Int32 x:Key="OverLapStr">47</sys:Int32>
|
||||
<sys:Int32 x:Key="OffsetStr">48</sys:Int32>
|
||||
<sys:Int32 x:Key="SubType">49</sys:Int32>
|
||||
<sys:Int32 x:Key="SolChoiceType">50</sys:Int32>
|
||||
<sys:Int32 x:Key="AxRotRef">51</sys:Int32>
|
||||
<sys:Int32 x:Key="BlockedAxesRef">52</sys:Int32>
|
||||
<sys:Int32 x:Key="FaceUseType">53</sys:Int32>
|
||||
<sys:Int32 x:Key="InvertToolDir">54</sys:Int32>
|
||||
<sys:Int32 x:Key="ExpanderLeadIn">55</sys:Int32>
|
||||
<sys:Int32 x:Key="ExpanderLeadOut">56</sys:Int32>
|
||||
<sys:Int32 x:Key="ApproxGen">57</sys:Int32>
|
||||
<sys:Int32 x:Key="OscEnable">58</sys:Int32>
|
||||
<sys:Int32 x:Key="OscHeight">59</sys:Int32>
|
||||
<sys:Int32 x:Key="OscRampLen">60</sys:Int32>
|
||||
<sys:Int32 x:Key="OscFlatLen">61</sys:Int32>
|
||||
</UserControl.Resources>
|
||||
|
||||
<StackPanel Name="OperationParametersStackPanel">
|
||||
<StackPanel Name="OperationFirstParametersStackPanel">
|
||||
<UniformGrid Columns="2">
|
||||
<TextBlock Text="{Binding DepthMsg}" Style="{DynamicResource MPExpander_DepthTxBlMargin}"/>
|
||||
<EgtWPFLib5:EgtTextBox Text="{Binding DepthStr, UpdateSourceTrigger=PropertyChanged,
|
||||
Converter={StaticResource DepthUnitConverter}}"
|
||||
Style="{DynamicResource MPExpander_DepthTxBxMargin}"/>
|
||||
</UniformGrid>
|
||||
<EgtWPFLib5:CheckParamV
|
||||
ParamTxBl="{Binding InvertMsg}"
|
||||
ParamChBx="{Binding Path=Invert,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource CheckParamV_Margin}"/>
|
||||
<EgtWPFLib5:ComboParamV
|
||||
ParamTxBl="{Binding WorkSideMsg}"
|
||||
ParamCmBxList="{Binding Path=WorkSideList,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
ParamCmBxSelIndex="{Binding Path=SelectedWorkSide}"
|
||||
Style="{DynamicResource ComboParamV_Margin}"/>
|
||||
<UniformGrid Columns="2">
|
||||
<TextBlock Text="{Binding UserNotesMsg}"
|
||||
Style="{DynamicResource MPExpander_UserNotesTxBlMargin}"/>
|
||||
<EgtWPFLib5:EgtTextBox Text="{Binding UserNotes, UpdateSourceTrigger=PropertyChanged}"
|
||||
Style="{DynamicResource MPExpander_UserNotesTxBxMargin}">
|
||||
<EgtWPFLib5:EgtTextBox.ToolTip>
|
||||
<TextBlock Text="{Binding UserNotesTooltip}"/>
|
||||
</EgtWPFLib5:EgtTextBox.ToolTip>
|
||||
</EgtWPFLib5:EgtTextBox>
|
||||
</UniformGrid>
|
||||
</StackPanel>
|
||||
<StackPanel Name="AutomaticCloseExpanderStackPanel">
|
||||
<Expander Header="{Binding GenericExpanderHeader}" Name="GenericExpander"
|
||||
Style="{StaticResource ExpanderStyle}" Margin="0,1,0,1">
|
||||
<StackPanel>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding StartPosMsg}"
|
||||
ParamTxBx="{Binding Path=StartPos,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:ComboParamV
|
||||
ParamTxBl="{Binding StepTypeMsg}"
|
||||
ParamCmBxList="{Binding Path=StepTypeList,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
ParamCmBxSelIndex="{Binding Path=SelectedStepType}"
|
||||
Style="{DynamicResource ComboParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding StepParMsg}"
|
||||
ParamTxBx="{Binding Path=StepPar,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding OffsetSrMsg}"
|
||||
ParamTxBx="{Binding Path=OffSr,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding OffsetSlMsg}"
|
||||
ParamTxBx="{Binding Path=OffSl,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
</StackPanel>
|
||||
</Expander>
|
||||
|
||||
<Expander Header="{Binding AdvancedParamMsg}" Name="AdvancedParam"
|
||||
Style="{StaticResource ExpanderStyle}" Margin="0,1,0,1">
|
||||
<StackPanel>
|
||||
<EgtWPFLib5:CheckParamV
|
||||
ParamTxBl="{Binding InvertToolDirMsg}"
|
||||
ParamChBx="{Binding Path=ToolInvert,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource CheckParamV_Margin}"/>
|
||||
<EgtWPFLib5:ComboParamV
|
||||
ParamTxBl="{Binding FaceUseTypeMsg}"
|
||||
ParamCmBxList="{Binding Path=FaceUseTypeList,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
ParamCmBxSelIndex="{Binding Path=SelectedFaceUseType}"
|
||||
Style="{DynamicResource ComboParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding InitAngsMsg}"
|
||||
ParamTxBx="{Binding Path=InitAngs,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding BlockedAxisMsg}"
|
||||
ParamTxBx="{Binding Path=BlockedAxis,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:ComboParamV
|
||||
ParamTxBl="{Binding SolChoiceTypeMsg}"
|
||||
ParamCmBxList="{Binding Path=SolChoiceTypeList,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True,
|
||||
Mode=OneWay}"
|
||||
ParamCmBxSelIndex="{Binding Path=SelectedSolChoiceType}"
|
||||
Style="{DynamicResource ComboParamV_Margin}"/>
|
||||
</StackPanel>
|
||||
</Expander>
|
||||
|
||||
<Expander Header="{Binding LeadInTypeMsg}" Name="LeadInTypeMsg"
|
||||
Style="{StaticResource ExpanderStyle}" Margin="0,1,0,1">
|
||||
<StackPanel>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding StartAddLenMsg}"
|
||||
ParamTxBx="{Binding Path=StartAddLen,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
</StackPanel>
|
||||
</Expander>
|
||||
|
||||
<Expander Header="{Binding LeadOutTypeMsg}" Name="LeadOutType"
|
||||
Style="{StaticResource ExpanderStyle}" Margin="0,1,0,1">
|
||||
<StackPanel>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding EndAddLenMsg}"
|
||||
ParamTxBx="{Binding Path=EndAddLen,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
</StackPanel>
|
||||
</Expander>
|
||||
|
||||
<Expander Style="{StaticResource ExpanderStyle}">
|
||||
<Expander.Header>
|
||||
<TextBlock Text="{Binding ToolExpanderHeader}"/>
|
||||
</Expander.Header>
|
||||
<StackPanel>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding SpeedMsg}"
|
||||
ParamTxBx="{Binding Path=Speed,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding FeedMsg}"
|
||||
ParamTxBx="{Binding Path=Feed,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding TipFeedMsg}"
|
||||
ParamTxBx="{Binding Path=TipFeed,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding StartFeedMsg}"
|
||||
ParamTxBx="{Binding Path=StartFeed,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding EndFeedMsg}"
|
||||
ParamTxBx="{Binding Path=EndFeed,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
</StackPanel>
|
||||
</Expander>
|
||||
<Interactivity:Interaction.Behaviors>
|
||||
<EgtCAM5:AutomaticCloseExpander/>
|
||||
</Interactivity:Interaction.Behaviors>
|
||||
</StackPanel>
|
||||
</StackPanel>
|
||||
|
||||
</UserControl>
|
||||
+83
@@ -0,0 +1,83 @@
|
||||
Imports EgtWPFLib5
|
||||
Imports EgtWPFLib5.EgtFloating
|
||||
|
||||
Public Class MortisingParameterExpanderV
|
||||
|
||||
Private EgtFloatingTray As EgtFloatingTray
|
||||
Private EgtFloatingPanel As EgtFloatingPanel
|
||||
|
||||
Private m_bFirst As Boolean = True
|
||||
|
||||
Private Sub OperationExpanderView_Loaded(sender As Object, e As System.Windows.RoutedEventArgs) Handles Me.Loaded
|
||||
If m_bFirst Then
|
||||
EgtFloatingTray = FindAncestor(Of EgtFloatingTray)(Me)
|
||||
EgtFloatingPanel = FindAncestor(Of EgtFloatingPanel)(Me)
|
||||
AddHandler EgtFloatingTray.SizeChanged, AddressOf EgtFloatingTray_SizeChanged
|
||||
PanelHeight = EgtFloatingPanel.ActualHeight
|
||||
Me.AutomaticCloseExpanderStackPanelHeight = AutomaticCloseExpanderStackPanel.ActualHeight
|
||||
m_bFirst = False
|
||||
End If
|
||||
CalculateOperationParametersStackPanelMaxHeight()
|
||||
End Sub
|
||||
|
||||
Dim m_bSizeChanging As Boolean = False
|
||||
|
||||
Private Sub EgtFloatingTray_SizeChanged(sender As Object, e As System.Windows.SizeChangedEventArgs)
|
||||
If m_bSizeChanging Then Return
|
||||
m_bSizeChanging = True
|
||||
CalculateOperationParametersStackPanelMaxHeight()
|
||||
m_bSizeChanging = False
|
||||
End Sub
|
||||
|
||||
Dim PanelHeight As Double = 0
|
||||
Dim AutomaticCloseExpanderStackPanelHeight As Double = 0
|
||||
|
||||
Private Sub CalculateOperationParametersStackPanelMaxHeight()
|
||||
Dim AutomaticCloseExpanderStackPanelHeight As Double = 0
|
||||
Dim OpenedExpanderList As New List(Of Boolean)
|
||||
For Index = 0 To AutomaticCloseExpanderStackPanel.Children.Count - 1
|
||||
If TypeOf AutomaticCloseExpanderStackPanel.Children(Index) Is Expander Then
|
||||
Dim IndexedExpander As Expander = DirectCast(AutomaticCloseExpanderStackPanel.Children(Index), Expander)
|
||||
If IndexedExpander.IsExpanded Then
|
||||
OpenedExpanderList.Add(True)
|
||||
IndexedExpander.IsExpanded = False
|
||||
Dim CurrExpanderContent As FrameworkElement = DirectCast(IndexedExpander.Content, FrameworkElement)
|
||||
CurrExpanderContent.Measure(New Size(Double.PositiveInfinity, Double.PositiveInfinity))
|
||||
AutomaticCloseExpanderStackPanelHeight -= CurrExpanderContent.DesiredSize.Height
|
||||
' Sottraggo anche i padding
|
||||
AutomaticCloseExpanderStackPanelHeight -= (IndexedExpander.Padding.Top + IndexedExpander.Padding.Bottom)
|
||||
Else
|
||||
OpenedExpanderList.Add(False)
|
||||
End If
|
||||
Else
|
||||
OpenedExpanderList.Add(False)
|
||||
End If
|
||||
Next
|
||||
Dim RemainingHeight As Double = EgtFloatingTray.ActualHeight - PanelHeight
|
||||
AutomaticCloseExpanderStackPanel.MaxHeight = Me.AutomaticCloseExpanderStackPanelHeight + RemainingHeight
|
||||
For Index = AutomaticCloseExpanderStackPanel.Children.Count - 1 To 0 Step -1
|
||||
If TypeOf AutomaticCloseExpanderStackPanel.Children(Index) Is Expander Then
|
||||
Dim IndexedExpander As Expander = DirectCast(AutomaticCloseExpanderStackPanel.Children(Index), Expander)
|
||||
If OpenedExpanderList(Index) Then
|
||||
IndexedExpander.IsExpanded = True
|
||||
End If
|
||||
End If
|
||||
Next
|
||||
End Sub
|
||||
|
||||
' Funzione che permette di trovare il primo contenitore di tipo T di un elemento grafico dependencyObject
|
||||
Public Function FindAncestor(Of T As Class)(dependencyObject As DependencyObject) As T
|
||||
Dim target As DependencyObject = dependencyObject
|
||||
Do
|
||||
target = LogicalTreeHelper.GetParent(target)
|
||||
Loop While target IsNot Nothing AndAlso Not (TypeOf target Is T)
|
||||
If IsNothing(target) Then
|
||||
target = dependencyObject
|
||||
Do
|
||||
target = VisualTreeHelper.GetParent(target)
|
||||
Loop While target IsNot Nothing AndAlso Not (TypeOf target Is T)
|
||||
End If
|
||||
Return TryCast(target, T)
|
||||
End Function
|
||||
|
||||
End Class
|
||||
+272
@@ -0,0 +1,272 @@
|
||||
<UserControl x:Class="PocketingParameterExpanderV"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:sys="clr-namespace:System;assembly=mscorlib"
|
||||
xmlns:Interactivity="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
|
||||
xmlns:EgtCAM5="clr-namespace:EgtCAM5"
|
||||
xmlns:EgtWPFLib5="clr-namespace:EgtWPFLib5;assembly=EgtWPFLib5">
|
||||
|
||||
<UserControl.Resources>
|
||||
<EgtCAM5:OperationParamVisibilityConverter x:Key="OperationParamVisibilityConverter"/>
|
||||
<EgtCAM5:DepthUnitConverter x:Key="DepthUnitConverter"/>
|
||||
<sys:Int32 x:Key="Invert">0</sys:Int32>
|
||||
<sys:Int32 x:Key="LeaveTab">1</sys:Int32>
|
||||
<sys:Int32 x:Key="WorkSide">2</sys:Int32>
|
||||
<sys:Int32 x:Key="HeadSide">3</sys:Int32>
|
||||
<sys:Int32 x:Key="LeadInType">4</sys:Int32>
|
||||
<sys:Int32 x:Key="ExtLinkType">5</sys:Int32>
|
||||
<sys:Int32 x:Key="LeadOutType">6</sys:Int32>
|
||||
<sys:Int32 x:Key="CurveUse">7</sys:Int32>
|
||||
<sys:Int32 x:Key="StepType">8</sys:Int32>
|
||||
<sys:Int32 x:Key="LeadLinkType">9</sys:Int32>
|
||||
<sys:Int32 x:Key="Speed">10</sys:Int32>
|
||||
<sys:Int32 x:Key="Feed">11</sys:Int32>
|
||||
<sys:Int32 x:Key="StartFeed">12</sys:Int32>
|
||||
<sys:Int32 x:Key="EndFeed">13</sys:Int32>
|
||||
<sys:Int32 x:Key="TipFeed">14</sys:Int32>
|
||||
<sys:Int32 x:Key="OffSr">15</sys:Int32>
|
||||
<sys:Int32 x:Key="OffSl">16</sys:Int32>
|
||||
<sys:Int32 x:Key="SideAngle">17</sys:Int32>
|
||||
<sys:Int32 x:Key="Approx">18</sys:Int32>
|
||||
<sys:Int32 x:Key="StartPos">19</sys:Int32>
|
||||
<sys:Int32 x:Key="StartSlowLen">20</sys:Int32>
|
||||
<sys:Int32 x:Key="EndSlowLen">21</sys:Int32>
|
||||
<sys:Int32 x:Key="ThrouAddLen">22</sys:Int32>
|
||||
<sys:Int32 x:Key="StepPar">23</sys:Int32>
|
||||
<sys:Int32 x:Key="ReturnPos">24</sys:Int32>
|
||||
<sys:Int32 x:Key="TabLen">25</sys:Int32>
|
||||
<sys:Int32 x:Key="TabDist">26</sys:Int32>
|
||||
<sys:Int32 x:Key="TabHeight">27</sys:Int32>
|
||||
<sys:Int32 x:Key="TabAngle">28</sys:Int32>
|
||||
<sys:Int32 x:Key="LiTang">29</sys:Int32>
|
||||
<sys:Int32 x:Key="LiPerp">30</sys:Int32>
|
||||
<sys:Int32 x:Key="LiElev">31</sys:Int32>
|
||||
<sys:Int32 x:Key="LiCompLen">32</sys:Int32>
|
||||
<sys:Int32 x:Key="LoTang">33</sys:Int32>
|
||||
<sys:Int32 x:Key="LoPerp">34</sys:Int32>
|
||||
<sys:Int32 x:Key="LoElev">35</sys:Int32>
|
||||
<sys:Int32 x:Key="LoCompLen">36</sys:Int32>
|
||||
<sys:Int32 x:Key="StartAddLen">37</sys:Int32>
|
||||
<sys:Int32 x:Key="EndAddLen">38</sys:Int32>
|
||||
<sys:Int32 x:Key="StepExtArc">39</sys:Int32>
|
||||
<sys:Int32 x:Key="StepIntArc">40</sys:Int32>
|
||||
<sys:Int32 x:Key="SideStep">41</sys:Int32>
|
||||
<sys:Int32 x:Key="VertFeed">42</sys:Int32>
|
||||
<sys:Int32 x:Key="NamePar">43</sys:Int32>
|
||||
<sys:Int32 x:Key="Tool">44</sys:Int32>
|
||||
<sys:Int32 x:Key="DepthStr">45</sys:Int32>
|
||||
<sys:Int32 x:Key="UserNotes">46</sys:Int32>
|
||||
<sys:Int32 x:Key="OverLapStr">47</sys:Int32>
|
||||
<sys:Int32 x:Key="OffsetStr">48</sys:Int32>
|
||||
<sys:Int32 x:Key="SubType">49</sys:Int32>
|
||||
<sys:Int32 x:Key="SolChoiceType">50</sys:Int32>
|
||||
<sys:Int32 x:Key="AxRotRef">51</sys:Int32>
|
||||
<sys:Int32 x:Key="BlockedAxesRef">52</sys:Int32>
|
||||
<sys:Int32 x:Key="FaceUseType">53</sys:Int32>
|
||||
<sys:Int32 x:Key="InvertToolDir">54</sys:Int32>
|
||||
<sys:Int32 x:Key="ExpanderLeadIn">55</sys:Int32>
|
||||
<sys:Int32 x:Key="ExpanderLeadOut">56</sys:Int32>
|
||||
<sys:Int32 x:Key="ApproxGen">57</sys:Int32>
|
||||
<sys:Int32 x:Key="OscEnable">58</sys:Int32>
|
||||
<sys:Int32 x:Key="OscHeight">59</sys:Int32>
|
||||
<sys:Int32 x:Key="OscRampLen">60</sys:Int32>
|
||||
<sys:Int32 x:Key="OscFlatLen">61</sys:Int32>
|
||||
</UserControl.Resources>
|
||||
|
||||
<StackPanel Name="OperationParametersStackPanel">
|
||||
<StackPanel Name="OperationFirstParametersStackPanel">
|
||||
<UniformGrid Columns="2">
|
||||
<TextBlock Text="{Binding DepthMsg}" Style="{DynamicResource MPExpander_DepthTxBlMargin}"/>
|
||||
<EgtWPFLib5:EgtTextBox Text="{Binding DepthStr, UpdateSourceTrigger=PropertyChanged,
|
||||
Converter={StaticResource DepthUnitConverter}}"
|
||||
Style="{DynamicResource MPExpander_DepthTxBxMargin}"/>
|
||||
</UniformGrid>
|
||||
<EgtWPFLib5:CheckParamV
|
||||
ParamTxBl="{Binding InvertMsg}"
|
||||
ParamChBx="{Binding Path=Invert,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource CheckParamV_Margin}"/>
|
||||
<UniformGrid Columns="2">
|
||||
<TextBlock Text="{Binding UserNotesMsg}"
|
||||
Style="{DynamicResource MPExpander_UserNotesTxBlMargin}"/>
|
||||
<EgtWPFLib5:EgtTextBox Text="{Binding UserNotes, UpdateSourceTrigger=PropertyChanged}"
|
||||
Style="{DynamicResource MPExpander_UserNotesTxBxMargin}">
|
||||
<EgtWPFLib5:EgtTextBox.ToolTip>
|
||||
<TextBlock Text="{Binding UserNotesTooltip}"/>
|
||||
</EgtWPFLib5:EgtTextBox.ToolTip>
|
||||
</EgtWPFLib5:EgtTextBox>
|
||||
</UniformGrid>
|
||||
</StackPanel>
|
||||
<StackPanel Name="AutomaticCloseExpanderStackPanel">
|
||||
<Expander Header="{Binding GenericExpanderHeader}" Name="GenericExpander"
|
||||
Style="{StaticResource ExpanderStyle}" Margin="0,1,0,1">
|
||||
<StackPanel>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding StartPosMsg}"
|
||||
ParamTxBx="{Binding Path=StartPos,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:ComboParamV
|
||||
ParamTxBl="{Binding SubTypeMsg}"
|
||||
ParamCmBxList="{Binding Path=SubTypeList,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
ParamCmBxSelIndex="{Binding Path=SelectedSubType}"
|
||||
Style="{DynamicResource ComboParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding StepParMsg}"
|
||||
ParamTxBx="{Binding Path=StepPar,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding SideStepMsg}"
|
||||
ParamTxBx="{Binding Path=SideStep,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding SideAngleMsg}"
|
||||
ParamTxBx="{Binding Path=SideAngle,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding OffsetSrMsg}"
|
||||
ParamTxBx="{Binding Path=OffSr,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding OffsetSlMsg}"
|
||||
ParamTxBx="{Binding Path=OffSl,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
</StackPanel>
|
||||
</Expander>
|
||||
|
||||
<Expander Header="{Binding AdvancedParamMsg}" Name="AdvancedParam"
|
||||
Style="{StaticResource ExpanderStyle}" Margin="0,1,0,1">
|
||||
<StackPanel>
|
||||
<EgtWPFLib5:CheckParamV
|
||||
ParamTxBl="{Binding InvertToolDirMsg}"
|
||||
ParamChBx="{Binding Path=ToolInvert,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource CheckParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding InitAngsMsg}"
|
||||
ParamTxBx="{Binding Path=InitAngs,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding BlockedAxisMsg}"
|
||||
ParamTxBx="{Binding Path=BlockedAxis,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:ComboParamV
|
||||
ParamTxBl="{Binding SolChoiceTypeMsg}"
|
||||
ParamCmBxList="{Binding Path=SolChoiceTypeList,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True,
|
||||
Mode=OneWay}"
|
||||
ParamCmBxSelIndex="{Binding Path=SelectedSolChoiceType}"
|
||||
Style="{DynamicResource ComboParamV_Margin}"/>
|
||||
</StackPanel>
|
||||
</Expander>
|
||||
|
||||
<Expander Style="{StaticResource ExpanderStyle}">
|
||||
<Expander.Header>
|
||||
<EgtWPFLib5:ComboParamV
|
||||
ParamTxBl="{Binding LeadInTypeMsg}"
|
||||
ParamCmBxList="{Binding Path=LeadInTypeList,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
ParamCmBxSelIndex="{Binding Path=SelectedLeadInType}"
|
||||
Style="{DynamicResource ComboParamV_Margin}"/>
|
||||
</Expander.Header>
|
||||
<StackPanel>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding LiTangMsg}"
|
||||
ParamTxBx="{Binding Path=LiTang,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding LiElevMsg}"
|
||||
ParamTxBx="{Binding Path=LiElev,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
</StackPanel>
|
||||
</Expander>
|
||||
|
||||
<Expander Style="{StaticResource ExpanderStyle}">
|
||||
<Expander.Header>
|
||||
<EgtWPFLib5:ComboParamV
|
||||
ParamTxBl="{Binding LeadOutTypeMsg}"
|
||||
ParamCmBxList="{Binding Path=LeadOutTypeList,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
ParamCmBxSelIndex="{Binding Path=SelectedLeadOutType}"
|
||||
Style="{DynamicResource ComboParamV_Margin}"/>
|
||||
</Expander.Header>
|
||||
<StackPanel>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding LoTangMsg}"
|
||||
ParamTxBx="{Binding Path=LoTang,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
</StackPanel>
|
||||
</Expander>
|
||||
|
||||
<Expander Style="{StaticResource ExpanderStyle}">
|
||||
<Expander.Header>
|
||||
<TextBlock Text="{Binding ToolExpanderHeader}"/>
|
||||
</Expander.Header>
|
||||
<StackPanel>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding SpeedMsg}"
|
||||
ParamTxBx="{Binding Path=Speed,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding FeedMsg}"
|
||||
ParamTxBx="{Binding Path=Feed,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding TipFeedMsg}"
|
||||
ParamTxBx="{Binding Path=TipFeed,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding StartFeedMsg}"
|
||||
ParamTxBx="{Binding Path=StartFeed,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding EndFeedMsg}"
|
||||
ParamTxBx="{Binding Path=EndFeed,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
</StackPanel>
|
||||
</Expander>
|
||||
<Interactivity:Interaction.Behaviors>
|
||||
<EgtCAM5:AutomaticCloseExpander/>
|
||||
</Interactivity:Interaction.Behaviors>
|
||||
</StackPanel>
|
||||
</StackPanel>
|
||||
|
||||
</UserControl>
|
||||
+83
@@ -0,0 +1,83 @@
|
||||
Imports EgtWPFLib5
|
||||
Imports EgtWPFLib5.EgtFloating
|
||||
|
||||
Public Class PocketingParameterExpanderV
|
||||
|
||||
Private EgtFloatingTray As EgtFloatingTray
|
||||
Private EgtFloatingPanel As EgtFloatingPanel
|
||||
|
||||
Private m_bFirst As Boolean = True
|
||||
|
||||
Private Sub OperationExpanderView_Loaded(sender As Object, e As System.Windows.RoutedEventArgs) Handles Me.Loaded
|
||||
If m_bFirst Then
|
||||
EgtFloatingTray = FindAncestor(Of EgtFloatingTray)(Me)
|
||||
EgtFloatingPanel = FindAncestor(Of EgtFloatingPanel)(Me)
|
||||
AddHandler EgtFloatingTray.SizeChanged, AddressOf EgtFloatingTray_SizeChanged
|
||||
PanelHeight = EgtFloatingPanel.ActualHeight
|
||||
Me.AutomaticCloseExpanderStackPanelHeight = AutomaticCloseExpanderStackPanel.ActualHeight
|
||||
m_bFirst = False
|
||||
End If
|
||||
CalculateOperationParametersStackPanelMaxHeight()
|
||||
End Sub
|
||||
|
||||
Dim m_bSizeChanging As Boolean = False
|
||||
|
||||
Private Sub EgtFloatingTray_SizeChanged(sender As Object, e As System.Windows.SizeChangedEventArgs)
|
||||
If m_bSizeChanging Then Return
|
||||
m_bSizeChanging = True
|
||||
CalculateOperationParametersStackPanelMaxHeight()
|
||||
m_bSizeChanging = False
|
||||
End Sub
|
||||
|
||||
Dim PanelHeight As Double = 0
|
||||
Dim AutomaticCloseExpanderStackPanelHeight As Double = 0
|
||||
|
||||
Private Sub CalculateOperationParametersStackPanelMaxHeight()
|
||||
Dim AutomaticCloseExpanderStackPanelHeight As Double = 0
|
||||
Dim OpenedExpanderList As New List(Of Boolean)
|
||||
For Index = 0 To AutomaticCloseExpanderStackPanel.Children.Count - 1
|
||||
If TypeOf AutomaticCloseExpanderStackPanel.Children(Index) Is Expander Then
|
||||
Dim IndexedExpander As Expander = DirectCast(AutomaticCloseExpanderStackPanel.Children(Index), Expander)
|
||||
If IndexedExpander.IsExpanded Then
|
||||
OpenedExpanderList.Add(True)
|
||||
IndexedExpander.IsExpanded = False
|
||||
Dim CurrExpanderContent As FrameworkElement = DirectCast(IndexedExpander.Content, FrameworkElement)
|
||||
CurrExpanderContent.Measure(New Size(Double.PositiveInfinity, Double.PositiveInfinity))
|
||||
AutomaticCloseExpanderStackPanelHeight -= CurrExpanderContent.DesiredSize.Height
|
||||
' Sottraggo anche i padding
|
||||
AutomaticCloseExpanderStackPanelHeight -= (IndexedExpander.Padding.Top + IndexedExpander.Padding.Bottom)
|
||||
Else
|
||||
OpenedExpanderList.Add(False)
|
||||
End If
|
||||
Else
|
||||
OpenedExpanderList.Add(False)
|
||||
End If
|
||||
Next
|
||||
Dim RemainingHeight As Double = EgtFloatingTray.ActualHeight - PanelHeight
|
||||
AutomaticCloseExpanderStackPanel.MaxHeight = Me.AutomaticCloseExpanderStackPanelHeight + RemainingHeight
|
||||
For Index = AutomaticCloseExpanderStackPanel.Children.Count - 1 To 0 Step -1
|
||||
If TypeOf AutomaticCloseExpanderStackPanel.Children(Index) Is Expander Then
|
||||
Dim IndexedExpander As Expander = DirectCast(AutomaticCloseExpanderStackPanel.Children(Index), Expander)
|
||||
If OpenedExpanderList(Index) Then
|
||||
IndexedExpander.IsExpanded = True
|
||||
End If
|
||||
End If
|
||||
Next
|
||||
End Sub
|
||||
|
||||
' Funzione che permette di trovare il primo contenitore di tipo T di un elemento grafico dependencyObject
|
||||
Public Function FindAncestor(Of T As Class)(dependencyObject As DependencyObject) As T
|
||||
Dim target As DependencyObject = dependencyObject
|
||||
Do
|
||||
target = LogicalTreeHelper.GetParent(target)
|
||||
Loop While target IsNot Nothing AndAlso Not (TypeOf target Is T)
|
||||
If IsNothing(target) Then
|
||||
target = dependencyObject
|
||||
Do
|
||||
target = VisualTreeHelper.GetParent(target)
|
||||
Loop While target IsNot Nothing AndAlso Not (TypeOf target Is T)
|
||||
End If
|
||||
Return TryCast(target, T)
|
||||
End Function
|
||||
|
||||
End Class
|
||||
+181
@@ -0,0 +1,181 @@
|
||||
<UserControl x:Class="StoneDrillingParameterExpanderV"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:sys="clr-namespace:System;assembly=mscorlib"
|
||||
xmlns:Interactivity="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
|
||||
xmlns:EgtCAM5="clr-namespace:EgtCAM5"
|
||||
xmlns:EgtWPFLib5="clr-namespace:EgtWPFLib5;assembly=EgtWPFLib5">
|
||||
|
||||
<UserControl.Resources>
|
||||
<EgtCAM5:OperationParamVisibilityConverter x:Key="OperationParamVisibilityConverter"/>
|
||||
<EgtCAM5:DepthUnitConverter x:Key="DepthUnitConverter"/>
|
||||
<sys:Int32 x:Key="Invert">0</sys:Int32>
|
||||
<sys:Int32 x:Key="LeaveTab">1</sys:Int32>
|
||||
<sys:Int32 x:Key="WorkSide">2</sys:Int32>
|
||||
<sys:Int32 x:Key="HeadSide">3</sys:Int32>
|
||||
<sys:Int32 x:Key="LeadInType">4</sys:Int32>
|
||||
<sys:Int32 x:Key="ExtLinkType">5</sys:Int32>
|
||||
<sys:Int32 x:Key="LeadOutType">6</sys:Int32>
|
||||
<sys:Int32 x:Key="CurveUse">7</sys:Int32>
|
||||
<sys:Int32 x:Key="StepType">8</sys:Int32>
|
||||
<sys:Int32 x:Key="LeadLinkType">9</sys:Int32>
|
||||
<sys:Int32 x:Key="Speed">10</sys:Int32>
|
||||
<sys:Int32 x:Key="Feed">11</sys:Int32>
|
||||
<sys:Int32 x:Key="StartFeed">12</sys:Int32>
|
||||
<sys:Int32 x:Key="EndFeed">13</sys:Int32>
|
||||
<sys:Int32 x:Key="TipFeed">14</sys:Int32>
|
||||
<sys:Int32 x:Key="OffSr">15</sys:Int32>
|
||||
<sys:Int32 x:Key="OffSl">16</sys:Int32>
|
||||
<sys:Int32 x:Key="SideAngle">17</sys:Int32>
|
||||
<sys:Int32 x:Key="Approx">18</sys:Int32>
|
||||
<sys:Int32 x:Key="StartPos">19</sys:Int32>
|
||||
<sys:Int32 x:Key="StartSlowLen">20</sys:Int32>
|
||||
<sys:Int32 x:Key="EndSlowLen">21</sys:Int32>
|
||||
<sys:Int32 x:Key="ThrouAddLen">22</sys:Int32>
|
||||
<sys:Int32 x:Key="StepPar">23</sys:Int32>
|
||||
<sys:Int32 x:Key="ReturnPos">24</sys:Int32>
|
||||
<sys:Int32 x:Key="TabLen">25</sys:Int32>
|
||||
<sys:Int32 x:Key="TabDist">26</sys:Int32>
|
||||
<sys:Int32 x:Key="TabHeight">27</sys:Int32>
|
||||
<sys:Int32 x:Key="TabAngle">28</sys:Int32>
|
||||
<sys:Int32 x:Key="LiTang">29</sys:Int32>
|
||||
<sys:Int32 x:Key="LiPerp">30</sys:Int32>
|
||||
<sys:Int32 x:Key="LiElev">31</sys:Int32>
|
||||
<sys:Int32 x:Key="LiCompLen">32</sys:Int32>
|
||||
<sys:Int32 x:Key="LoTang">33</sys:Int32>
|
||||
<sys:Int32 x:Key="LoPerp">34</sys:Int32>
|
||||
<sys:Int32 x:Key="LoElev">35</sys:Int32>
|
||||
<sys:Int32 x:Key="LoCompLen">36</sys:Int32>
|
||||
<sys:Int32 x:Key="StartAddLen">37</sys:Int32>
|
||||
<sys:Int32 x:Key="EndAddLen">38</sys:Int32>
|
||||
<sys:Int32 x:Key="StepExtArc">39</sys:Int32>
|
||||
<sys:Int32 x:Key="StepIntArc">40</sys:Int32>
|
||||
<sys:Int32 x:Key="SideStep">41</sys:Int32>
|
||||
<sys:Int32 x:Key="VertFeed">42</sys:Int32>
|
||||
<sys:Int32 x:Key="NamePar">43</sys:Int32>
|
||||
<sys:Int32 x:Key="Tool">44</sys:Int32>
|
||||
<sys:Int32 x:Key="DepthStr">45</sys:Int32>
|
||||
<sys:Int32 x:Key="UserNotes">46</sys:Int32>
|
||||
<sys:Int32 x:Key="OverLapStr">47</sys:Int32>
|
||||
<sys:Int32 x:Key="OffsetStr">48</sys:Int32>
|
||||
<sys:Int32 x:Key="SubType">49</sys:Int32>
|
||||
<sys:Int32 x:Key="SolChoiceType">50</sys:Int32>
|
||||
<sys:Int32 x:Key="AxRotRef">51</sys:Int32>
|
||||
<sys:Int32 x:Key="BlockedAxesRef">52</sys:Int32>
|
||||
<sys:Int32 x:Key="FaceUseType">53</sys:Int32>
|
||||
<sys:Int32 x:Key="InvertToolDir">54</sys:Int32>
|
||||
<sys:Int32 x:Key="ExpanderLeadIn">55</sys:Int32>
|
||||
<sys:Int32 x:Key="ExpanderLeadOut">56</sys:Int32>
|
||||
<sys:Int32 x:Key="ApproxGen">57</sys:Int32>
|
||||
<sys:Int32 x:Key="OscEnable">58</sys:Int32>
|
||||
<sys:Int32 x:Key="OscHeight">59</sys:Int32>
|
||||
<sys:Int32 x:Key="OscRampLen">60</sys:Int32>
|
||||
<sys:Int32 x:Key="OscFlatLen">61</sys:Int32>
|
||||
</UserControl.Resources>
|
||||
|
||||
<StackPanel Name="OperationParametersStackPanel">
|
||||
<StackPanel Name="OperationFirstParametersStackPanel">
|
||||
<UniformGrid Columns="2">
|
||||
<TextBlock Text="{Binding DepthMsg}" Style="{DynamicResource MPExpander_DepthTxBlMargin}"/>
|
||||
<EgtWPFLib5:EgtTextBox Text="{Binding DepthStr, UpdateSourceTrigger=PropertyChanged,
|
||||
Converter={StaticResource DepthUnitConverter}}"
|
||||
Style="{DynamicResource MPExpander_DepthTxBxMargin}"/>
|
||||
</UniformGrid>
|
||||
<UniformGrid Columns="2">
|
||||
<TextBlock Text="{Binding UserNotesMsg}"
|
||||
Style="{DynamicResource MPExpander_UserNotesTxBlMargin}"/>
|
||||
<EgtWPFLib5:EgtTextBox Text="{Binding UserNotes, UpdateSourceTrigger=PropertyChanged}"
|
||||
Style="{DynamicResource MPExpander_UserNotesTxBxMargin}">
|
||||
<EgtWPFLib5:EgtTextBox.ToolTip>
|
||||
<TextBlock Text="{Binding UserNotesTooltip}"/>
|
||||
</EgtWPFLib5:EgtTextBox.ToolTip>
|
||||
</EgtWPFLib5:EgtTextBox>
|
||||
</UniformGrid>
|
||||
</StackPanel>
|
||||
<StackPanel Name="AutomaticCloseExpanderStackPanel">
|
||||
<Expander Header="{Binding GenericExpanderHeader}" Name="GenericExpander"
|
||||
Style="{StaticResource ExpanderStyle}" Margin="0,1,0,1">
|
||||
<StackPanel>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding StartPosMsg}"
|
||||
ParamTxBx="{Binding Path=StartPos,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding ReturnPosMsg}"
|
||||
ParamTxBx="{Binding Path=ReturnPos,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding ThrouAddLenMsg}"
|
||||
ParamTxBx="{Binding Path=ThrouAddLen,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding StepParMsg}"
|
||||
ParamTxBx="{Binding Path=StepPar,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding StartSlowLenMsg}"
|
||||
ParamTxBx="{Binding Path=StartSlowLen,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding EndSlowLenMsg}"
|
||||
ParamTxBx="{Binding Path=EndSlowLen,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
</StackPanel>
|
||||
</Expander>
|
||||
|
||||
<Expander Style="{StaticResource ExpanderStyle}">
|
||||
<Expander.Header>
|
||||
<TextBlock Text="{Binding ToolExpanderHeader}"/>
|
||||
</Expander.Header>
|
||||
<StackPanel>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding SpeedMsg}"
|
||||
ParamTxBx="{Binding Path=Speed,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding FeedMsg}"
|
||||
ParamTxBx="{Binding Path=Feed,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding TipFeedMsg}"
|
||||
ParamTxBx="{Binding Path=TipFeed,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding StartFeedMsg}"
|
||||
ParamTxBx="{Binding Path=StartFeed,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding EndFeedMsg}"
|
||||
ParamTxBx="{Binding Path=EndFeed,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
</StackPanel>
|
||||
</Expander>
|
||||
<Interactivity:Interaction.Behaviors>
|
||||
<EgtCAM5:AutomaticCloseExpander/>
|
||||
</Interactivity:Interaction.Behaviors>
|
||||
</StackPanel>
|
||||
</StackPanel>
|
||||
|
||||
</UserControl>
|
||||
+83
@@ -0,0 +1,83 @@
|
||||
Imports EgtWPFLib5
|
||||
Imports EgtWPFLib5.EgtFloating
|
||||
|
||||
Public Class StoneDrillingParameterExpanderV
|
||||
|
||||
Private EgtFloatingTray As EgtFloatingTray
|
||||
Private EgtFloatingPanel As EgtFloatingPanel
|
||||
|
||||
Private m_bFirst As Boolean = True
|
||||
|
||||
Private Sub OperationExpanderView_Loaded(sender As Object, e As System.Windows.RoutedEventArgs) Handles Me.Loaded
|
||||
If m_bFirst Then
|
||||
EgtFloatingTray = FindAncestor(Of EgtFloatingTray)(Me)
|
||||
EgtFloatingPanel = FindAncestor(Of EgtFloatingPanel)(Me)
|
||||
AddHandler EgtFloatingTray.SizeChanged, AddressOf EgtFloatingTray_SizeChanged
|
||||
PanelHeight = EgtFloatingPanel.ActualHeight
|
||||
Me.AutomaticCloseExpanderStackPanelHeight = AutomaticCloseExpanderStackPanel.ActualHeight
|
||||
m_bFirst = False
|
||||
End If
|
||||
CalculateOperationParametersStackPanelMaxHeight()
|
||||
End Sub
|
||||
|
||||
Dim m_bSizeChanging As Boolean = False
|
||||
|
||||
Private Sub EgtFloatingTray_SizeChanged(sender As Object, e As System.Windows.SizeChangedEventArgs)
|
||||
If m_bSizeChanging Then Return
|
||||
m_bSizeChanging = True
|
||||
CalculateOperationParametersStackPanelMaxHeight()
|
||||
m_bSizeChanging = False
|
||||
End Sub
|
||||
|
||||
Dim PanelHeight As Double = 0
|
||||
Dim AutomaticCloseExpanderStackPanelHeight As Double = 0
|
||||
|
||||
Private Sub CalculateOperationParametersStackPanelMaxHeight()
|
||||
Dim AutomaticCloseExpanderStackPanelHeight As Double = 0
|
||||
Dim OpenedExpanderList As New List(Of Boolean)
|
||||
For Index = 0 To AutomaticCloseExpanderStackPanel.Children.Count - 1
|
||||
If TypeOf AutomaticCloseExpanderStackPanel.Children(Index) Is Expander Then
|
||||
Dim IndexedExpander As Expander = DirectCast(AutomaticCloseExpanderStackPanel.Children(Index), Expander)
|
||||
If IndexedExpander.IsExpanded Then
|
||||
OpenedExpanderList.Add(True)
|
||||
IndexedExpander.IsExpanded = False
|
||||
Dim CurrExpanderContent As FrameworkElement = DirectCast(IndexedExpander.Content, FrameworkElement)
|
||||
CurrExpanderContent.Measure(New Size(Double.PositiveInfinity, Double.PositiveInfinity))
|
||||
AutomaticCloseExpanderStackPanelHeight -= CurrExpanderContent.DesiredSize.Height
|
||||
' Sottraggo anche i padding
|
||||
AutomaticCloseExpanderStackPanelHeight -= (IndexedExpander.Padding.Top + IndexedExpander.Padding.Bottom)
|
||||
Else
|
||||
OpenedExpanderList.Add(False)
|
||||
End If
|
||||
Else
|
||||
OpenedExpanderList.Add(False)
|
||||
End If
|
||||
Next
|
||||
Dim RemainingHeight As Double = EgtFloatingTray.ActualHeight - PanelHeight
|
||||
AutomaticCloseExpanderStackPanel.MaxHeight = Me.AutomaticCloseExpanderStackPanelHeight + RemainingHeight
|
||||
For Index = AutomaticCloseExpanderStackPanel.Children.Count - 1 To 0 Step -1
|
||||
If TypeOf AutomaticCloseExpanderStackPanel.Children(Index) Is Expander Then
|
||||
Dim IndexedExpander As Expander = DirectCast(AutomaticCloseExpanderStackPanel.Children(Index), Expander)
|
||||
If OpenedExpanderList(Index) Then
|
||||
IndexedExpander.IsExpanded = True
|
||||
End If
|
||||
End If
|
||||
Next
|
||||
End Sub
|
||||
|
||||
' Funzione che permette di trovare il primo contenitore di tipo T di un elemento grafico dependencyObject
|
||||
Public Function FindAncestor(Of T As Class)(dependencyObject As DependencyObject) As T
|
||||
Dim target As DependencyObject = dependencyObject
|
||||
Do
|
||||
target = LogicalTreeHelper.GetParent(target)
|
||||
Loop While target IsNot Nothing AndAlso Not (TypeOf target Is T)
|
||||
If IsNothing(target) Then
|
||||
target = dependencyObject
|
||||
Do
|
||||
target = VisualTreeHelper.GetParent(target)
|
||||
Loop While target IsNot Nothing AndAlso Not (TypeOf target Is T)
|
||||
End If
|
||||
Return TryCast(target, T)
|
||||
End Function
|
||||
|
||||
End Class
|
||||
+185
@@ -0,0 +1,185 @@
|
||||
<UserControl x:Class="StoneMillingParameterExpanderV"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:sys="clr-namespace:System;assembly=mscorlib"
|
||||
xmlns:Interactivity="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
|
||||
xmlns:EgtCAM5="clr-namespace:EgtCAM5"
|
||||
xmlns:EgtWPFLib5="clr-namespace:EgtWPFLib5;assembly=EgtWPFLib5">
|
||||
|
||||
<UserControl.Resources>
|
||||
<EgtCAM5:OperationParamVisibilityConverter x:Key="OperationParamVisibilityConverter"/>
|
||||
<EgtCAM5:DepthUnitConverter x:Key="DepthUnitConverter"/>
|
||||
<sys:Int32 x:Key="Invert">0</sys:Int32>
|
||||
<sys:Int32 x:Key="LeaveTab">1</sys:Int32>
|
||||
<sys:Int32 x:Key="WorkSide">2</sys:Int32>
|
||||
<sys:Int32 x:Key="HeadSide">3</sys:Int32>
|
||||
<sys:Int32 x:Key="LeadInType">4</sys:Int32>
|
||||
<sys:Int32 x:Key="ExtLinkType">5</sys:Int32>
|
||||
<sys:Int32 x:Key="LeadOutType">6</sys:Int32>
|
||||
<sys:Int32 x:Key="CurveUse">7</sys:Int32>
|
||||
<sys:Int32 x:Key="StepType">8</sys:Int32>
|
||||
<sys:Int32 x:Key="LeadLinkType">9</sys:Int32>
|
||||
<sys:Int32 x:Key="Speed">10</sys:Int32>
|
||||
<sys:Int32 x:Key="Feed">11</sys:Int32>
|
||||
<sys:Int32 x:Key="StartFeed">12</sys:Int32>
|
||||
<sys:Int32 x:Key="EndFeed">13</sys:Int32>
|
||||
<sys:Int32 x:Key="TipFeed">14</sys:Int32>
|
||||
<sys:Int32 x:Key="OffSr">15</sys:Int32>
|
||||
<sys:Int32 x:Key="OffSl">16</sys:Int32>
|
||||
<sys:Int32 x:Key="SideAngle">17</sys:Int32>
|
||||
<sys:Int32 x:Key="Approx">18</sys:Int32>
|
||||
<sys:Int32 x:Key="StartPos">19</sys:Int32>
|
||||
<sys:Int32 x:Key="StartSlowLen">20</sys:Int32>
|
||||
<sys:Int32 x:Key="EndSlowLen">21</sys:Int32>
|
||||
<sys:Int32 x:Key="ThrouAddLen">22</sys:Int32>
|
||||
<sys:Int32 x:Key="StepPar">23</sys:Int32>
|
||||
<sys:Int32 x:Key="ReturnPos">24</sys:Int32>
|
||||
<sys:Int32 x:Key="TabLen">25</sys:Int32>
|
||||
<sys:Int32 x:Key="TabDist">26</sys:Int32>
|
||||
<sys:Int32 x:Key="TabHeight">27</sys:Int32>
|
||||
<sys:Int32 x:Key="TabAngle">28</sys:Int32>
|
||||
<sys:Int32 x:Key="LiTang">29</sys:Int32>
|
||||
<sys:Int32 x:Key="LiPerp">30</sys:Int32>
|
||||
<sys:Int32 x:Key="LiElev">31</sys:Int32>
|
||||
<sys:Int32 x:Key="LiCompLen">32</sys:Int32>
|
||||
<sys:Int32 x:Key="LoTang">33</sys:Int32>
|
||||
<sys:Int32 x:Key="LoPerp">34</sys:Int32>
|
||||
<sys:Int32 x:Key="LoElev">35</sys:Int32>
|
||||
<sys:Int32 x:Key="LoCompLen">36</sys:Int32>
|
||||
<sys:Int32 x:Key="StartAddLen">37</sys:Int32>
|
||||
<sys:Int32 x:Key="EndAddLen">38</sys:Int32>
|
||||
<sys:Int32 x:Key="StepExtArc">39</sys:Int32>
|
||||
<sys:Int32 x:Key="StepIntArc">40</sys:Int32>
|
||||
<sys:Int32 x:Key="SideStep">41</sys:Int32>
|
||||
<sys:Int32 x:Key="VertFeed">42</sys:Int32>
|
||||
<sys:Int32 x:Key="NamePar">43</sys:Int32>
|
||||
<sys:Int32 x:Key="Tool">44</sys:Int32>
|
||||
<sys:Int32 x:Key="DepthStr">45</sys:Int32>
|
||||
<sys:Int32 x:Key="UserNotes">46</sys:Int32>
|
||||
<sys:Int32 x:Key="OverLapStr">47</sys:Int32>
|
||||
<sys:Int32 x:Key="OffsetStr">48</sys:Int32>
|
||||
<sys:Int32 x:Key="SubType">49</sys:Int32>
|
||||
<sys:Int32 x:Key="SolChoiceType">50</sys:Int32>
|
||||
<sys:Int32 x:Key="AxRotRef">51</sys:Int32>
|
||||
<sys:Int32 x:Key="BlockedAxesRef">52</sys:Int32>
|
||||
<sys:Int32 x:Key="FaceUseType">53</sys:Int32>
|
||||
<sys:Int32 x:Key="InvertToolDir">54</sys:Int32>
|
||||
<sys:Int32 x:Key="ExpanderLeadIn">55</sys:Int32>
|
||||
<sys:Int32 x:Key="ExpanderLeadOut">56</sys:Int32>
|
||||
<sys:Int32 x:Key="ApproxGen">57</sys:Int32>
|
||||
<sys:Int32 x:Key="OscEnable">58</sys:Int32>
|
||||
<sys:Int32 x:Key="OscHeight">59</sys:Int32>
|
||||
<sys:Int32 x:Key="OscRampLen">60</sys:Int32>
|
||||
<sys:Int32 x:Key="OscFlatLen">61</sys:Int32>
|
||||
</UserControl.Resources>
|
||||
|
||||
<StackPanel Name="OperationParametersStackPanel">
|
||||
<StackPanel Name="OperationFirstParametersStackPanel">
|
||||
<UniformGrid Columns="2">
|
||||
<TextBlock Text="{Binding DepthMsg}" Style="{DynamicResource MPExpander_DepthTxBlMargin}"/>
|
||||
<EgtWPFLib5:EgtTextBox Text="{Binding DepthStr, UpdateSourceTrigger=PropertyChanged,
|
||||
Converter={StaticResource DepthUnitConverter}}"
|
||||
Style="{DynamicResource MPExpander_DepthTxBxMargin}"/>
|
||||
</UniformGrid>
|
||||
<EgtWPFLib5:CheckParamV
|
||||
ParamTxBl="{Binding InvertMsg}"
|
||||
ParamChBx="{Binding Path=Invert,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource CheckParamV_Margin}"/>
|
||||
<EgtWPFLib5:ComboParamV
|
||||
ParamTxBl="{Binding WorkSideMsg}"
|
||||
ParamCmBxList="{Binding Path=WorkSideList,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
ParamCmBxSelIndex="{Binding Path=SelectedWorkSide}"
|
||||
Style="{DynamicResource ComboParamV_Margin}"/>
|
||||
<UniformGrid Columns="2">
|
||||
<TextBlock Text="{Binding UserNotesMsg}"
|
||||
Style="{DynamicResource MPExpander_UserNotesTxBlMargin}"/>
|
||||
<EgtWPFLib5:EgtTextBox Text="{Binding UserNotes, UpdateSourceTrigger=PropertyChanged}"
|
||||
Style="{DynamicResource MPExpander_UserNotesTxBxMargin}">
|
||||
<EgtWPFLib5:EgtTextBox.ToolTip>
|
||||
<TextBlock Text="{Binding UserNotesTooltip}"/>
|
||||
</EgtWPFLib5:EgtTextBox.ToolTip>
|
||||
</EgtWPFLib5:EgtTextBox>
|
||||
</UniformGrid>
|
||||
</StackPanel>
|
||||
<StackPanel Name="AutomaticCloseExpanderStackPanel">
|
||||
<Expander Header="{Binding GenericExpanderHeader}" Name="GenericExpander"
|
||||
Style="{StaticResource ExpanderStyle}" Margin="0,1,0,1">
|
||||
<StackPanel>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding StartPosMsg}"
|
||||
ParamTxBx="{Binding Path=StartPos,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:ComboParamV
|
||||
ParamTxBl="{Binding LeadInTypeMsg}"
|
||||
ParamCmBxList="{Binding Path=LeadInTypeList,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
ParamCmBxSelIndex="{Binding Path=SelectedLeadInType}"
|
||||
Style="{DynamicResource ComboParamV_Margin}"/>
|
||||
<EgtWPFLib5:ComboParamV
|
||||
ParamTxBl="{Binding LeadOutTypeMsg}"
|
||||
ParamCmBxList="{Binding Path=LeadOutTypeList,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
ParamCmBxSelIndex="{Binding Path=SelectedLeadOutType}"
|
||||
Style="{DynamicResource ComboParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding StepParMsg}"
|
||||
ParamTxBx="{Binding Path=StepPar,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
|
||||
</StackPanel>
|
||||
</Expander>
|
||||
|
||||
<Expander Style="{StaticResource ExpanderStyle}">
|
||||
<Expander.Header>
|
||||
<TextBlock Text="{Binding ToolExpanderHeader}"/>
|
||||
</Expander.Header>
|
||||
<StackPanel>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding SpeedMsg}"
|
||||
ParamTxBx="{Binding Path=Speed,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding FeedMsg}"
|
||||
ParamTxBx="{Binding Path=Feed,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding TipFeedMsg}"
|
||||
ParamTxBx="{Binding Path=TipFeed,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding StartFeedMsg}"
|
||||
ParamTxBx="{Binding Path=StartFeed,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding EndFeedMsg}"
|
||||
ParamTxBx="{Binding Path=EndFeed,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
</StackPanel>
|
||||
</Expander>
|
||||
<Interactivity:Interaction.Behaviors>
|
||||
<EgtCAM5:AutomaticCloseExpander/>
|
||||
</Interactivity:Interaction.Behaviors>
|
||||
</StackPanel>
|
||||
</StackPanel>
|
||||
|
||||
</UserControl>
|
||||
+83
@@ -0,0 +1,83 @@
|
||||
Imports EgtWPFLib5
|
||||
Imports EgtWPFLib5.EgtFloating
|
||||
|
||||
Public Class StoneMillingParameterExpanderV
|
||||
|
||||
Private EgtFloatingTray As EgtFloatingTray
|
||||
Private EgtFloatingPanel As EgtFloatingPanel
|
||||
|
||||
Private m_bFirst As Boolean = True
|
||||
|
||||
Private Sub OperationExpanderView_Loaded(sender As Object, e As System.Windows.RoutedEventArgs) Handles Me.Loaded
|
||||
If m_bFirst Then
|
||||
EgtFloatingTray = FindAncestor(Of EgtFloatingTray)(Me)
|
||||
EgtFloatingPanel = FindAncestor(Of EgtFloatingPanel)(Me)
|
||||
AddHandler EgtFloatingTray.SizeChanged, AddressOf EgtFloatingTray_SizeChanged
|
||||
PanelHeight = EgtFloatingPanel.ActualHeight
|
||||
Me.AutomaticCloseExpanderStackPanelHeight = AutomaticCloseExpanderStackPanel.ActualHeight
|
||||
m_bFirst = False
|
||||
End If
|
||||
CalculateOperationParametersStackPanelMaxHeight()
|
||||
End Sub
|
||||
|
||||
Dim m_bSizeChanging As Boolean = False
|
||||
|
||||
Private Sub EgtFloatingTray_SizeChanged(sender As Object, e As System.Windows.SizeChangedEventArgs)
|
||||
If m_bSizeChanging Then Return
|
||||
m_bSizeChanging = True
|
||||
CalculateOperationParametersStackPanelMaxHeight()
|
||||
m_bSizeChanging = False
|
||||
End Sub
|
||||
|
||||
Dim PanelHeight As Double = 0
|
||||
Dim AutomaticCloseExpanderStackPanelHeight As Double = 0
|
||||
|
||||
Private Sub CalculateOperationParametersStackPanelMaxHeight()
|
||||
Dim AutomaticCloseExpanderStackPanelHeight As Double = 0
|
||||
Dim OpenedExpanderList As New List(Of Boolean)
|
||||
For Index = 0 To AutomaticCloseExpanderStackPanel.Children.Count - 1
|
||||
If TypeOf AutomaticCloseExpanderStackPanel.Children(Index) Is Expander Then
|
||||
Dim IndexedExpander As Expander = DirectCast(AutomaticCloseExpanderStackPanel.Children(Index), Expander)
|
||||
If IndexedExpander.IsExpanded Then
|
||||
OpenedExpanderList.Add(True)
|
||||
IndexedExpander.IsExpanded = False
|
||||
Dim CurrExpanderContent As FrameworkElement = DirectCast(IndexedExpander.Content, FrameworkElement)
|
||||
CurrExpanderContent.Measure(New Size(Double.PositiveInfinity, Double.PositiveInfinity))
|
||||
AutomaticCloseExpanderStackPanelHeight -= CurrExpanderContent.DesiredSize.Height
|
||||
' Sottraggo anche i padding
|
||||
AutomaticCloseExpanderStackPanelHeight -= (IndexedExpander.Padding.Top + IndexedExpander.Padding.Bottom)
|
||||
Else
|
||||
OpenedExpanderList.Add(False)
|
||||
End If
|
||||
Else
|
||||
OpenedExpanderList.Add(False)
|
||||
End If
|
||||
Next
|
||||
Dim RemainingHeight As Double = EgtFloatingTray.ActualHeight - PanelHeight
|
||||
AutomaticCloseExpanderStackPanel.MaxHeight = Me.AutomaticCloseExpanderStackPanelHeight + RemainingHeight
|
||||
For Index = AutomaticCloseExpanderStackPanel.Children.Count - 1 To 0 Step -1
|
||||
If TypeOf AutomaticCloseExpanderStackPanel.Children(Index) Is Expander Then
|
||||
Dim IndexedExpander As Expander = DirectCast(AutomaticCloseExpanderStackPanel.Children(Index), Expander)
|
||||
If OpenedExpanderList(Index) Then
|
||||
IndexedExpander.IsExpanded = True
|
||||
End If
|
||||
End If
|
||||
Next
|
||||
End Sub
|
||||
|
||||
' Funzione che permette di trovare il primo contenitore di tipo T di un elemento grafico dependencyObject
|
||||
Public Function FindAncestor(Of T As Class)(dependencyObject As DependencyObject) As T
|
||||
Dim target As DependencyObject = dependencyObject
|
||||
Do
|
||||
target = LogicalTreeHelper.GetParent(target)
|
||||
Loop While target IsNot Nothing AndAlso Not (TypeOf target Is T)
|
||||
If IsNothing(target) Then
|
||||
target = dependencyObject
|
||||
Do
|
||||
target = VisualTreeHelper.GetParent(target)
|
||||
Loop While target IsNot Nothing AndAlso Not (TypeOf target Is T)
|
||||
End If
|
||||
Return TryCast(target, T)
|
||||
End Function
|
||||
|
||||
End Class
|
||||
+226
@@ -0,0 +1,226 @@
|
||||
<UserControl x:Class="StoneSawFinishingParameterExpanderV"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:sys="clr-namespace:System;assembly=mscorlib"
|
||||
xmlns:Interactivity="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
|
||||
xmlns:EgtCAM5="clr-namespace:EgtCAM5"
|
||||
xmlns:EgtWPFLib5="clr-namespace:EgtWPFLib5;assembly=EgtWPFLib5">
|
||||
|
||||
<UserControl.Resources>
|
||||
<EgtCAM5:OperationParamVisibilityConverter x:Key="OperationParamVisibilityConverter"/>
|
||||
<EgtCAM5:DepthUnitConverter x:Key="DepthUnitConverter"/>
|
||||
<sys:Int32 x:Key="Invert">0</sys:Int32>
|
||||
<sys:Int32 x:Key="LeaveTab">1</sys:Int32>
|
||||
<sys:Int32 x:Key="WorkSide">2</sys:Int32>
|
||||
<sys:Int32 x:Key="HeadSide">3</sys:Int32>
|
||||
<sys:Int32 x:Key="LeadInType">4</sys:Int32>
|
||||
<sys:Int32 x:Key="ExtLinkType">5</sys:Int32>
|
||||
<sys:Int32 x:Key="LeadOutType">6</sys:Int32>
|
||||
<sys:Int32 x:Key="CurveUse">7</sys:Int32>
|
||||
<sys:Int32 x:Key="StepType">8</sys:Int32>
|
||||
<sys:Int32 x:Key="LeadLinkType">9</sys:Int32>
|
||||
<sys:Int32 x:Key="Speed">10</sys:Int32>
|
||||
<sys:Int32 x:Key="Feed">11</sys:Int32>
|
||||
<sys:Int32 x:Key="StartFeed">12</sys:Int32>
|
||||
<sys:Int32 x:Key="EndFeed">13</sys:Int32>
|
||||
<sys:Int32 x:Key="TipFeed">14</sys:Int32>
|
||||
<sys:Int32 x:Key="OffSr">15</sys:Int32>
|
||||
<sys:Int32 x:Key="OffSl">16</sys:Int32>
|
||||
<sys:Int32 x:Key="SideAngle">17</sys:Int32>
|
||||
<sys:Int32 x:Key="Approx">18</sys:Int32>
|
||||
<sys:Int32 x:Key="StartPos">19</sys:Int32>
|
||||
<sys:Int32 x:Key="StartSlowLen">20</sys:Int32>
|
||||
<sys:Int32 x:Key="EndSlowLen">21</sys:Int32>
|
||||
<sys:Int32 x:Key="ThrouAddLen">22</sys:Int32>
|
||||
<sys:Int32 x:Key="StepPar">23</sys:Int32>
|
||||
<sys:Int32 x:Key="ReturnPos">24</sys:Int32>
|
||||
<sys:Int32 x:Key="TabLen">25</sys:Int32>
|
||||
<sys:Int32 x:Key="TabDist">26</sys:Int32>
|
||||
<sys:Int32 x:Key="TabHeight">27</sys:Int32>
|
||||
<sys:Int32 x:Key="TabAngle">28</sys:Int32>
|
||||
<sys:Int32 x:Key="LiTang">29</sys:Int32>
|
||||
<sys:Int32 x:Key="LiPerp">30</sys:Int32>
|
||||
<sys:Int32 x:Key="LiElev">31</sys:Int32>
|
||||
<sys:Int32 x:Key="LiCompLen">32</sys:Int32>
|
||||
<sys:Int32 x:Key="LoTang">33</sys:Int32>
|
||||
<sys:Int32 x:Key="LoPerp">34</sys:Int32>
|
||||
<sys:Int32 x:Key="LoElev">35</sys:Int32>
|
||||
<sys:Int32 x:Key="LoCompLen">36</sys:Int32>
|
||||
<sys:Int32 x:Key="StartAddLen">37</sys:Int32>
|
||||
<sys:Int32 x:Key="EndAddLen">38</sys:Int32>
|
||||
<sys:Int32 x:Key="StepExtArc">39</sys:Int32>
|
||||
<sys:Int32 x:Key="StepIntArc">40</sys:Int32>
|
||||
<sys:Int32 x:Key="SideStep">41</sys:Int32>
|
||||
<sys:Int32 x:Key="VertFeed">42</sys:Int32>
|
||||
<sys:Int32 x:Key="NamePar">43</sys:Int32>
|
||||
<sys:Int32 x:Key="Tool">44</sys:Int32>
|
||||
<sys:Int32 x:Key="DepthStr">45</sys:Int32>
|
||||
<sys:Int32 x:Key="UserNotes">46</sys:Int32>
|
||||
<sys:Int32 x:Key="OverLapStr">47</sys:Int32>
|
||||
<sys:Int32 x:Key="OffsetStr">48</sys:Int32>
|
||||
<sys:Int32 x:Key="SubType">49</sys:Int32>
|
||||
<sys:Int32 x:Key="SolChoiceType">50</sys:Int32>
|
||||
<sys:Int32 x:Key="AxRotRef">51</sys:Int32>
|
||||
<sys:Int32 x:Key="BlockedAxesRef">52</sys:Int32>
|
||||
<sys:Int32 x:Key="FaceUseType">53</sys:Int32>
|
||||
<sys:Int32 x:Key="InvertToolDir">54</sys:Int32>
|
||||
<sys:Int32 x:Key="ExpanderLeadIn">55</sys:Int32>
|
||||
<sys:Int32 x:Key="ExpanderLeadOut">56</sys:Int32>
|
||||
<sys:Int32 x:Key="ApproxGen">57</sys:Int32>
|
||||
<sys:Int32 x:Key="OscEnable">58</sys:Int32>
|
||||
<sys:Int32 x:Key="OscHeight">59</sys:Int32>
|
||||
<sys:Int32 x:Key="OscRampLen">60</sys:Int32>
|
||||
<sys:Int32 x:Key="OscFlatLen">61</sys:Int32>
|
||||
</UserControl.Resources>
|
||||
|
||||
<StackPanel Name="OperationParametersStackPanel">
|
||||
<StackPanel Name="OperationFirstParametersStackPanel">
|
||||
<UniformGrid Columns="2">
|
||||
<TextBlock Text="{Binding DepthMsg}" Style="{DynamicResource MPExpander_DepthTxBlMargin}"/>
|
||||
<EgtWPFLib5:EgtTextBox Text="{Binding DepthStr, UpdateSourceTrigger=PropertyChanged,
|
||||
Converter={StaticResource DepthUnitConverter}}"
|
||||
Style="{DynamicResource MPExpander_DepthTxBxMargin}"/>
|
||||
</UniformGrid>
|
||||
<EgtWPFLib5:CheckParamV
|
||||
ParamTxBl="{Binding InvertMsg}"
|
||||
ParamChBx="{Binding Path=Invert,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource CheckParamV_Margin}"/>
|
||||
<EgtWPFLib5:ComboParamV
|
||||
ParamTxBl="{Binding SubTypeTxBl}"
|
||||
ParamCmBxList="{Binding Path=SubTypeList,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
ParamCmBxSelIndex="{Binding Path=SelectedSubType}"
|
||||
Style="{DynamicResource ComboParamV_Margin}"/>
|
||||
|
||||
|
||||
<UniformGrid Columns="2">
|
||||
<TextBlock Text="{Binding UserNotesMsg}"
|
||||
Style="{DynamicResource MPExpander_UserNotesTxBlMargin}"/>
|
||||
<EgtWPFLib5:EgtTextBox Text="{Binding UserNotes, UpdateSourceTrigger=PropertyChanged}"
|
||||
Style="{DynamicResource MPExpander_UserNotesTxBxMargin}">
|
||||
<EgtWPFLib5:EgtTextBox.ToolTip>
|
||||
<TextBlock Text="{Binding UserNotesTooltip}"/>
|
||||
</EgtWPFLib5:EgtTextBox.ToolTip>
|
||||
</EgtWPFLib5:EgtTextBox>
|
||||
</UniformGrid>
|
||||
</StackPanel>
|
||||
<StackPanel Name="AutomaticCloseExpanderStackPanel">
|
||||
<Expander Header="{Binding GenericExpanderHeader}" Name="GenericExpander"
|
||||
Style="{StaticResource ExpanderStyle}" Margin="0,1,0,1">
|
||||
<StackPanel>
|
||||
|
||||
<EgtWPFLib5:StringParamV Grid.Column="0" Grid.Row="0"
|
||||
ParamTxBl="{Binding StartPosTxBl}"
|
||||
ParamTxBx="{Binding Path=StartPos,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
|
||||
<EgtWPFLib5:ComboParamV
|
||||
ParamTxBl="{Binding LeadLinkTypeTxBl}"
|
||||
ParamCmBxList="{Binding Path=LeadLinkTypeList,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
ParamCmBxSelIndex="{Binding Path=SelectedLeadLinkType}"
|
||||
Style="{DynamicResource ComboParamV_Margin}"/>
|
||||
|
||||
</StackPanel>
|
||||
</Expander>
|
||||
<Expander Header="{Binding StepGpBxLbl}"
|
||||
Style="{StaticResource ExpanderStyle}" Margin="0,1,0,1">
|
||||
<StackPanel>
|
||||
<EgtWPFLib5:ComboParamV
|
||||
ParamTxBl="{Binding StepTypeMsg}"
|
||||
ParamCmBxList="{Binding Path=StepTypeList,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
ParamCmBxSelIndex="{Binding Path=SelectedStepType}"
|
||||
Style="{DynamicResource ComboParamV_Margin}"/>
|
||||
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding StepParTxBl}"
|
||||
ParamTxBx="{Binding Path=StepPar,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding SideStepTxBl}"
|
||||
ParamTxBx="{Binding Path=SideStep,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
|
||||
</StackPanel>
|
||||
</Expander>
|
||||
|
||||
<Expander Style="{StaticResource ExpanderStyle}">
|
||||
<Expander.Header>
|
||||
<TextBlock Text="{Binding OffsetGpBxLbl}"/>
|
||||
</Expander.Header>
|
||||
<UniformGrid Columns="1">
|
||||
|
||||
<EgtWPFLib5:StringParamV Grid.Row="0"
|
||||
ParamTxBl="{Binding OffSrTxBl}"
|
||||
ParamTxBx="{Binding Path=OffSr,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
|
||||
</UniformGrid>
|
||||
</Expander>
|
||||
|
||||
<Expander Style="{StaticResource ExpanderStyle}">
|
||||
<Expander.Header>
|
||||
<TextBlock Text="{Binding ToolExpanderHeader}"/>
|
||||
</Expander.Header>
|
||||
<StackPanel>
|
||||
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding SpeedMsg}"
|
||||
ParamTxBx="{Binding Path=Speed,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding FeedMsg}"
|
||||
ParamTxBx="{Binding Path=Feed,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding TipFeedMsg}"
|
||||
ParamTxBx="{Binding Path=TipFeed,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding StartFeedMsg}"
|
||||
ParamTxBx="{Binding Path=StartFeed,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding EndFeedMsg}"
|
||||
ParamTxBx="{Binding Path=EndFeed,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding VertFeedTxBl}"
|
||||
ParamTxBx="{Binding Path=VertFeed,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
</StackPanel>
|
||||
</Expander>
|
||||
<Interactivity:Interaction.Behaviors>
|
||||
<EgtCAM5:AutomaticCloseExpander/>
|
||||
</Interactivity:Interaction.Behaviors>
|
||||
</StackPanel>
|
||||
</StackPanel>
|
||||
|
||||
</UserControl>
|
||||
+83
@@ -0,0 +1,83 @@
|
||||
Imports EgtWPFLib5
|
||||
Imports EgtWPFLib5.EgtFloating
|
||||
|
||||
Public Class StoneSawFinishingParameterExpanderV
|
||||
|
||||
Private EgtFloatingTray As EgtFloatingTray
|
||||
Private EgtFloatingPanel As EgtFloatingPanel
|
||||
|
||||
Private m_bFirst As Boolean = True
|
||||
|
||||
Private Sub OperationExpanderView_Loaded(sender As Object, e As System.Windows.RoutedEventArgs) Handles Me.Loaded
|
||||
If m_bFirst Then
|
||||
EgtFloatingTray = FindAncestor(Of EgtFloatingTray)(Me)
|
||||
EgtFloatingPanel = FindAncestor(Of EgtFloatingPanel)(Me)
|
||||
AddHandler EgtFloatingTray.SizeChanged, AddressOf EgtFloatingTray_SizeChanged
|
||||
PanelHeight = EgtFloatingPanel.ActualHeight
|
||||
Me.AutomaticCloseExpanderStackPanelHeight = AutomaticCloseExpanderStackPanel.ActualHeight
|
||||
m_bFirst = False
|
||||
End If
|
||||
CalculateOperationParametersStackPanelMaxHeight()
|
||||
End Sub
|
||||
|
||||
Dim m_bSizeChanging As Boolean = False
|
||||
|
||||
Private Sub EgtFloatingTray_SizeChanged(sender As Object, e As System.Windows.SizeChangedEventArgs)
|
||||
If m_bSizeChanging Then Return
|
||||
m_bSizeChanging = True
|
||||
CalculateOperationParametersStackPanelMaxHeight()
|
||||
m_bSizeChanging = False
|
||||
End Sub
|
||||
|
||||
Dim PanelHeight As Double = 0
|
||||
Dim AutomaticCloseExpanderStackPanelHeight As Double = 0
|
||||
|
||||
Private Sub CalculateOperationParametersStackPanelMaxHeight()
|
||||
Dim AutomaticCloseExpanderStackPanelHeight As Double = 0
|
||||
Dim OpenedExpanderList As New List(Of Boolean)
|
||||
For Index = 0 To AutomaticCloseExpanderStackPanel.Children.Count - 1
|
||||
If TypeOf AutomaticCloseExpanderStackPanel.Children(Index) Is Expander Then
|
||||
Dim IndexedExpander As Expander = DirectCast(AutomaticCloseExpanderStackPanel.Children(Index), Expander)
|
||||
If IndexedExpander.IsExpanded Then
|
||||
OpenedExpanderList.Add(True)
|
||||
IndexedExpander.IsExpanded = False
|
||||
Dim CurrExpanderContent As FrameworkElement = DirectCast(IndexedExpander.Content, FrameworkElement)
|
||||
CurrExpanderContent.Measure(New Size(Double.PositiveInfinity, Double.PositiveInfinity))
|
||||
AutomaticCloseExpanderStackPanelHeight -= CurrExpanderContent.DesiredSize.Height
|
||||
' Sottraggo anche i padding
|
||||
AutomaticCloseExpanderStackPanelHeight -= (IndexedExpander.Padding.Top + IndexedExpander.Padding.Bottom)
|
||||
Else
|
||||
OpenedExpanderList.Add(False)
|
||||
End If
|
||||
Else
|
||||
OpenedExpanderList.Add(False)
|
||||
End If
|
||||
Next
|
||||
Dim RemainingHeight As Double = EgtFloatingTray.ActualHeight - PanelHeight
|
||||
AutomaticCloseExpanderStackPanel.MaxHeight = Me.AutomaticCloseExpanderStackPanelHeight + RemainingHeight
|
||||
For Index = AutomaticCloseExpanderStackPanel.Children.Count - 1 To 0 Step -1
|
||||
If TypeOf AutomaticCloseExpanderStackPanel.Children(Index) Is Expander Then
|
||||
Dim IndexedExpander As Expander = DirectCast(AutomaticCloseExpanderStackPanel.Children(Index), Expander)
|
||||
If OpenedExpanderList(Index) Then
|
||||
IndexedExpander.IsExpanded = True
|
||||
End If
|
||||
End If
|
||||
Next
|
||||
End Sub
|
||||
|
||||
' Funzione che permette di trovare il primo contenitore di tipo T di un elemento grafico dependencyObject
|
||||
Public Function FindAncestor(Of T As Class)(dependencyObject As DependencyObject) As T
|
||||
Dim target As DependencyObject = dependencyObject
|
||||
Do
|
||||
target = LogicalTreeHelper.GetParent(target)
|
||||
Loop While target IsNot Nothing AndAlso Not (TypeOf target Is T)
|
||||
If IsNothing(target) Then
|
||||
target = dependencyObject
|
||||
Do
|
||||
target = VisualTreeHelper.GetParent(target)
|
||||
Loop While target IsNot Nothing AndAlso Not (TypeOf target Is T)
|
||||
End If
|
||||
Return TryCast(target, T)
|
||||
End Function
|
||||
|
||||
End Class
|
||||
+216
@@ -0,0 +1,216 @@
|
||||
<UserControl x:Class="StoneSawRoughingParameterExpanderV"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:sys="clr-namespace:System;assembly=mscorlib"
|
||||
xmlns:Interactivity="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
|
||||
xmlns:EgtCAM5="clr-namespace:EgtCAM5"
|
||||
xmlns:EgtWPFLib5="clr-namespace:EgtWPFLib5;assembly=EgtWPFLib5">
|
||||
|
||||
<UserControl.Resources>
|
||||
<EgtCAM5:OperationParamVisibilityConverter x:Key="OperationParamVisibilityConverter"/>
|
||||
<EgtCAM5:DepthUnitConverter x:Key="DepthUnitConverter"/>
|
||||
<sys:Int32 x:Key="Invert">0</sys:Int32>
|
||||
<sys:Int32 x:Key="LeaveTab">1</sys:Int32>
|
||||
<sys:Int32 x:Key="WorkSide">2</sys:Int32>
|
||||
<sys:Int32 x:Key="HeadSide">3</sys:Int32>
|
||||
<sys:Int32 x:Key="LeadInType">4</sys:Int32>
|
||||
<sys:Int32 x:Key="ExtLinkType">5</sys:Int32>
|
||||
<sys:Int32 x:Key="LeadOutType">6</sys:Int32>
|
||||
<sys:Int32 x:Key="CurveUse">7</sys:Int32>
|
||||
<sys:Int32 x:Key="StepType">8</sys:Int32>
|
||||
<sys:Int32 x:Key="LeadLinkType">9</sys:Int32>
|
||||
<sys:Int32 x:Key="Speed">10</sys:Int32>
|
||||
<sys:Int32 x:Key="Feed">11</sys:Int32>
|
||||
<sys:Int32 x:Key="StartFeed">12</sys:Int32>
|
||||
<sys:Int32 x:Key="EndFeed">13</sys:Int32>
|
||||
<sys:Int32 x:Key="TipFeed">14</sys:Int32>
|
||||
<sys:Int32 x:Key="OffSr">15</sys:Int32>
|
||||
<sys:Int32 x:Key="OffSl">16</sys:Int32>
|
||||
<sys:Int32 x:Key="SideAngle">17</sys:Int32>
|
||||
<sys:Int32 x:Key="Approx">18</sys:Int32>
|
||||
<sys:Int32 x:Key="StartPos">19</sys:Int32>
|
||||
<sys:Int32 x:Key="StartSlowLen">20</sys:Int32>
|
||||
<sys:Int32 x:Key="EndSlowLen">21</sys:Int32>
|
||||
<sys:Int32 x:Key="ThrouAddLen">22</sys:Int32>
|
||||
<sys:Int32 x:Key="StepPar">23</sys:Int32>
|
||||
<sys:Int32 x:Key="ReturnPos">24</sys:Int32>
|
||||
<sys:Int32 x:Key="TabLen">25</sys:Int32>
|
||||
<sys:Int32 x:Key="TabDist">26</sys:Int32>
|
||||
<sys:Int32 x:Key="TabHeight">27</sys:Int32>
|
||||
<sys:Int32 x:Key="TabAngle">28</sys:Int32>
|
||||
<sys:Int32 x:Key="LiTang">29</sys:Int32>
|
||||
<sys:Int32 x:Key="LiPerp">30</sys:Int32>
|
||||
<sys:Int32 x:Key="LiElev">31</sys:Int32>
|
||||
<sys:Int32 x:Key="LiCompLen">32</sys:Int32>
|
||||
<sys:Int32 x:Key="LoTang">33</sys:Int32>
|
||||
<sys:Int32 x:Key="LoPerp">34</sys:Int32>
|
||||
<sys:Int32 x:Key="LoElev">35</sys:Int32>
|
||||
<sys:Int32 x:Key="LoCompLen">36</sys:Int32>
|
||||
<sys:Int32 x:Key="StartAddLen">37</sys:Int32>
|
||||
<sys:Int32 x:Key="EndAddLen">38</sys:Int32>
|
||||
<sys:Int32 x:Key="StepExtArc">39</sys:Int32>
|
||||
<sys:Int32 x:Key="StepIntArc">40</sys:Int32>
|
||||
<sys:Int32 x:Key="SideStep">41</sys:Int32>
|
||||
<sys:Int32 x:Key="VertFeed">42</sys:Int32>
|
||||
<sys:Int32 x:Key="NamePar">43</sys:Int32>
|
||||
<sys:Int32 x:Key="Tool">44</sys:Int32>
|
||||
<sys:Int32 x:Key="DepthStr">45</sys:Int32>
|
||||
<sys:Int32 x:Key="UserNotes">46</sys:Int32>
|
||||
<sys:Int32 x:Key="OverLapStr">47</sys:Int32>
|
||||
<sys:Int32 x:Key="OffsetStr">48</sys:Int32>
|
||||
<sys:Int32 x:Key="SubType">49</sys:Int32>
|
||||
<sys:Int32 x:Key="SolChoiceType">50</sys:Int32>
|
||||
<sys:Int32 x:Key="AxRotRef">51</sys:Int32>
|
||||
<sys:Int32 x:Key="BlockedAxesRef">52</sys:Int32>
|
||||
<sys:Int32 x:Key="FaceUseType">53</sys:Int32>
|
||||
<sys:Int32 x:Key="InvertToolDir">54</sys:Int32>
|
||||
<sys:Int32 x:Key="ExpanderLeadIn">55</sys:Int32>
|
||||
<sys:Int32 x:Key="ExpanderLeadOut">56</sys:Int32>
|
||||
<sys:Int32 x:Key="ApproxGen">57</sys:Int32>
|
||||
<sys:Int32 x:Key="OscEnable">58</sys:Int32>
|
||||
<sys:Int32 x:Key="OscHeight">59</sys:Int32>
|
||||
<sys:Int32 x:Key="OscRampLen">60</sys:Int32>
|
||||
<sys:Int32 x:Key="OscFlatLen">61</sys:Int32>
|
||||
</UserControl.Resources>
|
||||
|
||||
<StackPanel Name="OperationParametersStackPanel">
|
||||
<StackPanel Name="OperationFirstParametersStackPanel">
|
||||
<UniformGrid Columns="2">
|
||||
<TextBlock Text="{Binding DepthMsg}" Style="{DynamicResource MPExpander_DepthTxBlMargin}"/>
|
||||
<EgtWPFLib5:EgtTextBox Text="{Binding DepthStr, UpdateSourceTrigger=PropertyChanged,
|
||||
Converter={StaticResource DepthUnitConverter}}"
|
||||
Style="{DynamicResource MPExpander_DepthTxBxMargin}"/>
|
||||
</UniformGrid>
|
||||
|
||||
<EgtWPFLib5:ComboParamV
|
||||
ParamTxBl="{Binding StepTypeMsg}"
|
||||
ParamCmBxList="{Binding Path=StepTypeList,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
ParamCmBxSelIndex="{Binding Path=SelectedStepType}"
|
||||
Style="{DynamicResource ComboParamV_Margin}"/>
|
||||
|
||||
|
||||
<UniformGrid Columns="2">
|
||||
<TextBlock Text="{Binding UserNotesMsg}"
|
||||
Style="{DynamicResource MPExpander_UserNotesTxBlMargin}"/>
|
||||
<EgtWPFLib5:EgtTextBox Text="{Binding UserNotes, UpdateSourceTrigger=PropertyChanged}"
|
||||
Style="{DynamicResource MPExpander_UserNotesTxBxMargin}">
|
||||
<EgtWPFLib5:EgtTextBox.ToolTip>
|
||||
<TextBlock Text="{Binding UserNotesTooltip}"/>
|
||||
</EgtWPFLib5:EgtTextBox.ToolTip>
|
||||
</EgtWPFLib5:EgtTextBox>
|
||||
</UniformGrid>
|
||||
</StackPanel>
|
||||
<StackPanel Name="AutomaticCloseExpanderStackPanel">
|
||||
<Expander Header="{Binding GenericExpanderHeader}" Name="GenericExpander"
|
||||
Style="{StaticResource ExpanderStyle}" Margin="0,1,0,1">
|
||||
<StackPanel>
|
||||
<EgtWPFLib5:ComboParamV
|
||||
ParamTxBl="{Binding HeadSideMsg}"
|
||||
ParamCmBxList="{Binding Path=HeadSideList,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
ParamCmBxSelIndex="{Binding Path=SelectedHeadSide}"
|
||||
Style="{DynamicResource ComboParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV Grid.Column="0" Grid.Row="0"
|
||||
ParamTxBl="{Binding StartPosTxBl}"
|
||||
ParamTxBx="{Binding Path=StartPos,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
|
||||
<EgtWPFLib5:ComboParamV
|
||||
ParamTxBl="{Binding ExtLinkTypeTxBl}"
|
||||
ParamCmBxList="{Binding Path=ExtLinkTypeList,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
ParamCmBxSelIndex="{Binding Path=SelectedExtLinkType}"
|
||||
Style="{DynamicResource ComboParamV_Margin}"/>
|
||||
</StackPanel>
|
||||
</Expander>
|
||||
<Expander Header="{Binding StepGpBxLbl}"
|
||||
Style="{StaticResource ExpanderStyle}" Margin="0,1,0,1">
|
||||
<StackPanel>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding StepParTxBl}"
|
||||
ParamTxBx="{Binding Path=StepPar,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding SideStepTxBl}"
|
||||
ParamTxBx="{Binding Path=SideStep,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
</StackPanel>
|
||||
</Expander>
|
||||
|
||||
<Expander Style="{StaticResource ExpanderStyle}">
|
||||
<Expander.Header>
|
||||
<TextBlock Text="{Binding OffsetGpBxLbl}"/>
|
||||
</Expander.Header>
|
||||
<UniformGrid Columns="1">
|
||||
|
||||
<EgtWPFLib5:StringParamV Grid.Row="0"
|
||||
ParamTxBl="{Binding OffSrTxBl}"
|
||||
ParamTxBx="{Binding Path=OffSr,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
|
||||
<EgtWPFLib5:StringParamV Grid.Row="0"
|
||||
ParamTxBl="{Binding OffSlTxBl}"
|
||||
ParamTxBx="{Binding Path=OffSl,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
|
||||
</UniformGrid>
|
||||
</Expander>
|
||||
|
||||
<Expander Style="{StaticResource ExpanderStyle}">
|
||||
<Expander.Header>
|
||||
<TextBlock Text="{Binding ToolExpanderHeader}"/>
|
||||
</Expander.Header>
|
||||
<StackPanel>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding SpeedMsg}"
|
||||
ParamTxBx="{Binding Path=Speed,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding FeedMsg}"
|
||||
ParamTxBx="{Binding Path=Feed,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding TipFeedMsg}"
|
||||
ParamTxBx="{Binding Path=TipFeed,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding StartFeedMsg}"
|
||||
ParamTxBx="{Binding Path=StartFeed,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding EndFeedMsg}"
|
||||
ParamTxBx="{Binding Path=EndFeed,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
</StackPanel>
|
||||
</Expander>
|
||||
<Interactivity:Interaction.Behaviors>
|
||||
<EgtCAM5:AutomaticCloseExpander/>
|
||||
</Interactivity:Interaction.Behaviors>
|
||||
</StackPanel>
|
||||
</StackPanel>
|
||||
|
||||
</UserControl>
|
||||
+83
@@ -0,0 +1,83 @@
|
||||
Imports EgtWPFLib5
|
||||
Imports EgtWPFLib5.EgtFloating
|
||||
|
||||
Public Class StoneSawRoughingParameterExpanderV
|
||||
|
||||
Private EgtFloatingTray As EgtFloatingTray
|
||||
Private EgtFloatingPanel As EgtFloatingPanel
|
||||
|
||||
Private m_bFirst As Boolean = True
|
||||
|
||||
Private Sub OperationExpanderView_Loaded(sender As Object, e As System.Windows.RoutedEventArgs) Handles Me.Loaded
|
||||
If m_bFirst Then
|
||||
EgtFloatingTray = FindAncestor(Of EgtFloatingTray)(Me)
|
||||
EgtFloatingPanel = FindAncestor(Of EgtFloatingPanel)(Me)
|
||||
AddHandler EgtFloatingTray.SizeChanged, AddressOf EgtFloatingTray_SizeChanged
|
||||
PanelHeight = EgtFloatingPanel.ActualHeight
|
||||
Me.AutomaticCloseExpanderStackPanelHeight = AutomaticCloseExpanderStackPanel.ActualHeight
|
||||
m_bFirst = False
|
||||
End If
|
||||
CalculateOperationParametersStackPanelMaxHeight()
|
||||
End Sub
|
||||
|
||||
Dim m_bSizeChanging As Boolean = False
|
||||
|
||||
Private Sub EgtFloatingTray_SizeChanged(sender As Object, e As System.Windows.SizeChangedEventArgs)
|
||||
If m_bSizeChanging Then Return
|
||||
m_bSizeChanging = True
|
||||
CalculateOperationParametersStackPanelMaxHeight()
|
||||
m_bSizeChanging = False
|
||||
End Sub
|
||||
|
||||
Dim PanelHeight As Double = 0
|
||||
Dim AutomaticCloseExpanderStackPanelHeight As Double = 0
|
||||
|
||||
Private Sub CalculateOperationParametersStackPanelMaxHeight()
|
||||
Dim AutomaticCloseExpanderStackPanelHeight As Double = 0
|
||||
Dim OpenedExpanderList As New List(Of Boolean)
|
||||
For Index = 0 To AutomaticCloseExpanderStackPanel.Children.Count - 1
|
||||
If TypeOf AutomaticCloseExpanderStackPanel.Children(Index) Is Expander Then
|
||||
Dim IndexedExpander As Expander = DirectCast(AutomaticCloseExpanderStackPanel.Children(Index), Expander)
|
||||
If IndexedExpander.IsExpanded Then
|
||||
OpenedExpanderList.Add(True)
|
||||
IndexedExpander.IsExpanded = False
|
||||
Dim CurrExpanderContent As FrameworkElement = DirectCast(IndexedExpander.Content, FrameworkElement)
|
||||
CurrExpanderContent.Measure(New Size(Double.PositiveInfinity, Double.PositiveInfinity))
|
||||
AutomaticCloseExpanderStackPanelHeight -= CurrExpanderContent.DesiredSize.Height
|
||||
' Sottraggo anche i padding
|
||||
AutomaticCloseExpanderStackPanelHeight -= (IndexedExpander.Padding.Top + IndexedExpander.Padding.Bottom)
|
||||
Else
|
||||
OpenedExpanderList.Add(False)
|
||||
End If
|
||||
Else
|
||||
OpenedExpanderList.Add(False)
|
||||
End If
|
||||
Next
|
||||
Dim RemainingHeight As Double = EgtFloatingTray.ActualHeight - PanelHeight
|
||||
AutomaticCloseExpanderStackPanel.MaxHeight = Me.AutomaticCloseExpanderStackPanelHeight + RemainingHeight
|
||||
For Index = AutomaticCloseExpanderStackPanel.Children.Count - 1 To 0 Step -1
|
||||
If TypeOf AutomaticCloseExpanderStackPanel.Children(Index) Is Expander Then
|
||||
Dim IndexedExpander As Expander = DirectCast(AutomaticCloseExpanderStackPanel.Children(Index), Expander)
|
||||
If OpenedExpanderList(Index) Then
|
||||
IndexedExpander.IsExpanded = True
|
||||
End If
|
||||
End If
|
||||
Next
|
||||
End Sub
|
||||
|
||||
' Funzione che permette di trovare il primo contenitore di tipo T di un elemento grafico dependencyObject
|
||||
Public Function FindAncestor(Of T As Class)(dependencyObject As DependencyObject) As T
|
||||
Dim target As DependencyObject = dependencyObject
|
||||
Do
|
||||
target = LogicalTreeHelper.GetParent(target)
|
||||
Loop While target IsNot Nothing AndAlso Not (TypeOf target Is T)
|
||||
If IsNothing(target) Then
|
||||
target = dependencyObject
|
||||
Do
|
||||
target = VisualTreeHelper.GetParent(target)
|
||||
Loop While target IsNot Nothing AndAlso Not (TypeOf target Is T)
|
||||
End If
|
||||
Return TryCast(target, T)
|
||||
End Function
|
||||
|
||||
End Class
|
||||
+250
@@ -0,0 +1,250 @@
|
||||
<UserControl x:Class="StoneSawingParameterExpanderV"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:sys="clr-namespace:System;assembly=mscorlib"
|
||||
xmlns:Interactivity="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
|
||||
xmlns:EgtCAM5="clr-namespace:EgtCAM5"
|
||||
xmlns:EgtWPFLib5="clr-namespace:EgtWPFLib5;assembly=EgtWPFLib5">
|
||||
|
||||
<UserControl.Resources>
|
||||
<EgtCAM5:OperationParamVisibilityConverter x:Key="OperationParamVisibilityConverter"/>
|
||||
<EgtCAM5:DepthUnitConverter x:Key="DepthUnitConverter"/>
|
||||
<sys:Int32 x:Key="Invert">0</sys:Int32>
|
||||
<sys:Int32 x:Key="LeaveTab">1</sys:Int32>
|
||||
<sys:Int32 x:Key="WorkSide">2</sys:Int32>
|
||||
<sys:Int32 x:Key="HeadSide">3</sys:Int32>
|
||||
<sys:Int32 x:Key="LeadInType">4</sys:Int32>
|
||||
<sys:Int32 x:Key="ExtLinkType">5</sys:Int32>
|
||||
<sys:Int32 x:Key="LeadOutType">6</sys:Int32>
|
||||
<sys:Int32 x:Key="CurveUse">7</sys:Int32>
|
||||
<sys:Int32 x:Key="StepType">8</sys:Int32>
|
||||
<sys:Int32 x:Key="LeadLinkType">9</sys:Int32>
|
||||
<sys:Int32 x:Key="Speed">10</sys:Int32>
|
||||
<sys:Int32 x:Key="Feed">11</sys:Int32>
|
||||
<sys:Int32 x:Key="StartFeed">12</sys:Int32>
|
||||
<sys:Int32 x:Key="EndFeed">13</sys:Int32>
|
||||
<sys:Int32 x:Key="TipFeed">14</sys:Int32>
|
||||
<sys:Int32 x:Key="OffSr">15</sys:Int32>
|
||||
<sys:Int32 x:Key="OffSl">16</sys:Int32>
|
||||
<sys:Int32 x:Key="SideAngle">17</sys:Int32>
|
||||
<sys:Int32 x:Key="Approx">18</sys:Int32>
|
||||
<sys:Int32 x:Key="StartPos">19</sys:Int32>
|
||||
<sys:Int32 x:Key="StartSlowLen">20</sys:Int32>
|
||||
<sys:Int32 x:Key="EndSlowLen">21</sys:Int32>
|
||||
<sys:Int32 x:Key="ThrouAddLen">22</sys:Int32>
|
||||
<sys:Int32 x:Key="StepPar">23</sys:Int32>
|
||||
<sys:Int32 x:Key="ReturnPos">24</sys:Int32>
|
||||
<sys:Int32 x:Key="TabLen">25</sys:Int32>
|
||||
<sys:Int32 x:Key="TabDist">26</sys:Int32>
|
||||
<sys:Int32 x:Key="TabHeight">27</sys:Int32>
|
||||
<sys:Int32 x:Key="TabAngle">28</sys:Int32>
|
||||
<sys:Int32 x:Key="LiTang">29</sys:Int32>
|
||||
<sys:Int32 x:Key="LiPerp">30</sys:Int32>
|
||||
<sys:Int32 x:Key="LiElev">31</sys:Int32>
|
||||
<sys:Int32 x:Key="LiCompLen">32</sys:Int32>
|
||||
<sys:Int32 x:Key="LoTang">33</sys:Int32>
|
||||
<sys:Int32 x:Key="LoPerp">34</sys:Int32>
|
||||
<sys:Int32 x:Key="LoElev">35</sys:Int32>
|
||||
<sys:Int32 x:Key="LoCompLen">36</sys:Int32>
|
||||
<sys:Int32 x:Key="StartAddLen">37</sys:Int32>
|
||||
<sys:Int32 x:Key="EndAddLen">38</sys:Int32>
|
||||
<sys:Int32 x:Key="StepExtArc">39</sys:Int32>
|
||||
<sys:Int32 x:Key="StepIntArc">40</sys:Int32>
|
||||
<sys:Int32 x:Key="SideStep">41</sys:Int32>
|
||||
<sys:Int32 x:Key="VertFeed">42</sys:Int32>
|
||||
<sys:Int32 x:Key="NamePar">43</sys:Int32>
|
||||
<sys:Int32 x:Key="Tool">44</sys:Int32>
|
||||
<sys:Int32 x:Key="DepthStr">45</sys:Int32>
|
||||
<sys:Int32 x:Key="UserNotes">46</sys:Int32>
|
||||
<sys:Int32 x:Key="OverLapStr">47</sys:Int32>
|
||||
<sys:Int32 x:Key="OffsetStr">48</sys:Int32>
|
||||
<sys:Int32 x:Key="SubType">49</sys:Int32>
|
||||
<sys:Int32 x:Key="SolChoiceType">50</sys:Int32>
|
||||
<sys:Int32 x:Key="AxRotRef">51</sys:Int32>
|
||||
<sys:Int32 x:Key="BlockedAxesRef">52</sys:Int32>
|
||||
<sys:Int32 x:Key="FaceUseType">53</sys:Int32>
|
||||
<sys:Int32 x:Key="InvertToolDir">54</sys:Int32>
|
||||
<sys:Int32 x:Key="ExpanderLeadIn">55</sys:Int32>
|
||||
<sys:Int32 x:Key="ExpanderLeadOut">56</sys:Int32>
|
||||
<sys:Int32 x:Key="ApproxGen">57</sys:Int32>
|
||||
<sys:Int32 x:Key="OscEnable">58</sys:Int32>
|
||||
<sys:Int32 x:Key="OscHeight">59</sys:Int32>
|
||||
<sys:Int32 x:Key="OscRampLen">60</sys:Int32>
|
||||
<sys:Int32 x:Key="OscFlatLen">61</sys:Int32>
|
||||
</UserControl.Resources>
|
||||
|
||||
<StackPanel Name="OperationParametersStackPanel">
|
||||
<StackPanel Name="OperationFirstParametersStackPanel">
|
||||
<UniformGrid Columns="2">
|
||||
<TextBlock Text="{Binding DepthMsg}" Style="{DynamicResource MPExpander_DepthTxBlMargin}"/>
|
||||
<EgtWPFLib5:EgtTextBox Text="{Binding DepthStr, UpdateSourceTrigger=PropertyChanged,
|
||||
Converter={StaticResource DepthUnitConverter}}"
|
||||
Style="{DynamicResource MPExpander_DepthTxBxMargin}"/>
|
||||
</UniformGrid>
|
||||
<EgtWPFLib5:CheckParamV
|
||||
ParamTxBl="{Binding InvertMsg}"
|
||||
ParamChBx="{Binding Path=Invert,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource CheckParamV_Margin}"/>
|
||||
|
||||
<UniformGrid Columns="2">
|
||||
<TextBlock Text="{Binding UserNotesMsg}"
|
||||
Style="{DynamicResource MPExpander_UserNotesTxBlMargin}"/>
|
||||
<EgtWPFLib5:EgtTextBox Text="{Binding UserNotes, UpdateSourceTrigger=PropertyChanged}"
|
||||
Style="{DynamicResource MPExpander_UserNotesTxBxMargin}">
|
||||
<EgtWPFLib5:EgtTextBox.ToolTip>
|
||||
<TextBlock Text="{Binding UserNotesTooltip}"/>
|
||||
</EgtWPFLib5:EgtTextBox.ToolTip>
|
||||
</EgtWPFLib5:EgtTextBox>
|
||||
</UniformGrid>
|
||||
</StackPanel>
|
||||
<StackPanel Name="AutomaticCloseExpanderStackPanel">
|
||||
<Expander Header="{Binding GenericExpanderHeader}" Name="GenericExpander"
|
||||
Style="{StaticResource ExpanderStyle}" Margin="0,1,0,1">
|
||||
<StackPanel>
|
||||
<EgtWPFLib5:ComboParamV
|
||||
ParamTxBl="{Binding WorkSideMsg}"
|
||||
ParamCmBxList="{Binding Path=WorkSideList,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
ParamCmBxSelIndex="{Binding Path=SelectedWorkSide}"
|
||||
Style="{DynamicResource ComboParamV_Margin}"/>
|
||||
<EgtWPFLib5:ComboParamV
|
||||
ParamTxBl="{Binding HeadSideMsg}"
|
||||
ParamCmBxList="{Binding Path=HeadSideList,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
ParamCmBxSelIndex="{Binding Path=SelectedHeadSide}"
|
||||
Style="{DynamicResource ComboParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding StartPosMsg}"
|
||||
ParamTxBx="{Binding Path=StartPos,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:ComboParamV
|
||||
ParamTxBl="{Binding LeadInTypeMsg}"
|
||||
ParamCmBxList="{Binding Path=LeadInTypeList,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
ParamCmBxSelIndex="{Binding Path=SelectedLeadInType}"
|
||||
Style="{DynamicResource ComboParamV_Margin}"/>
|
||||
<EgtWPFLib5:ComboParamV
|
||||
ParamTxBl="{Binding ExtLinkTypeMsg}"
|
||||
ParamCmBxList="{Binding Path=ExtLinkTypeList,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
ParamCmBxSelIndex="{Binding Path=SelectedExtLinkType}"
|
||||
Style="{DynamicResource ComboParamV_Margin}"/>
|
||||
<EgtWPFLib5:ComboParamV
|
||||
ParamTxBl="{Binding LeadOutTypeMsg}"
|
||||
ParamCmBxList="{Binding Path=LeadOutTypeList,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
ParamCmBxSelIndex="{Binding Path=SelectedLeadOutType}"
|
||||
Style="{DynamicResource ComboParamV_Margin}"/>
|
||||
</StackPanel>
|
||||
</Expander>
|
||||
<Expander Style="{StaticResource ExpanderStyle}">
|
||||
<Expander.Header>
|
||||
<TextBlock Text="{Binding StepGpBxLbl}"/>
|
||||
</Expander.Header>
|
||||
<StackPanel>
|
||||
<EgtWPFLib5:ComboParamV
|
||||
ParamTxBl="{Binding StepTypeMsg}"
|
||||
ParamCmBxList="{Binding Path=StepTypeList,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
ParamCmBxSelIndex="{Binding Path=SelectedStepType}"
|
||||
Style="{DynamicResource ComboParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding StepParMsg}"
|
||||
ParamTxBx="{Binding Path=StepPar,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding StepBackMsg}"
|
||||
ParamTxBx="{Binding Path=StepBack,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding StepSideAngMsg}"
|
||||
ParamTxBx="{Binding Path=StepSideAng,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding StepSideAngBackMsg}"
|
||||
ParamTxBx="{Binding Path=StepSideAngBack,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding StepIntArcMsg}"
|
||||
ParamTxBx="{Binding Path=StepIntArc,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding StepExtArcMsg}"
|
||||
ParamTxBx="{Binding Path=StepExtArc,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
</StackPanel>
|
||||
</Expander>
|
||||
|
||||
<Expander Style="{StaticResource ExpanderStyle}">
|
||||
<Expander.Header>
|
||||
<TextBlock Text="{Binding ToolExpanderHeader}"/>
|
||||
</Expander.Header>
|
||||
<StackPanel>
|
||||
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding SpeedMsg}"
|
||||
ParamTxBx="{Binding Path=Speed,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding FeedMsg}"
|
||||
ParamTxBx="{Binding Path=Feed,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding TipFeedMsg}"
|
||||
ParamTxBx="{Binding Path=TipFeed,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding StartFeedMsg}"
|
||||
ParamTxBx="{Binding Path=StartFeed,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding EndFeedMsg}"
|
||||
ParamTxBx="{Binding Path=EndFeed,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding BackFeedMsg}"
|
||||
ParamTxBx="{Binding Path=BackFeed,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
</StackPanel>
|
||||
</Expander>
|
||||
<Interactivity:Interaction.Behaviors>
|
||||
<EgtCAM5:AutomaticCloseExpander/>
|
||||
</Interactivity:Interaction.Behaviors>
|
||||
</StackPanel>
|
||||
</StackPanel>
|
||||
|
||||
</UserControl>
|
||||
+83
@@ -0,0 +1,83 @@
|
||||
Imports EgtWPFLib5
|
||||
Imports EgtWPFLib5.EgtFloating
|
||||
|
||||
Public Class StoneSawingParameterExpanderV
|
||||
|
||||
Private EgtFloatingTray As EgtFloatingTray
|
||||
Private EgtFloatingPanel As EgtFloatingPanel
|
||||
|
||||
Private m_bFirst As Boolean = True
|
||||
|
||||
Private Sub OperationExpanderView_Loaded(sender As Object, e As System.Windows.RoutedEventArgs) Handles Me.Loaded
|
||||
If m_bFirst Then
|
||||
EgtFloatingTray = FindAncestor(Of EgtFloatingTray)(Me)
|
||||
EgtFloatingPanel = FindAncestor(Of EgtFloatingPanel)(Me)
|
||||
AddHandler EgtFloatingTray.SizeChanged, AddressOf EgtFloatingTray_SizeChanged
|
||||
PanelHeight = EgtFloatingPanel.ActualHeight
|
||||
Me.AutomaticCloseExpanderStackPanelHeight = AutomaticCloseExpanderStackPanel.ActualHeight
|
||||
m_bFirst = False
|
||||
End If
|
||||
CalculateOperationParametersStackPanelMaxHeight()
|
||||
End Sub
|
||||
|
||||
Dim m_bSizeChanging As Boolean = False
|
||||
|
||||
Private Sub EgtFloatingTray_SizeChanged(sender As Object, e As System.Windows.SizeChangedEventArgs)
|
||||
If m_bSizeChanging Then Return
|
||||
m_bSizeChanging = True
|
||||
CalculateOperationParametersStackPanelMaxHeight()
|
||||
m_bSizeChanging = False
|
||||
End Sub
|
||||
|
||||
Dim PanelHeight As Double = 0
|
||||
Dim AutomaticCloseExpanderStackPanelHeight As Double = 0
|
||||
|
||||
Private Sub CalculateOperationParametersStackPanelMaxHeight()
|
||||
Dim AutomaticCloseExpanderStackPanelHeight As Double = 0
|
||||
Dim OpenedExpanderList As New List(Of Boolean)
|
||||
For Index = 0 To AutomaticCloseExpanderStackPanel.Children.Count - 1
|
||||
If TypeOf AutomaticCloseExpanderStackPanel.Children(Index) Is Expander Then
|
||||
Dim IndexedExpander As Expander = DirectCast(AutomaticCloseExpanderStackPanel.Children(Index), Expander)
|
||||
If IndexedExpander.IsExpanded Then
|
||||
OpenedExpanderList.Add(True)
|
||||
IndexedExpander.IsExpanded = False
|
||||
Dim CurrExpanderContent As FrameworkElement = DirectCast(IndexedExpander.Content, FrameworkElement)
|
||||
CurrExpanderContent.Measure(New Size(Double.PositiveInfinity, Double.PositiveInfinity))
|
||||
AutomaticCloseExpanderStackPanelHeight -= CurrExpanderContent.DesiredSize.Height
|
||||
' Sottraggo anche i padding
|
||||
AutomaticCloseExpanderStackPanelHeight -= (IndexedExpander.Padding.Top + IndexedExpander.Padding.Bottom)
|
||||
Else
|
||||
OpenedExpanderList.Add(False)
|
||||
End If
|
||||
Else
|
||||
OpenedExpanderList.Add(False)
|
||||
End If
|
||||
Next
|
||||
Dim RemainingHeight As Double = EgtFloatingTray.ActualHeight - PanelHeight
|
||||
AutomaticCloseExpanderStackPanel.MaxHeight = Me.AutomaticCloseExpanderStackPanelHeight + RemainingHeight
|
||||
For Index = AutomaticCloseExpanderStackPanel.Children.Count - 1 To 0 Step -1
|
||||
If TypeOf AutomaticCloseExpanderStackPanel.Children(Index) Is Expander Then
|
||||
Dim IndexedExpander As Expander = DirectCast(AutomaticCloseExpanderStackPanel.Children(Index), Expander)
|
||||
If OpenedExpanderList(Index) Then
|
||||
IndexedExpander.IsExpanded = True
|
||||
End If
|
||||
End If
|
||||
Next
|
||||
End Sub
|
||||
|
||||
' Funzione che permette di trovare il primo contenitore di tipo T di un elemento grafico dependencyObject
|
||||
Public Function FindAncestor(Of T As Class)(dependencyObject As DependencyObject) As T
|
||||
Dim target As DependencyObject = dependencyObject
|
||||
Do
|
||||
target = LogicalTreeHelper.GetParent(target)
|
||||
Loop While target IsNot Nothing AndAlso Not (TypeOf target Is T)
|
||||
If IsNothing(target) Then
|
||||
target = dependencyObject
|
||||
Do
|
||||
target = VisualTreeHelper.GetParent(target)
|
||||
Loop While target IsNot Nothing AndAlso Not (TypeOf target Is T)
|
||||
End If
|
||||
Return TryCast(target, T)
|
||||
End Function
|
||||
|
||||
End Class
|
||||
+295
@@ -0,0 +1,295 @@
|
||||
<UserControl x:Class="WaterjettingParameterExpanderV"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:sys="clr-namespace:System;assembly=mscorlib"
|
||||
xmlns:Interactivity="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
|
||||
xmlns:EgtCAM5="clr-namespace:EgtCAM5"
|
||||
xmlns:EgtWPFLib5="clr-namespace:EgtWPFLib5;assembly=EgtWPFLib5">
|
||||
|
||||
<UserControl.Resources>
|
||||
<EgtCAM5:OperationParamVisibilityConverter x:Key="OperationParamVisibilityConverter"/>
|
||||
<EgtCAM5:DepthUnitConverter x:Key="DepthUnitConverter"/>
|
||||
<sys:Int32 x:Key="Invert">0</sys:Int32>
|
||||
<sys:Int32 x:Key="LeaveTab">1</sys:Int32>
|
||||
<sys:Int32 x:Key="WorkSide">2</sys:Int32>
|
||||
<sys:Int32 x:Key="HeadSide">3</sys:Int32>
|
||||
<sys:Int32 x:Key="LeadInType">4</sys:Int32>
|
||||
<sys:Int32 x:Key="ExtLinkType">5</sys:Int32>
|
||||
<sys:Int32 x:Key="LeadOutType">6</sys:Int32>
|
||||
<sys:Int32 x:Key="CurveUse">7</sys:Int32>
|
||||
<sys:Int32 x:Key="StepType">8</sys:Int32>
|
||||
<sys:Int32 x:Key="LeadLinkType">9</sys:Int32>
|
||||
<sys:Int32 x:Key="Speed">10</sys:Int32>
|
||||
<sys:Int32 x:Key="Feed">11</sys:Int32>
|
||||
<sys:Int32 x:Key="StartFeed">12</sys:Int32>
|
||||
<sys:Int32 x:Key="EndFeed">13</sys:Int32>
|
||||
<sys:Int32 x:Key="TipFeed">14</sys:Int32>
|
||||
<sys:Int32 x:Key="OffSr">15</sys:Int32>
|
||||
<sys:Int32 x:Key="OffSl">16</sys:Int32>
|
||||
<sys:Int32 x:Key="SideAngle">17</sys:Int32>
|
||||
<sys:Int32 x:Key="Approx">18</sys:Int32>
|
||||
<sys:Int32 x:Key="StartPos">19</sys:Int32>
|
||||
<sys:Int32 x:Key="StartSlowLen">20</sys:Int32>
|
||||
<sys:Int32 x:Key="EndSlowLen">21</sys:Int32>
|
||||
<sys:Int32 x:Key="ThrouAddLen">22</sys:Int32>
|
||||
<sys:Int32 x:Key="StepPar">23</sys:Int32>
|
||||
<sys:Int32 x:Key="ReturnPos">24</sys:Int32>
|
||||
<sys:Int32 x:Key="TabLen">25</sys:Int32>
|
||||
<sys:Int32 x:Key="TabDist">26</sys:Int32>
|
||||
<sys:Int32 x:Key="TabHeight">27</sys:Int32>
|
||||
<sys:Int32 x:Key="TabAngle">28</sys:Int32>
|
||||
<sys:Int32 x:Key="LiTang">29</sys:Int32>
|
||||
<sys:Int32 x:Key="LiPerp">30</sys:Int32>
|
||||
<sys:Int32 x:Key="LiElev">31</sys:Int32>
|
||||
<sys:Int32 x:Key="LiCompLen">32</sys:Int32>
|
||||
<sys:Int32 x:Key="LoTang">33</sys:Int32>
|
||||
<sys:Int32 x:Key="LoPerp">34</sys:Int32>
|
||||
<sys:Int32 x:Key="LoElev">35</sys:Int32>
|
||||
<sys:Int32 x:Key="LoCompLen">36</sys:Int32>
|
||||
<sys:Int32 x:Key="StartAddLen">37</sys:Int32>
|
||||
<sys:Int32 x:Key="EndAddLen">38</sys:Int32>
|
||||
<sys:Int32 x:Key="StepExtArc">39</sys:Int32>
|
||||
<sys:Int32 x:Key="StepIntArc">40</sys:Int32>
|
||||
<sys:Int32 x:Key="SideStep">41</sys:Int32>
|
||||
<sys:Int32 x:Key="VertFeed">42</sys:Int32>
|
||||
<sys:Int32 x:Key="NamePar">43</sys:Int32>
|
||||
<sys:Int32 x:Key="Tool">44</sys:Int32>
|
||||
<sys:Int32 x:Key="DepthStr">45</sys:Int32>
|
||||
<sys:Int32 x:Key="UserNotes">46</sys:Int32>
|
||||
<sys:Int32 x:Key="OverLapStr">47</sys:Int32>
|
||||
<sys:Int32 x:Key="OffsetStr">48</sys:Int32>
|
||||
<sys:Int32 x:Key="SubType">49</sys:Int32>
|
||||
<sys:Int32 x:Key="SolChoiceType">50</sys:Int32>
|
||||
<sys:Int32 x:Key="AxRotRef">51</sys:Int32>
|
||||
<sys:Int32 x:Key="BlockedAxesRef">52</sys:Int32>
|
||||
<sys:Int32 x:Key="FaceUseType">53</sys:Int32>
|
||||
<sys:Int32 x:Key="InvertToolDir">54</sys:Int32>
|
||||
<sys:Int32 x:Key="ExpanderLeadIn">55</sys:Int32>
|
||||
<sys:Int32 x:Key="ExpanderLeadOut">56</sys:Int32>
|
||||
<sys:Int32 x:Key="ApproxGen">57</sys:Int32>
|
||||
<sys:Int32 x:Key="OscEnable">58</sys:Int32>
|
||||
<sys:Int32 x:Key="OscHeight">59</sys:Int32>
|
||||
<sys:Int32 x:Key="OscRampLen">60</sys:Int32>
|
||||
<sys:Int32 x:Key="OscFlatLen">61</sys:Int32>
|
||||
</UserControl.Resources>
|
||||
|
||||
<StackPanel Name="OperationParametersStackPanel">
|
||||
<StackPanel Name="OperationFirstParametersStackPanel">
|
||||
|
||||
<EgtWPFLib5:CheckParamV
|
||||
ParamTxBl="{Binding InvertMsg}"
|
||||
ParamChBx="{Binding Path=Invert,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource CheckParamV_Margin}"/>
|
||||
<EgtWPFLib5:ComboParamV
|
||||
ParamTxBl="{Binding WorkSideMsg}"
|
||||
ParamCmBxList="{Binding Path=WorkSideList,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
ParamCmBxSelIndex="{Binding Path=SelectedWorkSide}"
|
||||
Style="{DynamicResource ComboParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding ForwardAngleTxBl}"
|
||||
ParamTxBx="{Binding Path=ForwardAngle,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<UniformGrid Columns="2">
|
||||
<TextBlock Text="{Binding UserNotesMsg}"
|
||||
Style="{DynamicResource MPExpander_UserNotesTxBlMargin}"/>
|
||||
<EgtWPFLib5:EgtTextBox Text="{Binding UserNotes, UpdateSourceTrigger=PropertyChanged}"
|
||||
Style="{DynamicResource MPExpander_UserNotesTxBxMargin}">
|
||||
<EgtWPFLib5:EgtTextBox.ToolTip>
|
||||
<TextBlock Text="{Binding UserNotesTooltip}"/>
|
||||
</EgtWPFLib5:EgtTextBox.ToolTip>
|
||||
</EgtWPFLib5:EgtTextBox>
|
||||
</UniformGrid>
|
||||
</StackPanel>
|
||||
<StackPanel Name="AutomaticCloseExpanderStackPanel">
|
||||
<Expander Style="{StaticResource ExpanderStyle}">
|
||||
<Expander.Header>
|
||||
<EgtWPFLib5:ComboParamV
|
||||
ParamTxBl="{Binding LeadInTypeMsg}"
|
||||
ParamCmBxList="{Binding Path=LeadInTypeList,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
ParamCmBxSelIndex="{Binding Path=SelectedLeadInType}"
|
||||
Style="{DynamicResource ComboParamV_Margin}"/>
|
||||
</Expander.Header>
|
||||
<StackPanel>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding LiTangMsg}"
|
||||
ParamTxBx="{Binding Path=LiTang,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding LiPerpMsg}"
|
||||
ParamTxBx="{Binding Path=LiPerp,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
|
||||
<EgtWPFLib5:CheckParamV Grid.Column="0" Grid.Row="0"
|
||||
ParamTxBl="{Binding LiHoleTxBl}"
|
||||
ParamChBx="{Binding Path=LiHole,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource CheckParamV_Margin}"/>
|
||||
|
||||
<EgtWPFLib5:StringParamV Grid.Column="1" Grid.Row="0"
|
||||
ParamTxBl="{Binding LiHoleRadTxBl}"
|
||||
ParamTxBx="{Binding Path=LiHoleRad,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
|
||||
<EgtWPFLib5:StringParamV Grid.Column="0" Grid.Row="1"
|
||||
ParamTxBl="{Binding LpTurnsTxBl}"
|
||||
ParamTxBx="{Binding Path=LpTurns,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
|
||||
<EgtWPFLib5:StringParamV Grid.Column="1" Grid.Row="1"
|
||||
ParamTxBl="{Binding HpTurnsTxBl}"
|
||||
ParamTxBx="{Binding Path=HpTurns,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
</StackPanel>
|
||||
</Expander>
|
||||
|
||||
<Expander Style="{StaticResource ExpanderStyle}">
|
||||
<Expander.Header>
|
||||
<EgtWPFLib5:ComboParamV
|
||||
ParamTxBl="{Binding LeadOutTypeMsg}"
|
||||
ParamCmBxList="{Binding Path=LeadOutTypeList,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
ParamCmBxSelIndex="{Binding Path=SelectedLeadOutType}"
|
||||
Style="{DynamicResource ComboParamV_Margin}"/>
|
||||
</Expander.Header>
|
||||
<StackPanel>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding LoTangMsg}"
|
||||
ParamTxBx="{Binding Path=LoTang,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding LoPerpMsg}"
|
||||
ParamTxBx="{Binding Path=LoPerp,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
</StackPanel>
|
||||
</Expander>
|
||||
|
||||
<Expander Header="{Binding AnglesGpBxLbl}"
|
||||
Style="{StaticResource ExpanderStyle}" Margin="0,1,0,1">
|
||||
<StackPanel>
|
||||
|
||||
<EgtWPFLib5:ComboParamV
|
||||
ParamTxBl="{Binding ExtCornTypeTxBl}"
|
||||
ParamCmBxList="{Binding Path=ExtCornTypeList,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
ParamCmBxSelIndex="{Binding Path=SelectedExtCornType}"
|
||||
Style="{DynamicResource ComboParamV_Margin}"/>
|
||||
|
||||
<EgtWPFLib5:ComboParamV
|
||||
ParamTxBl="{Binding IntCornTypeTxBl}"
|
||||
ParamCmBxList="{Binding Path=IntCornTypeList,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
ParamCmBxSelIndex="{Binding Path=SelectedIntCornType}"
|
||||
Style="{DynamicResource ComboParamV_Margin}"/>
|
||||
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding CornSlowLenTxBl}"
|
||||
ParamTxBx="{Binding Path=CornSlowLen,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding CornSlowPercTxBl}"
|
||||
ParamTxBx="{Binding Path=CornSlowPerc,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
</StackPanel>
|
||||
</Expander>
|
||||
|
||||
<Expander Style="{StaticResource ExpanderStyle}">
|
||||
<Expander.Header>
|
||||
<EgtWPFLib5:CheckParamV
|
||||
ParamTxBl="{Binding ProbingGpBxLbl}"
|
||||
ParamChBx="{Binding Path=Probing,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource CheckParamV_Margin}"/>
|
||||
</Expander.Header>
|
||||
<StackPanel Margin="2">
|
||||
<EgtWPFLib5:StringParamV Grid.Column="1" Grid.Row="0"
|
||||
ParamTxBl="{Binding ProbingMinDistTxBl}"
|
||||
ParamTxBx="{Binding Path=ProbingMinDist,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV Grid.Column="0" Grid.Row="1"
|
||||
ParamTxBl="{Binding ProbingMaxDistTxBl}"
|
||||
ParamTxBx="{Binding Path=ProbingMaxDist,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
</StackPanel>
|
||||
</Expander>
|
||||
|
||||
<Expander Header="{Binding OffsetGpBxLbl}"
|
||||
Style="{StaticResource ExpanderStyle}" Margin="0,1,0,1">
|
||||
<StackPanel>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding OffsetSrMsg}"
|
||||
ParamTxBx="{Binding Path=OffSr,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
</StackPanel>
|
||||
</Expander>
|
||||
|
||||
<Expander Style="{StaticResource ExpanderStyle}">
|
||||
<Expander.Header>
|
||||
<TextBlock Text="{Binding ToolExpanderHeader}"/>
|
||||
</Expander.Header>
|
||||
<StackPanel>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding FeedMsg}"
|
||||
ParamTxBx="{Binding Path=Feed,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding TipFeedMsg}"
|
||||
ParamTxBx="{Binding Path=TipFeed,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding ThicknessFeedTxBl}"
|
||||
ParamTxBx="{Binding Path=ThicknessFeed,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
</StackPanel>
|
||||
</Expander>
|
||||
<Interactivity:Interaction.Behaviors>
|
||||
<EgtCAM5:AutomaticCloseExpander/>
|
||||
</Interactivity:Interaction.Behaviors>
|
||||
</StackPanel>
|
||||
</StackPanel>
|
||||
|
||||
</UserControl>
|
||||
+83
@@ -0,0 +1,83 @@
|
||||
Imports EgtWPFLib5
|
||||
Imports EgtWPFLib5.EgtFloating
|
||||
|
||||
Public Class WaterjettingParameterExpanderV
|
||||
|
||||
Private EgtFloatingTray As EgtFloatingTray
|
||||
Private EgtFloatingPanel As EgtFloatingPanel
|
||||
|
||||
Private m_bFirst As Boolean = True
|
||||
|
||||
Private Sub OperationExpanderView_Loaded(sender As Object, e As System.Windows.RoutedEventArgs) Handles Me.Loaded
|
||||
If m_bFirst Then
|
||||
EgtFloatingTray = FindAncestor(Of EgtFloatingTray)(Me)
|
||||
EgtFloatingPanel = FindAncestor(Of EgtFloatingPanel)(Me)
|
||||
AddHandler EgtFloatingTray.SizeChanged, AddressOf EgtFloatingTray_SizeChanged
|
||||
PanelHeight = EgtFloatingPanel.ActualHeight
|
||||
Me.AutomaticCloseExpanderStackPanelHeight = AutomaticCloseExpanderStackPanel.ActualHeight
|
||||
m_bFirst = False
|
||||
End If
|
||||
CalculateOperationParametersStackPanelMaxHeight()
|
||||
End Sub
|
||||
|
||||
Dim m_bSizeChanging As Boolean = False
|
||||
|
||||
Private Sub EgtFloatingTray_SizeChanged(sender As Object, e As System.Windows.SizeChangedEventArgs)
|
||||
If m_bSizeChanging Then Return
|
||||
m_bSizeChanging = True
|
||||
CalculateOperationParametersStackPanelMaxHeight()
|
||||
m_bSizeChanging = False
|
||||
End Sub
|
||||
|
||||
Dim PanelHeight As Double = 0
|
||||
Dim AutomaticCloseExpanderStackPanelHeight As Double = 0
|
||||
|
||||
Private Sub CalculateOperationParametersStackPanelMaxHeight()
|
||||
Dim AutomaticCloseExpanderStackPanelHeight As Double = 0
|
||||
Dim OpenedExpanderList As New List(Of Boolean)
|
||||
For Index = 0 To AutomaticCloseExpanderStackPanel.Children.Count - 1
|
||||
If TypeOf AutomaticCloseExpanderStackPanel.Children(Index) Is Expander Then
|
||||
Dim IndexedExpander As Expander = DirectCast(AutomaticCloseExpanderStackPanel.Children(Index), Expander)
|
||||
If IndexedExpander.IsExpanded Then
|
||||
OpenedExpanderList.Add(True)
|
||||
IndexedExpander.IsExpanded = False
|
||||
Dim CurrExpanderContent As FrameworkElement = DirectCast(IndexedExpander.Content, FrameworkElement)
|
||||
CurrExpanderContent.Measure(New Size(Double.PositiveInfinity, Double.PositiveInfinity))
|
||||
AutomaticCloseExpanderStackPanelHeight -= CurrExpanderContent.DesiredSize.Height
|
||||
' Sottraggo anche i padding
|
||||
AutomaticCloseExpanderStackPanelHeight -= (IndexedExpander.Padding.Top + IndexedExpander.Padding.Bottom)
|
||||
Else
|
||||
OpenedExpanderList.Add(False)
|
||||
End If
|
||||
Else
|
||||
OpenedExpanderList.Add(False)
|
||||
End If
|
||||
Next
|
||||
Dim RemainingHeight As Double = EgtFloatingTray.ActualHeight - PanelHeight
|
||||
AutomaticCloseExpanderStackPanel.MaxHeight = Me.AutomaticCloseExpanderStackPanelHeight + RemainingHeight
|
||||
For Index = AutomaticCloseExpanderStackPanel.Children.Count - 1 To 0 Step -1
|
||||
If TypeOf AutomaticCloseExpanderStackPanel.Children(Index) Is Expander Then
|
||||
Dim IndexedExpander As Expander = DirectCast(AutomaticCloseExpanderStackPanel.Children(Index), Expander)
|
||||
If OpenedExpanderList(Index) Then
|
||||
IndexedExpander.IsExpanded = True
|
||||
End If
|
||||
End If
|
||||
Next
|
||||
End Sub
|
||||
|
||||
' Funzione che permette di trovare il primo contenitore di tipo T di un elemento grafico dependencyObject
|
||||
Public Function FindAncestor(Of T As Class)(dependencyObject As DependencyObject) As T
|
||||
Dim target As DependencyObject = dependencyObject
|
||||
Do
|
||||
target = LogicalTreeHelper.GetParent(target)
|
||||
Loop While target IsNot Nothing AndAlso Not (TypeOf target Is T)
|
||||
If IsNothing(target) Then
|
||||
target = dependencyObject
|
||||
Do
|
||||
target = VisualTreeHelper.GetParent(target)
|
||||
Loop While target IsNot Nothing AndAlso Not (TypeOf target Is T)
|
||||
End If
|
||||
Return TryCast(target, T)
|
||||
End Function
|
||||
|
||||
End Class
|
||||
+213
@@ -0,0 +1,213 @@
|
||||
<UserControl x:Class="WoodDrillingParameterExpanderV"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:sys="clr-namespace:System;assembly=mscorlib"
|
||||
xmlns:Interactivity="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
|
||||
xmlns:EgtCAM5="clr-namespace:EgtCAM5"
|
||||
xmlns:EgtWPFLib5="clr-namespace:EgtWPFLib5;assembly=EgtWPFLib5">
|
||||
|
||||
<UserControl.Resources>
|
||||
<EgtCAM5:OperationParamVisibilityConverter x:Key="OperationParamVisibilityConverter"/>
|
||||
<EgtCAM5:DepthUnitConverter x:Key="DepthUnitConverter"/>
|
||||
<sys:Int32 x:Key="Invert">0</sys:Int32>
|
||||
<sys:Int32 x:Key="LeaveTab">1</sys:Int32>
|
||||
<sys:Int32 x:Key="WorkSide">2</sys:Int32>
|
||||
<sys:Int32 x:Key="HeadSide">3</sys:Int32>
|
||||
<sys:Int32 x:Key="LeadInType">4</sys:Int32>
|
||||
<sys:Int32 x:Key="ExtLinkType">5</sys:Int32>
|
||||
<sys:Int32 x:Key="LeadOutType">6</sys:Int32>
|
||||
<sys:Int32 x:Key="CurveUse">7</sys:Int32>
|
||||
<sys:Int32 x:Key="StepType">8</sys:Int32>
|
||||
<sys:Int32 x:Key="LeadLinkType">9</sys:Int32>
|
||||
<sys:Int32 x:Key="Speed">10</sys:Int32>
|
||||
<sys:Int32 x:Key="Feed">11</sys:Int32>
|
||||
<sys:Int32 x:Key="StartFeed">12</sys:Int32>
|
||||
<sys:Int32 x:Key="EndFeed">13</sys:Int32>
|
||||
<sys:Int32 x:Key="TipFeed">14</sys:Int32>
|
||||
<sys:Int32 x:Key="OffSr">15</sys:Int32>
|
||||
<sys:Int32 x:Key="OffSl">16</sys:Int32>
|
||||
<sys:Int32 x:Key="SideAngle">17</sys:Int32>
|
||||
<sys:Int32 x:Key="Approx">18</sys:Int32>
|
||||
<sys:Int32 x:Key="StartPos">19</sys:Int32>
|
||||
<sys:Int32 x:Key="StartSlowLen">20</sys:Int32>
|
||||
<sys:Int32 x:Key="EndSlowLen">21</sys:Int32>
|
||||
<sys:Int32 x:Key="ThrouAddLen">22</sys:Int32>
|
||||
<sys:Int32 x:Key="StepPar">23</sys:Int32>
|
||||
<sys:Int32 x:Key="ReturnPos">24</sys:Int32>
|
||||
<sys:Int32 x:Key="TabLen">25</sys:Int32>
|
||||
<sys:Int32 x:Key="TabDist">26</sys:Int32>
|
||||
<sys:Int32 x:Key="TabHeight">27</sys:Int32>
|
||||
<sys:Int32 x:Key="TabAngle">28</sys:Int32>
|
||||
<sys:Int32 x:Key="LiTang">29</sys:Int32>
|
||||
<sys:Int32 x:Key="LiPerp">30</sys:Int32>
|
||||
<sys:Int32 x:Key="LiElev">31</sys:Int32>
|
||||
<sys:Int32 x:Key="LiCompLen">32</sys:Int32>
|
||||
<sys:Int32 x:Key="LoTang">33</sys:Int32>
|
||||
<sys:Int32 x:Key="LoPerp">34</sys:Int32>
|
||||
<sys:Int32 x:Key="LoElev">35</sys:Int32>
|
||||
<sys:Int32 x:Key="LoCompLen">36</sys:Int32>
|
||||
<sys:Int32 x:Key="StartAddLen">37</sys:Int32>
|
||||
<sys:Int32 x:Key="EndAddLen">38</sys:Int32>
|
||||
<sys:Int32 x:Key="StepExtArc">39</sys:Int32>
|
||||
<sys:Int32 x:Key="StepIntArc">40</sys:Int32>
|
||||
<sys:Int32 x:Key="SideStep">41</sys:Int32>
|
||||
<sys:Int32 x:Key="VertFeed">42</sys:Int32>
|
||||
<sys:Int32 x:Key="NamePar">43</sys:Int32>
|
||||
<sys:Int32 x:Key="Tool">44</sys:Int32>
|
||||
<sys:Int32 x:Key="DepthStr">45</sys:Int32>
|
||||
<sys:Int32 x:Key="UserNotes">46</sys:Int32>
|
||||
<sys:Int32 x:Key="OverLapStr">47</sys:Int32>
|
||||
<sys:Int32 x:Key="OffsetStr">48</sys:Int32>
|
||||
<sys:Int32 x:Key="SubType">49</sys:Int32>
|
||||
<sys:Int32 x:Key="SolChoiceType">50</sys:Int32>
|
||||
<sys:Int32 x:Key="AxRotRef">51</sys:Int32>
|
||||
<sys:Int32 x:Key="BlockedAxesRef">52</sys:Int32>
|
||||
<sys:Int32 x:Key="FaceUseType">53</sys:Int32>
|
||||
<sys:Int32 x:Key="InvertToolDir">54</sys:Int32>
|
||||
<sys:Int32 x:Key="ExpanderLeadIn">55</sys:Int32>
|
||||
<sys:Int32 x:Key="ExpanderLeadOut">56</sys:Int32>
|
||||
<sys:Int32 x:Key="ApproxGen">57</sys:Int32>
|
||||
<sys:Int32 x:Key="OscEnable">58</sys:Int32>
|
||||
<sys:Int32 x:Key="OscHeight">59</sys:Int32>
|
||||
<sys:Int32 x:Key="OscRampLen">60</sys:Int32>
|
||||
<sys:Int32 x:Key="OscFlatLen">61</sys:Int32>
|
||||
</UserControl.Resources>
|
||||
|
||||
<StackPanel Name="OperationParametersStackPanel">
|
||||
<StackPanel Name="OperationFirstParametersStackPanel">
|
||||
<UniformGrid Columns="2">
|
||||
<TextBlock Text="{Binding DepthMsg}" Style="{DynamicResource MPExpander_DepthTxBlMargin}"/>
|
||||
<EgtWPFLib5:EgtTextBox Text="{Binding DepthStr, UpdateSourceTrigger=PropertyChanged,
|
||||
Converter={StaticResource DepthUnitConverter}}"
|
||||
Style="{DynamicResource MPExpander_DepthTxBxMargin}"/>
|
||||
</UniformGrid>
|
||||
<EgtWPFLib5:CheckParamV
|
||||
ParamTxBl="{Binding InvertMsg}"
|
||||
ParamChBx="{Binding Path=Invert,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource CheckParamV_Margin}"/>
|
||||
<UniformGrid Columns="2">
|
||||
<TextBlock Text="{Binding UserNotesMsg}"
|
||||
Style="{DynamicResource MPExpander_UserNotesTxBlMargin}"/>
|
||||
<EgtWPFLib5:EgtTextBox Text="{Binding UserNotes, UpdateSourceTrigger=PropertyChanged}"
|
||||
Style="{DynamicResource MPExpander_UserNotesTxBxMargin}">
|
||||
<EgtWPFLib5:EgtTextBox.ToolTip>
|
||||
<TextBlock Text="{Binding UserNotesTooltip}"/>
|
||||
</EgtWPFLib5:EgtTextBox.ToolTip>
|
||||
</EgtWPFLib5:EgtTextBox>
|
||||
</UniformGrid>
|
||||
</StackPanel>
|
||||
<StackPanel Name="AutomaticCloseExpanderStackPanel">
|
||||
<Expander Header="{Binding GenericExpanderHeader}" Name="GenericExpander"
|
||||
Style="{StaticResource ExpanderStyle}" Margin="0,1,0,1">
|
||||
<StackPanel>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding StartPosMsg}"
|
||||
ParamTxBx="{Binding Path=StartPos,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding ReturnPosMsg}"
|
||||
ParamTxBx="{Binding Path=ReturnPos,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding ThrouAddLenMsg}"
|
||||
ParamTxBx="{Binding Path=ThrouAddLen,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding StepParMsg}"
|
||||
ParamTxBx="{Binding Path=StepPar,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding StartSlowLenMsg}"
|
||||
ParamTxBx="{Binding Path=StartSlowLen,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding EndSlowLenMsg}"
|
||||
ParamTxBx="{Binding Path=EndSlowLen,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
</StackPanel>
|
||||
</Expander>
|
||||
|
||||
<Expander Header="{Binding AdvancedParamMsg}" Name="AdvancedParam"
|
||||
Style="{StaticResource ExpanderStyle}" Margin="0,1,0,1">
|
||||
<StackPanel>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding InitAngsMsg}"
|
||||
ParamTxBx="{Binding Path=InitAngs,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding BlockedAxisMsg}"
|
||||
ParamTxBx="{Binding Path=BlockedAxis,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:ComboParamV
|
||||
ParamTxBl="{Binding SolChoiceTypeMsg}"
|
||||
ParamCmBxList="{Binding Path=SolChoiceTypeList,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True,
|
||||
Mode=OneWay}"
|
||||
ParamCmBxSelIndex="{Binding Path=SelectedSolChoiceType}"
|
||||
Style="{DynamicResource ComboParamV_Margin}"/>
|
||||
</StackPanel>
|
||||
</Expander>
|
||||
|
||||
<Expander Style="{StaticResource ExpanderStyle}">
|
||||
<Expander.Header>
|
||||
<TextBlock Text="{Binding ToolExpanderHeader}"/>
|
||||
</Expander.Header>
|
||||
<StackPanel>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding SpeedMsg}"
|
||||
ParamTxBx="{Binding Path=Speed,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding FeedMsg}"
|
||||
ParamTxBx="{Binding Path=Feed,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding TipFeedMsg}"
|
||||
ParamTxBx="{Binding Path=TipFeed,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding StartFeedMsg}"
|
||||
ParamTxBx="{Binding Path=StartFeed,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding EndFeedMsg}"
|
||||
ParamTxBx="{Binding Path=EndFeed,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
</StackPanel>
|
||||
</Expander>
|
||||
<Interactivity:Interaction.Behaviors>
|
||||
<EgtCAM5:AutomaticCloseExpander/>
|
||||
</Interactivity:Interaction.Behaviors>
|
||||
</StackPanel>
|
||||
</StackPanel>
|
||||
|
||||
</UserControl>
|
||||
+83
@@ -0,0 +1,83 @@
|
||||
Imports EgtWPFLib5
|
||||
Imports EgtWPFLib5.EgtFloating
|
||||
|
||||
Public Class WoodDrillingParameterExpanderV
|
||||
|
||||
Private EgtFloatingTray As EgtFloatingTray
|
||||
Private EgtFloatingPanel As EgtFloatingPanel
|
||||
|
||||
Private m_bFirst As Boolean = True
|
||||
|
||||
Private Sub OperationExpanderView_Loaded(sender As Object, e As System.Windows.RoutedEventArgs) Handles Me.Loaded
|
||||
If m_bFirst Then
|
||||
EgtFloatingTray = FindAncestor(Of EgtFloatingTray)(Me)
|
||||
EgtFloatingPanel = FindAncestor(Of EgtFloatingPanel)(Me)
|
||||
AddHandler EgtFloatingTray.SizeChanged, AddressOf EgtFloatingTray_SizeChanged
|
||||
PanelHeight = EgtFloatingPanel.ActualHeight
|
||||
Me.AutomaticCloseExpanderStackPanelHeight = AutomaticCloseExpanderStackPanel.ActualHeight
|
||||
m_bFirst = False
|
||||
End If
|
||||
CalculateOperationParametersStackPanelMaxHeight()
|
||||
End Sub
|
||||
|
||||
Dim m_bSizeChanging As Boolean = False
|
||||
|
||||
Private Sub EgtFloatingTray_SizeChanged(sender As Object, e As System.Windows.SizeChangedEventArgs)
|
||||
If m_bSizeChanging Then Return
|
||||
m_bSizeChanging = True
|
||||
CalculateOperationParametersStackPanelMaxHeight()
|
||||
m_bSizeChanging = False
|
||||
End Sub
|
||||
|
||||
Dim PanelHeight As Double = 0
|
||||
Dim AutomaticCloseExpanderStackPanelHeight As Double = 0
|
||||
|
||||
Private Sub CalculateOperationParametersStackPanelMaxHeight()
|
||||
Dim AutomaticCloseExpanderStackPanelHeight As Double = 0
|
||||
Dim OpenedExpanderList As New List(Of Boolean)
|
||||
For Index = 0 To AutomaticCloseExpanderStackPanel.Children.Count - 1
|
||||
If TypeOf AutomaticCloseExpanderStackPanel.Children(Index) Is Expander Then
|
||||
Dim IndexedExpander As Expander = DirectCast(AutomaticCloseExpanderStackPanel.Children(Index), Expander)
|
||||
If IndexedExpander.IsExpanded Then
|
||||
OpenedExpanderList.Add(True)
|
||||
IndexedExpander.IsExpanded = False
|
||||
Dim CurrExpanderContent As FrameworkElement = DirectCast(IndexedExpander.Content, FrameworkElement)
|
||||
CurrExpanderContent.Measure(New Size(Double.PositiveInfinity, Double.PositiveInfinity))
|
||||
AutomaticCloseExpanderStackPanelHeight -= CurrExpanderContent.DesiredSize.Height
|
||||
' Sottraggo anche i padding
|
||||
AutomaticCloseExpanderStackPanelHeight -= (IndexedExpander.Padding.Top + IndexedExpander.Padding.Bottom)
|
||||
Else
|
||||
OpenedExpanderList.Add(False)
|
||||
End If
|
||||
Else
|
||||
OpenedExpanderList.Add(False)
|
||||
End If
|
||||
Next
|
||||
Dim RemainingHeight As Double = EgtFloatingTray.ActualHeight - PanelHeight
|
||||
AutomaticCloseExpanderStackPanel.MaxHeight = Me.AutomaticCloseExpanderStackPanelHeight + RemainingHeight
|
||||
For Index = AutomaticCloseExpanderStackPanel.Children.Count - 1 To 0 Step -1
|
||||
If TypeOf AutomaticCloseExpanderStackPanel.Children(Index) Is Expander Then
|
||||
Dim IndexedExpander As Expander = DirectCast(AutomaticCloseExpanderStackPanel.Children(Index), Expander)
|
||||
If OpenedExpanderList(Index) Then
|
||||
IndexedExpander.IsExpanded = True
|
||||
End If
|
||||
End If
|
||||
Next
|
||||
End Sub
|
||||
|
||||
' Funzione che permette di trovare il primo contenitore di tipo T di un elemento grafico dependencyObject
|
||||
Public Function FindAncestor(Of T As Class)(dependencyObject As DependencyObject) As T
|
||||
Dim target As DependencyObject = dependencyObject
|
||||
Do
|
||||
target = LogicalTreeHelper.GetParent(target)
|
||||
Loop While target IsNot Nothing AndAlso Not (TypeOf target Is T)
|
||||
If IsNothing(target) Then
|
||||
target = dependencyObject
|
||||
Do
|
||||
target = VisualTreeHelper.GetParent(target)
|
||||
Loop While target IsNot Nothing AndAlso Not (TypeOf target Is T)
|
||||
End If
|
||||
Return TryCast(target, T)
|
||||
End Function
|
||||
|
||||
End Class
|
||||
+402
@@ -0,0 +1,402 @@
|
||||
<UserControl x:Class="WoodMillingParameterExpanderV"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:sys="clr-namespace:System;assembly=mscorlib"
|
||||
xmlns:Interactivity="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
|
||||
xmlns:EgtCAM5="clr-namespace:EgtCAM5"
|
||||
xmlns:EgtWPFLib5="clr-namespace:EgtWPFLib5;assembly=EgtWPFLib5">
|
||||
|
||||
<UserControl.Resources>
|
||||
<EgtCAM5:OperationParamVisibilityConverter x:Key="OperationParamVisibilityConverter"/>
|
||||
<EgtCAM5:DepthUnitConverter x:Key="DepthUnitConverter"/>
|
||||
<sys:Int32 x:Key="Invert">0</sys:Int32>
|
||||
<sys:Int32 x:Key="LeaveTab">1</sys:Int32>
|
||||
<sys:Int32 x:Key="WorkSide">2</sys:Int32>
|
||||
<sys:Int32 x:Key="HeadSide">3</sys:Int32>
|
||||
<sys:Int32 x:Key="LeadInType">4</sys:Int32>
|
||||
<sys:Int32 x:Key="ExtLinkType">5</sys:Int32>
|
||||
<sys:Int32 x:Key="LeadOutType">6</sys:Int32>
|
||||
<sys:Int32 x:Key="CurveUse">7</sys:Int32>
|
||||
<sys:Int32 x:Key="StepType">8</sys:Int32>
|
||||
<sys:Int32 x:Key="LeadLinkType">9</sys:Int32>
|
||||
<sys:Int32 x:Key="Speed">10</sys:Int32>
|
||||
<sys:Int32 x:Key="Feed">11</sys:Int32>
|
||||
<sys:Int32 x:Key="StartFeed">12</sys:Int32>
|
||||
<sys:Int32 x:Key="EndFeed">13</sys:Int32>
|
||||
<sys:Int32 x:Key="TipFeed">14</sys:Int32>
|
||||
<sys:Int32 x:Key="OffSr">15</sys:Int32>
|
||||
<sys:Int32 x:Key="OffSl">16</sys:Int32>
|
||||
<sys:Int32 x:Key="SideAngle">17</sys:Int32>
|
||||
<sys:Int32 x:Key="Approx">18</sys:Int32>
|
||||
<sys:Int32 x:Key="StartPos">19</sys:Int32>
|
||||
<sys:Int32 x:Key="StartSlowLen">20</sys:Int32>
|
||||
<sys:Int32 x:Key="EndSlowLen">21</sys:Int32>
|
||||
<sys:Int32 x:Key="ThrouAddLen">22</sys:Int32>
|
||||
<sys:Int32 x:Key="StepPar">23</sys:Int32>
|
||||
<sys:Int32 x:Key="ReturnPos">24</sys:Int32>
|
||||
<sys:Int32 x:Key="TabLen">25</sys:Int32>
|
||||
<sys:Int32 x:Key="TabDist">26</sys:Int32>
|
||||
<sys:Int32 x:Key="TabHeight">27</sys:Int32>
|
||||
<sys:Int32 x:Key="TabAngle">28</sys:Int32>
|
||||
<sys:Int32 x:Key="LiTang">29</sys:Int32>
|
||||
<sys:Int32 x:Key="LiPerp">30</sys:Int32>
|
||||
<sys:Int32 x:Key="LiElev">31</sys:Int32>
|
||||
<sys:Int32 x:Key="LiCompLen">32</sys:Int32>
|
||||
<sys:Int32 x:Key="LoTang">33</sys:Int32>
|
||||
<sys:Int32 x:Key="LoPerp">34</sys:Int32>
|
||||
<sys:Int32 x:Key="LoElev">35</sys:Int32>
|
||||
<sys:Int32 x:Key="LoCompLen">36</sys:Int32>
|
||||
<sys:Int32 x:Key="StartAddLen">37</sys:Int32>
|
||||
<sys:Int32 x:Key="EndAddLen">38</sys:Int32>
|
||||
<sys:Int32 x:Key="StepExtArc">39</sys:Int32>
|
||||
<sys:Int32 x:Key="StepIntArc">40</sys:Int32>
|
||||
<sys:Int32 x:Key="SideStep">41</sys:Int32>
|
||||
<sys:Int32 x:Key="VertFeed">42</sys:Int32>
|
||||
<sys:Int32 x:Key="NamePar">43</sys:Int32>
|
||||
<sys:Int32 x:Key="Tool">44</sys:Int32>
|
||||
<sys:Int32 x:Key="DepthStr">45</sys:Int32>
|
||||
<sys:Int32 x:Key="UserNotes">46</sys:Int32>
|
||||
<sys:Int32 x:Key="OverLapStr">47</sys:Int32>
|
||||
<sys:Int32 x:Key="OffsetStr">48</sys:Int32>
|
||||
<sys:Int32 x:Key="SubType">49</sys:Int32>
|
||||
<sys:Int32 x:Key="SolChoiceType">50</sys:Int32>
|
||||
<sys:Int32 x:Key="AxRotRef">51</sys:Int32>
|
||||
<sys:Int32 x:Key="BlockedAxesRef">52</sys:Int32>
|
||||
<sys:Int32 x:Key="FaceUseType">53</sys:Int32>
|
||||
<sys:Int32 x:Key="InvertToolDir">54</sys:Int32>
|
||||
<sys:Int32 x:Key="ExpanderLeadIn">55</sys:Int32>
|
||||
<sys:Int32 x:Key="ExpanderLeadOut">56</sys:Int32>
|
||||
<sys:Int32 x:Key="ApproxGen">57</sys:Int32>
|
||||
<sys:Int32 x:Key="OscEnable">58</sys:Int32>
|
||||
<sys:Int32 x:Key="OscHeight">59</sys:Int32>
|
||||
<sys:Int32 x:Key="OscRampLen">60</sys:Int32>
|
||||
<sys:Int32 x:Key="OscFlatLen">61</sys:Int32>
|
||||
</UserControl.Resources>
|
||||
|
||||
<StackPanel Name="OperationParametersStackPanel">
|
||||
<StackPanel Name="OperationFirstParametersStackPanel">
|
||||
<UniformGrid Columns="2">
|
||||
<TextBlock Text="{Binding DepthMsg}" Style="{DynamicResource MPExpander_DepthTxBlMargin}"/>
|
||||
<EgtWPFLib5:EgtTextBox Text="{Binding DepthStr, UpdateSourceTrigger=PropertyChanged,
|
||||
Converter={StaticResource DepthUnitConverter}}"
|
||||
Style="{DynamicResource MPExpander_DepthTxBxMargin}"/>
|
||||
</UniformGrid>
|
||||
<EgtWPFLib5:CheckParamV
|
||||
ParamTxBl="{Binding InvertMsg}"
|
||||
ParamChBx="{Binding Path=Invert,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource CheckParamV_Margin}"/>
|
||||
<EgtWPFLib5:ComboParamV
|
||||
ParamTxBl="{Binding WorkSideMsg}"
|
||||
ParamCmBxList="{Binding Path=WorkSideList,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
ParamCmBxSelIndex="{Binding Path=SelectedWorkSide}"
|
||||
Style="{DynamicResource ComboParamV_Margin}"/>
|
||||
<UniformGrid Columns="2">
|
||||
<TextBlock Text="{Binding UserNotesMsg}"
|
||||
Style="{DynamicResource MPExpander_UserNotesTxBlMargin}"/>
|
||||
<EgtWPFLib5:EgtTextBox Text="{Binding UserNotes, UpdateSourceTrigger=PropertyChanged}"
|
||||
Style="{DynamicResource MPExpander_UserNotesTxBxMargin}">
|
||||
<EgtWPFLib5:EgtTextBox.ToolTip>
|
||||
<TextBlock Text="{Binding UserNotesTooltip}"/>
|
||||
</EgtWPFLib5:EgtTextBox.ToolTip>
|
||||
</EgtWPFLib5:EgtTextBox>
|
||||
</UniformGrid>
|
||||
</StackPanel>
|
||||
<StackPanel Name="AutomaticCloseExpanderStackPanel">
|
||||
<Expander Header="{Binding GenericExpanderHeader}" Name="GenericExpander"
|
||||
Style="{StaticResource ExpanderStyle}" Margin="0,1,0,1">
|
||||
<StackPanel>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding StartPosMsg}"
|
||||
ParamTxBx="{Binding Path=StartPos,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding OverLapMsg}"
|
||||
ParamTxBx="{Binding Path=OverLap,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:ComboParamV
|
||||
ParamTxBl="{Binding StepTypeMsg}"
|
||||
ParamCmBxList="{Binding Path=StepTypeList,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
ParamCmBxSelIndex="{Binding Path=SelectedStepType}"
|
||||
Style="{DynamicResource ComboParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding StepParMsg}"
|
||||
ParamTxBx="{Binding Path=StepPar,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding OffsetSrMsg}"
|
||||
ParamTxBx="{Binding Path=OffSr,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding OffsetSlMsg}"
|
||||
ParamTxBx="{Binding Path=OffSl,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
</StackPanel>
|
||||
</Expander>
|
||||
|
||||
<Expander Header="{Binding AdvancedParamMsg}" Name="AdvancedParam"
|
||||
Style="{StaticResource ExpanderStyle}" Margin="0,1,0,1">
|
||||
<StackPanel>
|
||||
<EgtWPFLib5:CheckParamV
|
||||
ParamTxBl="{Binding InvertToolDirMsg}"
|
||||
ParamChBx="{Binding Path=ToolInvert,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource CheckParamV_Margin}"/>
|
||||
<EgtWPFLib5:ComboParamV
|
||||
ParamTxBl="{Binding FaceUseTypeMsg}"
|
||||
ParamCmBxList="{Binding Path=FaceUseTypeList,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
ParamCmBxSelIndex="{Binding Path=SelectedFaceUseType}"
|
||||
Style="{DynamicResource ComboParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding InitAngsMsg}"
|
||||
ParamTxBx="{Binding Path=InitAngs,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding BlockedAxisMsg}"
|
||||
ParamTxBx="{Binding Path=BlockedAxis,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:ComboParamV
|
||||
ParamTxBl="{Binding SolChoiceTypeMsg}"
|
||||
ParamCmBxList="{Binding Path=SolChoiceTypeList,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True,
|
||||
Mode=OneWay}"
|
||||
ParamCmBxSelIndex="{Binding Path=SelectedSolChoiceType}"
|
||||
Style="{DynamicResource ComboParamV_Margin}"/>
|
||||
</StackPanel>
|
||||
</Expander>
|
||||
|
||||
<Expander Style="{StaticResource ExpanderStyle}">
|
||||
<Expander.Header>
|
||||
<EgtWPFLib5:ComboParamV
|
||||
ParamTxBl="{Binding LeadInTypeMsg}"
|
||||
ParamCmBxList="{Binding Path=LeadInTypeList,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
ParamCmBxSelIndex="{Binding Path=SelectedLeadInType}"
|
||||
Style="{DynamicResource ComboParamV_Margin}"/>
|
||||
</Expander.Header>
|
||||
<StackPanel>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding StartAddLenMsg}"
|
||||
ParamTxBx="{Binding Path=StartAddLen,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding LiTangMsg}"
|
||||
ParamTxBx="{Binding Path=LiTang,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding LiPerpMsg}"
|
||||
ParamTxBx="{Binding Path=LiPerp,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding LiElevMsg}"
|
||||
ParamTxBx="{Binding Path=LiElev,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding LiCompLenMsg}"
|
||||
ParamTxBx="{Binding Path=LiCompLen,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
</StackPanel>
|
||||
</Expander>
|
||||
|
||||
<Expander Style="{StaticResource ExpanderStyle}">
|
||||
<Expander.Header>
|
||||
<EgtWPFLib5:ComboParamV
|
||||
ParamTxBl="{Binding LeadOutTypeMsg}"
|
||||
ParamCmBxList="{Binding Path=LeadOutTypeList,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
ParamCmBxSelIndex="{Binding Path=SelectedLeadOutType}"
|
||||
Style="{DynamicResource ComboParamV_Margin}"/>
|
||||
</Expander.Header>
|
||||
<StackPanel>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding EndAddLenMsg}"
|
||||
ParamTxBx="{Binding Path=EndAddLen,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding LoTangMsg}"
|
||||
ParamTxBx="{Binding Path=LoTang,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding LoPerpMsg}"
|
||||
ParamTxBx="{Binding Path=LoPerp,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding LoElevMsg}"
|
||||
ParamTxBx="{Binding Path=LoElev,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding LoCompLenMsg}"
|
||||
ParamTxBx="{Binding Path=LoCompLen,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
</StackPanel>
|
||||
</Expander>
|
||||
|
||||
<Expander Style="{StaticResource ExpanderStyle}">
|
||||
<Expander.Header>
|
||||
<EgtWPFLib5:CheckParamV
|
||||
ParamTxBl="{Binding LeaveTabMsg}"
|
||||
ParamChBx="{Binding Path=LeaveTab,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource CheckParamV_Margin}"/>
|
||||
</Expander.Header>
|
||||
<StackPanel Margin="2">
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding TabLenTxBl}"
|
||||
ParamTxBx="{Binding Path=TabLen,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding TabHeightTxBl}"
|
||||
ParamTxBx="{Binding Path=TabHeight,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding TabAngleTxBl}"
|
||||
ParamTxBx="{Binding Path=TabAngle,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding TabDistTxBl}"
|
||||
ParamTxBx="{Binding Path=TabDist,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding TabMinTxBl}"
|
||||
ParamTxBx="{Binding Path=TabMin,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding TabMaxTxBl}"
|
||||
ParamTxBx="{Binding Path=TabMax,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
</StackPanel>
|
||||
</Expander>
|
||||
|
||||
<Expander Style="{StaticResource ExpanderStyle}">
|
||||
<Expander.Header>
|
||||
<EgtWPFLib5:CheckParamV
|
||||
ParamTxBl="{Binding OscEnableMsg}"
|
||||
ParamChBx="{Binding Path=OscEnable,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource CheckParamV_Margin}"/>
|
||||
</Expander.Header>
|
||||
<StackPanel Margin="2">
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding OscHeightMsg}"
|
||||
ParamTxBx="{Binding Path=OscHeight,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding OscRampLenMsg}"
|
||||
ParamTxBx="{Binding Path=OscRampLen,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding OscFlatLenMsg}"
|
||||
ParamTxBx="{Binding Path=OscFlatLen,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
</StackPanel>
|
||||
</Expander>
|
||||
|
||||
<Expander Style="{StaticResource ExpanderStyle}">
|
||||
<Expander.Header>
|
||||
<TextBlock Text="{Binding ToolExpanderHeader}"/>
|
||||
</Expander.Header>
|
||||
<StackPanel>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding SpeedMsg}"
|
||||
ParamTxBx="{Binding Path=Speed,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding FeedMsg}"
|
||||
ParamTxBx="{Binding Path=Feed,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding TipFeedMsg}"
|
||||
ParamTxBx="{Binding Path=TipFeed,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding StartFeedMsg}"
|
||||
ParamTxBx="{Binding Path=StartFeed,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding EndFeedMsg}"
|
||||
ParamTxBx="{Binding Path=EndFeed,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
</StackPanel>
|
||||
</Expander>
|
||||
<Interactivity:Interaction.Behaviors>
|
||||
<EgtCAM5:AutomaticCloseExpander/>
|
||||
</Interactivity:Interaction.Behaviors>
|
||||
</StackPanel>
|
||||
</StackPanel>
|
||||
|
||||
</UserControl>
|
||||
+83
@@ -0,0 +1,83 @@
|
||||
Imports EgtWPFLib5
|
||||
Imports EgtWPFLib5.EgtFloating
|
||||
|
||||
Public Class WoodMillingParameterExpanderV
|
||||
|
||||
Private EgtFloatingTray As EgtFloatingTray
|
||||
Private EgtFloatingPanel As EgtFloatingPanel
|
||||
|
||||
Private m_bFirst As Boolean = True
|
||||
|
||||
Private Sub OperationExpanderView_Loaded(sender As Object, e As System.Windows.RoutedEventArgs) Handles Me.Loaded
|
||||
If m_bFirst Then
|
||||
EgtFloatingTray = FindAncestor(Of EgtFloatingTray)(Me)
|
||||
EgtFloatingPanel = FindAncestor(Of EgtFloatingPanel)(Me)
|
||||
AddHandler EgtFloatingTray.SizeChanged, AddressOf EgtFloatingTray_SizeChanged
|
||||
PanelHeight = EgtFloatingPanel.ActualHeight
|
||||
Me.AutomaticCloseExpanderStackPanelHeight = AutomaticCloseExpanderStackPanel.ActualHeight
|
||||
m_bFirst = False
|
||||
End If
|
||||
CalculateOperationParametersStackPanelMaxHeight()
|
||||
End Sub
|
||||
|
||||
Dim m_bSizeChanging As Boolean = False
|
||||
|
||||
Private Sub EgtFloatingTray_SizeChanged(sender As Object, e As System.Windows.SizeChangedEventArgs)
|
||||
If m_bSizeChanging Then Return
|
||||
m_bSizeChanging = True
|
||||
CalculateOperationParametersStackPanelMaxHeight()
|
||||
m_bSizeChanging = False
|
||||
End Sub
|
||||
|
||||
Dim PanelHeight As Double = 0
|
||||
Dim AutomaticCloseExpanderStackPanelHeight As Double = 0
|
||||
|
||||
Private Sub CalculateOperationParametersStackPanelMaxHeight()
|
||||
Dim AutomaticCloseExpanderStackPanelHeight As Double = 0
|
||||
Dim OpenedExpanderList As New List(Of Boolean)
|
||||
For Index = 0 To AutomaticCloseExpanderStackPanel.Children.Count - 1
|
||||
If TypeOf AutomaticCloseExpanderStackPanel.Children(Index) Is Expander Then
|
||||
Dim IndexedExpander As Expander = DirectCast(AutomaticCloseExpanderStackPanel.Children(Index), Expander)
|
||||
If IndexedExpander.IsExpanded Then
|
||||
OpenedExpanderList.Add(True)
|
||||
IndexedExpander.IsExpanded = False
|
||||
Dim CurrExpanderContent As FrameworkElement = DirectCast(IndexedExpander.Content, FrameworkElement)
|
||||
CurrExpanderContent.Measure(New Size(Double.PositiveInfinity, Double.PositiveInfinity))
|
||||
AutomaticCloseExpanderStackPanelHeight -= CurrExpanderContent.DesiredSize.Height
|
||||
' Sottraggo anche i padding
|
||||
AutomaticCloseExpanderStackPanelHeight -= (IndexedExpander.Padding.Top + IndexedExpander.Padding.Bottom)
|
||||
Else
|
||||
OpenedExpanderList.Add(False)
|
||||
End If
|
||||
Else
|
||||
OpenedExpanderList.Add(False)
|
||||
End If
|
||||
Next
|
||||
Dim RemainingHeight As Double = EgtFloatingTray.ActualHeight - PanelHeight
|
||||
AutomaticCloseExpanderStackPanel.MaxHeight = Me.AutomaticCloseExpanderStackPanelHeight + RemainingHeight
|
||||
For Index = AutomaticCloseExpanderStackPanel.Children.Count - 1 To 0 Step -1
|
||||
If TypeOf AutomaticCloseExpanderStackPanel.Children(Index) Is Expander Then
|
||||
Dim IndexedExpander As Expander = DirectCast(AutomaticCloseExpanderStackPanel.Children(Index), Expander)
|
||||
If OpenedExpanderList(Index) Then
|
||||
IndexedExpander.IsExpanded = True
|
||||
End If
|
||||
End If
|
||||
Next
|
||||
End Sub
|
||||
|
||||
' Funzione che permette di trovare il primo contenitore di tipo T di un elemento grafico dependencyObject
|
||||
Public Function FindAncestor(Of T As Class)(dependencyObject As DependencyObject) As T
|
||||
Dim target As DependencyObject = dependencyObject
|
||||
Do
|
||||
target = LogicalTreeHelper.GetParent(target)
|
||||
Loop While target IsNot Nothing AndAlso Not (TypeOf target Is T)
|
||||
If IsNothing(target) Then
|
||||
target = dependencyObject
|
||||
Do
|
||||
target = VisualTreeHelper.GetParent(target)
|
||||
Loop While target IsNot Nothing AndAlso Not (TypeOf target Is T)
|
||||
End If
|
||||
Return TryCast(target, T)
|
||||
End Function
|
||||
|
||||
End Class
|
||||
+290
@@ -0,0 +1,290 @@
|
||||
<UserControl x:Class="WoodSawingParameterExpanderV"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:sys="clr-namespace:System;assembly=mscorlib"
|
||||
xmlns:Interactivity="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
|
||||
xmlns:EgtCAM5="clr-namespace:EgtCAM5"
|
||||
xmlns:EgtWPFLib5="clr-namespace:EgtWPFLib5;assembly=EgtWPFLib5">
|
||||
|
||||
<UserControl.Resources>
|
||||
<EgtCAM5:OperationParamVisibilityConverter x:Key="OperationParamVisibilityConverter"/>
|
||||
<EgtCAM5:DepthUnitConverter x:Key="DepthUnitConverter"/>
|
||||
<sys:Int32 x:Key="Invert">0</sys:Int32>
|
||||
<sys:Int32 x:Key="LeaveTab">1</sys:Int32>
|
||||
<sys:Int32 x:Key="WorkSide">2</sys:Int32>
|
||||
<sys:Int32 x:Key="HeadSide">3</sys:Int32>
|
||||
<sys:Int32 x:Key="LeadInType">4</sys:Int32>
|
||||
<sys:Int32 x:Key="ExtLinkType">5</sys:Int32>
|
||||
<sys:Int32 x:Key="LeadOutType">6</sys:Int32>
|
||||
<sys:Int32 x:Key="CurveUse">7</sys:Int32>
|
||||
<sys:Int32 x:Key="StepType">8</sys:Int32>
|
||||
<sys:Int32 x:Key="LeadLinkType">9</sys:Int32>
|
||||
<sys:Int32 x:Key="Speed">10</sys:Int32>
|
||||
<sys:Int32 x:Key="Feed">11</sys:Int32>
|
||||
<sys:Int32 x:Key="StartFeed">12</sys:Int32>
|
||||
<sys:Int32 x:Key="EndFeed">13</sys:Int32>
|
||||
<sys:Int32 x:Key="TipFeed">14</sys:Int32>
|
||||
<sys:Int32 x:Key="OffSr">15</sys:Int32>
|
||||
<sys:Int32 x:Key="OffSl">16</sys:Int32>
|
||||
<sys:Int32 x:Key="SideAngle">17</sys:Int32>
|
||||
<sys:Int32 x:Key="Approx">18</sys:Int32>
|
||||
<sys:Int32 x:Key="StartPos">19</sys:Int32>
|
||||
<sys:Int32 x:Key="StartSlowLen">20</sys:Int32>
|
||||
<sys:Int32 x:Key="EndSlowLen">21</sys:Int32>
|
||||
<sys:Int32 x:Key="ThrouAddLen">22</sys:Int32>
|
||||
<sys:Int32 x:Key="StepPar">23</sys:Int32>
|
||||
<sys:Int32 x:Key="ReturnPos">24</sys:Int32>
|
||||
<sys:Int32 x:Key="TabLen">25</sys:Int32>
|
||||
<sys:Int32 x:Key="TabDist">26</sys:Int32>
|
||||
<sys:Int32 x:Key="TabHeight">27</sys:Int32>
|
||||
<sys:Int32 x:Key="TabAngle">28</sys:Int32>
|
||||
<sys:Int32 x:Key="LiTang">29</sys:Int32>
|
||||
<sys:Int32 x:Key="LiPerp">30</sys:Int32>
|
||||
<sys:Int32 x:Key="LiElev">31</sys:Int32>
|
||||
<sys:Int32 x:Key="LiCompLen">32</sys:Int32>
|
||||
<sys:Int32 x:Key="LoTang">33</sys:Int32>
|
||||
<sys:Int32 x:Key="LoPerp">34</sys:Int32>
|
||||
<sys:Int32 x:Key="LoElev">35</sys:Int32>
|
||||
<sys:Int32 x:Key="LoCompLen">36</sys:Int32>
|
||||
<sys:Int32 x:Key="StartAddLen">37</sys:Int32>
|
||||
<sys:Int32 x:Key="EndAddLen">38</sys:Int32>
|
||||
<sys:Int32 x:Key="StepExtArc">39</sys:Int32>
|
||||
<sys:Int32 x:Key="StepIntArc">40</sys:Int32>
|
||||
<sys:Int32 x:Key="SideStep">41</sys:Int32>
|
||||
<sys:Int32 x:Key="VertFeed">42</sys:Int32>
|
||||
<sys:Int32 x:Key="NamePar">43</sys:Int32>
|
||||
<sys:Int32 x:Key="Tool">44</sys:Int32>
|
||||
<sys:Int32 x:Key="DepthStr">45</sys:Int32>
|
||||
<sys:Int32 x:Key="UserNotes">46</sys:Int32>
|
||||
<sys:Int32 x:Key="OverLapStr">47</sys:Int32>
|
||||
<sys:Int32 x:Key="OffsetStr">48</sys:Int32>
|
||||
<sys:Int32 x:Key="SubType">49</sys:Int32>
|
||||
<sys:Int32 x:Key="SolChoiceType">50</sys:Int32>
|
||||
<sys:Int32 x:Key="AxRotRef">51</sys:Int32>
|
||||
<sys:Int32 x:Key="BlockedAxesRef">52</sys:Int32>
|
||||
<sys:Int32 x:Key="FaceUseType">53</sys:Int32>
|
||||
<sys:Int32 x:Key="InvertToolDir">54</sys:Int32>
|
||||
<sys:Int32 x:Key="ExpanderLeadIn">55</sys:Int32>
|
||||
<sys:Int32 x:Key="ExpanderLeadOut">56</sys:Int32>
|
||||
<sys:Int32 x:Key="ApproxGen">57</sys:Int32>
|
||||
<sys:Int32 x:Key="OscEnable">58</sys:Int32>
|
||||
<sys:Int32 x:Key="OscHeight">59</sys:Int32>
|
||||
<sys:Int32 x:Key="OscRampLen">60</sys:Int32>
|
||||
<sys:Int32 x:Key="OscFlatLen">61</sys:Int32>
|
||||
</UserControl.Resources>
|
||||
|
||||
<StackPanel Name="OperationParametersStackPanel">
|
||||
<StackPanel Name="OperationFirstParametersStackPanel">
|
||||
<UniformGrid Columns="2">
|
||||
<TextBlock Text="{Binding DepthMsg}" Style="{DynamicResource MPExpander_DepthTxBlMargin}"/>
|
||||
<EgtWPFLib5:EgtTextBox Text="{Binding DepthStr, UpdateSourceTrigger=PropertyChanged,
|
||||
Converter={StaticResource DepthUnitConverter}}"
|
||||
Style="{DynamicResource MPExpander_DepthTxBxMargin}"/>
|
||||
</UniformGrid>
|
||||
<EgtWPFLib5:CheckParamV
|
||||
ParamTxBl="{Binding InvertMsg}"
|
||||
ParamChBx="{Binding Path=Invert,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource CheckParamV_Margin}"/>
|
||||
<EgtWPFLib5:ComboParamV
|
||||
ParamTxBl="{Binding WorkSideMsg}"
|
||||
ParamCmBxList="{Binding Path=WorkSideList,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
ParamCmBxSelIndex="{Binding Path=SelectedWorkSide}"
|
||||
Style="{DynamicResource ComboParamV_Margin}"/>
|
||||
<EgtWPFLib5:ComboParamV
|
||||
ParamTxBl="{Binding HeadSideMsg}"
|
||||
ParamCmBxList="{Binding Path=HeadSideList,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
ParamCmBxSelIndex="{Binding Path=SelectedHeadSide}"
|
||||
Style="{DynamicResource ComboParamV_Margin}"/>
|
||||
<UniformGrid Columns="2">
|
||||
<TextBlock Text="{Binding UserNotesMsg}"
|
||||
Style="{DynamicResource MPExpander_UserNotesTxBlMargin}"/>
|
||||
<EgtWPFLib5:EgtTextBox Text="{Binding UserNotes, UpdateSourceTrigger=PropertyChanged}"
|
||||
Style="{DynamicResource MPExpander_UserNotesTxBxMargin}">
|
||||
<EgtWPFLib5:EgtTextBox.ToolTip>
|
||||
<TextBlock Text="{Binding UserNotesTooltip}"/>
|
||||
</EgtWPFLib5:EgtTextBox.ToolTip>
|
||||
</EgtWPFLib5:EgtTextBox>
|
||||
</UniformGrid>
|
||||
</StackPanel>
|
||||
<StackPanel Name="AutomaticCloseExpanderStackPanel">
|
||||
<Expander Header="{Binding GenericExpanderHeader}" Name="GenericExpander"
|
||||
Style="{StaticResource ExpanderStyle}" Margin="0,1,0,1">
|
||||
<StackPanel>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding StartPosMsg}"
|
||||
ParamTxBx="{Binding Path=StartPos,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:ComboParamV
|
||||
ParamTxBl="{Binding StepTypeMsg}"
|
||||
ParamCmBxList="{Binding Path=StepTypeList,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
ParamCmBxSelIndex="{Binding Path=SelectedStepType}"
|
||||
Style="{DynamicResource ComboParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding StepParMsg}"
|
||||
ParamTxBx="{Binding Path=StepPar,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding SideAngleMsg}"
|
||||
ParamTxBx="{Binding Path=SideAngle,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding OffsetSrMsg}"
|
||||
ParamTxBx="{Binding Path=OffSr,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding OffsetSlMsg}"
|
||||
ParamTxBx="{Binding Path=OffSl,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
</StackPanel>
|
||||
</Expander>
|
||||
|
||||
<Expander Header="{Binding AdvancedParamMsg}" Name="AdvancedParam"
|
||||
Style="{StaticResource ExpanderStyle}" Margin="0,1,0,1">
|
||||
<StackPanel>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding InitAngsMsg}"
|
||||
ParamTxBx="{Binding Path=InitAngs,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding BlockedAxisMsg}"
|
||||
ParamTxBx="{Binding Path=BlockedAxis,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:ComboParamV
|
||||
ParamTxBl="{Binding SolChoiceTypeMsg}"
|
||||
ParamCmBxList="{Binding Path=SolChoiceTypeList,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True,
|
||||
Mode=OneWay}"
|
||||
ParamCmBxSelIndex="{Binding Path=SelectedSolChoiceType}"
|
||||
Style="{DynamicResource ComboParamV_Margin}"/>
|
||||
</StackPanel>
|
||||
</Expander>
|
||||
|
||||
<Expander Style="{StaticResource ExpanderStyle}">
|
||||
<Expander.Header>
|
||||
<EgtWPFLib5:ComboParamV
|
||||
ParamTxBl="{Binding LeadInTypeMsg}"
|
||||
ParamCmBxList="{Binding Path=LeadInTypeList,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
ParamCmBxSelIndex="{Binding Path=SelectedLeadInType}"
|
||||
Style="{DynamicResource ComboParamV_Margin}"/>
|
||||
</Expander.Header>
|
||||
<StackPanel>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding StartAddLenMsg}"
|
||||
ParamTxBx="{Binding Path=StartAddLen,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
</StackPanel>
|
||||
</Expander>
|
||||
|
||||
<Expander Style="{StaticResource ExpanderStyle}">
|
||||
<Expander.Header>
|
||||
<EgtWPFLib5:ComboParamV
|
||||
ParamTxBl="{Binding LeadOutTypeMsg}"
|
||||
ParamCmBxList="{Binding Path=LeadOutTypeList,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
ParamCmBxSelIndex="{Binding Path=SelectedLeadOutType}"
|
||||
Style="{DynamicResource ComboParamV_Margin}"/>
|
||||
</Expander.Header>
|
||||
</Expander>
|
||||
|
||||
<EgtWPFLib5:ComboParamV
|
||||
ParamTxBl="{Binding ExtLinkTypeMsg}"
|
||||
ParamCmBxList="{Binding Path=ExtLinkTypeList,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True,
|
||||
Mode=OneWay}"
|
||||
ParamCmBxSelIndex="{Binding Path=SelectedExtLinkType}"
|
||||
Style="{DynamicResource ComboParamV_Margin}"/>
|
||||
|
||||
<Expander Style="{StaticResource ExpanderStyle}">
|
||||
<Expander.Header>
|
||||
<EgtWPFLib5:ComboParamV
|
||||
ParamTxBl="{Binding CurveUseMsg}"
|
||||
ParamCmBxList="{Binding Path=CurveUseList,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True,
|
||||
Mode=OneWay}"
|
||||
ParamCmBxSelIndex="{Binding Path=SelectedCurveUse}"
|
||||
Style="{DynamicResource ComboParamV_Margin}"/>
|
||||
</Expander.Header>
|
||||
<StackPanel Margin="2">
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding ApproxMsg}"
|
||||
ParamTxBx="{Binding Path=Approx,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
</StackPanel>
|
||||
</Expander>
|
||||
|
||||
<Expander Style="{StaticResource ExpanderStyle}">
|
||||
<Expander.Header>
|
||||
<TextBlock Text="{Binding ToolExpanderHeader}"/>
|
||||
</Expander.Header>
|
||||
<StackPanel>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding SpeedMsg}"
|
||||
ParamTxBx="{Binding Path=Speed,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding FeedMsg}"
|
||||
ParamTxBx="{Binding Path=Feed,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding TipFeedMsg}"
|
||||
ParamTxBx="{Binding Path=TipFeed,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding StartFeedMsg}"
|
||||
ParamTxBx="{Binding Path=StartFeed,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
<EgtWPFLib5:StringParamV
|
||||
ParamTxBl="{Binding EndFeedMsg}"
|
||||
ParamTxBx="{Binding Path=EndFeed,
|
||||
UpdateSourceTrigger=PropertyChanged,
|
||||
ValidatesOnDataErrors=True}"
|
||||
Style="{DynamicResource StringParamV_Margin}"/>
|
||||
</StackPanel>
|
||||
</Expander>
|
||||
<Interactivity:Interaction.Behaviors>
|
||||
<EgtCAM5:AutomaticCloseExpander/>
|
||||
</Interactivity:Interaction.Behaviors>
|
||||
</StackPanel>
|
||||
</StackPanel>
|
||||
|
||||
</UserControl>
|
||||
+83
@@ -0,0 +1,83 @@
|
||||
Imports EgtWPFLib5
|
||||
Imports EgtWPFLib5.EgtFloating
|
||||
|
||||
Public Class WoodSawingParameterExpanderV
|
||||
|
||||
Private EgtFloatingTray As EgtFloatingTray
|
||||
Private EgtFloatingPanel As EgtFloatingPanel
|
||||
|
||||
Private m_bFirst As Boolean = True
|
||||
|
||||
Private Sub OperationExpanderView_Loaded(sender As Object, e As System.Windows.RoutedEventArgs) Handles Me.Loaded
|
||||
If m_bFirst Then
|
||||
EgtFloatingTray = FindAncestor(Of EgtFloatingTray)(Me)
|
||||
EgtFloatingPanel = FindAncestor(Of EgtFloatingPanel)(Me)
|
||||
AddHandler EgtFloatingTray.SizeChanged, AddressOf EgtFloatingTray_SizeChanged
|
||||
PanelHeight = EgtFloatingPanel.ActualHeight
|
||||
Me.AutomaticCloseExpanderStackPanelHeight = AutomaticCloseExpanderStackPanel.ActualHeight
|
||||
m_bFirst = False
|
||||
End If
|
||||
CalculateOperationParametersStackPanelMaxHeight()
|
||||
End Sub
|
||||
|
||||
Dim m_bSizeChanging As Boolean = False
|
||||
|
||||
Private Sub EgtFloatingTray_SizeChanged(sender As Object, e As System.Windows.SizeChangedEventArgs)
|
||||
If m_bSizeChanging Then Return
|
||||
m_bSizeChanging = True
|
||||
CalculateOperationParametersStackPanelMaxHeight()
|
||||
m_bSizeChanging = False
|
||||
End Sub
|
||||
|
||||
Dim PanelHeight As Double = 0
|
||||
Dim AutomaticCloseExpanderStackPanelHeight As Double = 0
|
||||
|
||||
Private Sub CalculateOperationParametersStackPanelMaxHeight()
|
||||
Dim AutomaticCloseExpanderStackPanelHeight As Double = 0
|
||||
Dim OpenedExpanderList As New List(Of Boolean)
|
||||
For Index = 0 To AutomaticCloseExpanderStackPanel.Children.Count - 1
|
||||
If TypeOf AutomaticCloseExpanderStackPanel.Children(Index) Is Expander Then
|
||||
Dim IndexedExpander As Expander = DirectCast(AutomaticCloseExpanderStackPanel.Children(Index), Expander)
|
||||
If IndexedExpander.IsExpanded Then
|
||||
OpenedExpanderList.Add(True)
|
||||
IndexedExpander.IsExpanded = False
|
||||
Dim CurrExpanderContent As FrameworkElement = DirectCast(IndexedExpander.Content, FrameworkElement)
|
||||
CurrExpanderContent.Measure(New Size(Double.PositiveInfinity, Double.PositiveInfinity))
|
||||
AutomaticCloseExpanderStackPanelHeight -= CurrExpanderContent.DesiredSize.Height
|
||||
' Sottraggo anche i padding
|
||||
AutomaticCloseExpanderStackPanelHeight -= (IndexedExpander.Padding.Top + IndexedExpander.Padding.Bottom)
|
||||
Else
|
||||
OpenedExpanderList.Add(False)
|
||||
End If
|
||||
Else
|
||||
OpenedExpanderList.Add(False)
|
||||
End If
|
||||
Next
|
||||
Dim RemainingHeight As Double = EgtFloatingTray.ActualHeight - PanelHeight
|
||||
AutomaticCloseExpanderStackPanel.MaxHeight = Me.AutomaticCloseExpanderStackPanelHeight + RemainingHeight
|
||||
For Index = AutomaticCloseExpanderStackPanel.Children.Count - 1 To 0 Step -1
|
||||
If TypeOf AutomaticCloseExpanderStackPanel.Children(Index) Is Expander Then
|
||||
Dim IndexedExpander As Expander = DirectCast(AutomaticCloseExpanderStackPanel.Children(Index), Expander)
|
||||
If OpenedExpanderList(Index) Then
|
||||
IndexedExpander.IsExpanded = True
|
||||
End If
|
||||
End If
|
||||
Next
|
||||
End Sub
|
||||
|
||||
' Funzione che permette di trovare il primo contenitore di tipo T di un elemento grafico dependencyObject
|
||||
Public Function FindAncestor(Of T As Class)(dependencyObject As DependencyObject) As T
|
||||
Dim target As DependencyObject = dependencyObject
|
||||
Do
|
||||
target = LogicalTreeHelper.GetParent(target)
|
||||
Loop While target IsNot Nothing AndAlso Not (TypeOf target Is T)
|
||||
If IsNothing(target) Then
|
||||
target = dependencyObject
|
||||
Do
|
||||
target = VisualTreeHelper.GetParent(target)
|
||||
Loop While target IsNot Nothing AndAlso Not (TypeOf target Is T)
|
||||
End If
|
||||
Return TryCast(target, T)
|
||||
End Function
|
||||
|
||||
End Class
|
||||
@@ -1,6 +1,7 @@
|
||||
Imports System.Collections.ObjectModel
|
||||
Imports System.IO
|
||||
Imports EgtUILib
|
||||
Imports EgtWPFLib5
|
||||
|
||||
Public Class OperationExpanderVM
|
||||
Inherits ViewModelBase
|
||||
@@ -8,6 +9,16 @@ Public Class OperationExpanderVM
|
||||
' Modalità di aggiunta attiva/disattiva
|
||||
Private m_NewMachining As Boolean = False
|
||||
|
||||
Friend Shared m_MatType As MaterialType = Nothing
|
||||
Public Property MatType As MaterialType
|
||||
Get
|
||||
Return m_MatType
|
||||
End Get
|
||||
Set(value As MaterialType)
|
||||
m_MatType = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Private Sub StartNewMachining()
|
||||
m_NewMachining = True
|
||||
' Deseleziono le geometrie
|
||||
@@ -335,19 +346,20 @@ Public Class OperationExpanderVM
|
||||
Else
|
||||
If IsNothing(m_MachiningParameterExpander) Then
|
||||
m_MachiningParameterExpander = New MachiningParameterExpanderV
|
||||
m_MachiningParameterExpander.DataContext = New MachiningParameterExpanderVM(m_UpdateParamValues)
|
||||
m_MachiningParameterExpanderVM = New MachiningParameterExpanderVM()
|
||||
m_MachiningParameterExpander.DataContext = m_MachiningParameterExpanderVM
|
||||
End If
|
||||
m_UpdateParamValues()
|
||||
m_MachiningParameterExpanderVM.NotifyPropertyChanged("ParamExpanderPageV")
|
||||
Return m_MachiningParameterExpander
|
||||
End If
|
||||
End Get
|
||||
End Property
|
||||
|
||||
' Actions
|
||||
Private m_UpdateParamValues As Action
|
||||
Private m_OpenDispositionFunction As Action(Of Boolean)
|
||||
|
||||
Private m_MachiningParameterExpander As MachiningParameterExpanderV
|
||||
Private m_MachiningParameterExpanderVM As MachiningParameterExpanderVM
|
||||
Private m_DispositionParameterExpander As DispositionParameterExpanderV
|
||||
|
||||
#Region "Messages"
|
||||
@@ -1181,6 +1193,28 @@ Public Class OperationExpanderVM
|
||||
End If
|
||||
Id = EgtGetNextOperation(Id)
|
||||
End While
|
||||
LoadMaterialType()
|
||||
End Sub
|
||||
|
||||
Private Sub LoadMaterialType()
|
||||
Dim sMatType As String = "Wood"
|
||||
' IniFile.m_sMachineName = Map.refStatusBarVM.SelectedMachine.Name
|
||||
' IniFile.m_sCurrMachIniFilePath = Map.refStatusBarVM.SelectedMachine.MachineDirPath & "\" & Map.refStatusBarVM.SelectedMachine.Name & ".ini"
|
||||
Dim sMachineIniPath = IniFile.m_sCurrMachIniFilePath
|
||||
|
||||
EgtUILib.GetPrivateProfileString(S_GENERAL, EgtWPFLib5.EstConstMachIni.K_MATERIAL, sMatType, sMatType, sMachineIniPath)
|
||||
Select Case sMatType
|
||||
Case "Stone"
|
||||
m_MatType = MaterialType.STONE
|
||||
Case "Wood"
|
||||
m_MatType = MaterialType.WOOD
|
||||
Case "Beam"
|
||||
m_MatType = MaterialType.BEAM
|
||||
Case Else
|
||||
' Se il materiale spcificato nel file INI della macchina non corrisponde ai 2 sopracitati viene emesso un messaggio di errore
|
||||
m_MatType = Nothing
|
||||
MsgBox(EgtMsg(31409), MsgBoxStyle.Exclamation, EgtMsg(31551))
|
||||
End Select
|
||||
End Sub
|
||||
|
||||
Private Sub SelectOperation(nSelectedOperation As Integer)
|
||||
|
||||
@@ -1129,4 +1129,101 @@
|
||||
</Setter>
|
||||
</Style>
|
||||
|
||||
<!-- ______________________________________________________________________________________________________________________________________________ -->
|
||||
|
||||
<!-- GroupBox with margins -->
|
||||
|
||||
<Style x:Key="GroupBoxStyle_Margin" TargetType="{x:Type GroupBox}">
|
||||
<Setter Property="Margin" Value="3,0"/>
|
||||
</Style>
|
||||
|
||||
<!-- ______________________________________________________________________________________________________________________________________________ -->
|
||||
|
||||
<!-- GroupBox with margins and no header -->
|
||||
|
||||
<Style x:Key="GroupBoxStyle_NoHeader" TargetType="{x:Type GroupBox}">
|
||||
<Setter Property="Margin" Value="3,0"/>
|
||||
<Setter Property="BorderBrush" Value="#FFD5DFE5"/>
|
||||
<Setter Property="BorderThickness" Value="1"/>
|
||||
<Setter Property="Template">
|
||||
<Setter.Value>
|
||||
<ControlTemplate TargetType="{x:Type GroupBox}">
|
||||
<Grid SnapsToDevicePixels="True">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="6"/>
|
||||
<ColumnDefinition Width="Auto"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
<ColumnDefinition Width="6"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="*"/>
|
||||
<RowDefinition Height="6"/>
|
||||
</Grid.RowDefinitions>
|
||||
<Border BorderBrush="Transparent" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" Grid.ColumnSpan="4" Grid.Column="0" CornerRadius="4" Grid.Row="1" Grid.RowSpan="3"/>
|
||||
<Border BorderBrush="White" BorderThickness="{TemplateBinding BorderThickness}" Grid.ColumnSpan="4" CornerRadius="4" Grid.Row="1" Grid.RowSpan="3">
|
||||
<!--<Border.OpacityMask>
|
||||
<MultiBinding ConverterParameter="7" UpdateSourceTrigger="Default">
|
||||
<MultiBinding.Converter>
|
||||
<BorderGapMaskConverter/>
|
||||
</MultiBinding.Converter>
|
||||
<Binding ElementName="Header" Path="ActualWidth"/>
|
||||
<Binding Path="ActualWidth" RelativeSource="{RelativeSource Self}"/>
|
||||
<Binding Path="ActualHeight" RelativeSource="{RelativeSource Self}"/>
|
||||
</MultiBinding>
|
||||
</Border.OpacityMask>-->
|
||||
<Border BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" CornerRadius="3">
|
||||
<Border BorderBrush="White" BorderThickness="{TemplateBinding BorderThickness}" CornerRadius="2"/>
|
||||
</Border>
|
||||
</Border>
|
||||
<Border x:Name="Header" Grid.Column="1" Padding="3,1,3,0" Grid.Row="0" Grid.RowSpan="2">
|
||||
<ContentPresenter ContentTemplate="{TemplateBinding HeaderTemplate}" Content="{TemplateBinding Header}" ContentStringFormat="{TemplateBinding HeaderStringFormat}" ContentSource="Header" RecognizesAccessKey="True" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
|
||||
</Border>
|
||||
<ContentPresenter Grid.ColumnSpan="2" ContentTemplate="{TemplateBinding ContentTemplate}" Content="{TemplateBinding Content}" Grid.Column="1" ContentStringFormat="{TemplateBinding ContentStringFormat}" Margin="{TemplateBinding Padding}" Grid.Row="2" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
|
||||
</Grid>
|
||||
</ControlTemplate>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
</Style>
|
||||
|
||||
<!-- ______________________________________________________________________________________________________________________________________________ -->
|
||||
|
||||
<!-- Margin for TextBlocks and TextBoxes in MachiningParameterExpander not from EgtWPFLib5 -->
|
||||
|
||||
<Style x:Key="MPExpander_DepthTxBlMargin" TargetType="{x:Type TextBlock}">
|
||||
<Setter Property="Margin" Value="1,3,0,0"/>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="MPExpander_DepthTxBxMargin" TargetType="{x:Type EgtWPFLib5:EgtTextBox}">
|
||||
<Setter Property="Margin" Value="-1,0,0,0"/>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="MPExpander_UserNotesTxBlMargin" TargetType="{x:Type TextBlock}">
|
||||
<Setter Property="Margin" Value="1,0,0,0"/>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="MPExpander_UserNotesTxBxMargin" TargetType="{x:Type EgtWPFLib5:EgtTextBox}">
|
||||
<Setter Property="Margin" Value="-1,0,0,0"/>
|
||||
</Style>
|
||||
|
||||
<!-- ______________________________________________________________________________________________________________________________________________ -->
|
||||
|
||||
<!-- Margin for UserControls in MachiningParameterExpander from EgtWPFLib5 -->
|
||||
|
||||
<Style x:Key="StringParamV_Margin" TargetType="{x:Type EgtWPFLib5:StringParamV}">
|
||||
<Setter Property="Margin" Value="-3"/>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="ComboParamV_Margin" TargetType="{x:Type EgtWPFLib5:ComboParamV}">
|
||||
<Setter Property="Margin" Value="-3"/>
|
||||
</Style>
|
||||
|
||||
<Style x:Key="CheckParamV_Margin" TargetType="{x:Type EgtWPFLib5:CheckParamV}">
|
||||
<Setter Property="Margin" Value="-3"/>
|
||||
</Style>
|
||||
|
||||
<!-- ______________________________________________________________________________________________________________________________________________ -->
|
||||
|
||||
|
||||
</ResourceDictionary>
|
||||
|
||||
@@ -94,6 +94,22 @@ Public Module Utility
|
||||
Return List(Ind).Id
|
||||
End Function
|
||||
|
||||
Public Shared Function IndFromId(Id As Integer, List As ObservableCollection(Of Object)) As Integer
|
||||
For i = 0 To List.Count - 1
|
||||
If TypeOf (List(i)) Is IdNameStruct AndAlso DirectCast(List(i), IdNameStruct).Id = Id Then
|
||||
Return i
|
||||
End If
|
||||
Next
|
||||
Return 0
|
||||
End Function
|
||||
|
||||
Public Shared Function IdFromInd(Ind As Integer, List As ObservableCollection(Of Object)) As Integer
|
||||
If TypeOf (List(Ind)) Is IdNameStruct Then
|
||||
Return DirectCast(List(Ind), IdNameStruct).Id
|
||||
End If
|
||||
Return 0
|
||||
End Function
|
||||
|
||||
End Structure
|
||||
|
||||
#Region "Positioning test"
|
||||
|
||||
Reference in New Issue
Block a user