You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

152 lines
12 KiB

<Border x:Class="SparkClient.Views.UserControl.Viewport3D"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:SparkClient.Views.UserControl"
xmlns:hx="http://helix-toolkit.org/wpf/SharpDX"
xmlns:hc="https://handyorg.github.io/handycontrol"
mc:Ignorable="d" Loaded="Viewport3D_OnLoaded"
>
<!-- Tongg注: 后期如果时间充裕把这个控件单独封装在一个DLL里边,影响MVVM结构-->
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid Grid.Row="0" Height="50">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<Button Grid.Column="0" Background="Transparent" BorderBrush="Transparent" Height="50" Padding="2"
x:Name="BtnFrontView" Click="BtnAngle_OnClick">
<Image Source="pack://Application:,,,/Resource/Images/UserControl/03-8.png" Width="40" Height="40"></Image>
</Button>
<Button Grid.Column="1" Background="Transparent" BorderBrush="Transparent" Height="50" Padding="2"
x:Name="BtnFrontdView" Click="BtnAngle_OnClick">
<Image Source="pack://Application:,,,/Resource/Images/UserControl/03-8-1.png" Width="40" Height="40"></Image>
</Button>
<Button Grid.Column="2" Background="Transparent" BorderBrush="Transparent" Height="50" Padding="2"
x:Name="BtnTopView" Click="BtnAngle_OnClick">
<Image Source="pack://Application:,,,/Resource/Images/UserControl/03-9.png" Width="40" Height="40"></Image>
</Button>
<Button Grid.Column="3" Background="Transparent" BorderBrush="Transparent" Height="50" Padding="2"
x:Name="BtnBottomView" Click="BtnAngle_OnClick">
<Image Source="pack://Application:,,,/Resource/Images/UserControl/03-10.png" Width="40" Height="40"></Image>
</Button>
<Button Grid.Column="4" Background="Transparent" BorderBrush="Transparent" Height="50" Padding="2"
x:Name="BtnFcuntion3View" Click="BtnFunction_OnClick">
<Image Source="pack://Application:,,,/Resource/Images/UserControl/03-8-2.png" Width="40" Height="40"></Image>
</Button>
</Grid>
<Border Grid.Row="1" x:Name="MainBorder">
<Border.ContextMenu >
<ContextMenu>
<!-- 菜单 -->
<MenuItem Header="{StaticResource ViewportRightMenuFront}" x:Name="ViewportRightMenuFront" Click="MenuItem_OnClick"/>
<MenuItem Header="{StaticResource ViewportRightMenuSaveViewToPNG}" x:Name="ViewportRightMenuSaveViewToPNG" Click="MenuItem_OnClick"/>
<!-- 选择 -->
<Separator />
<MenuItem Header="{StaticResource ViewportRightMenuShowModelFace}" x:Name="ViewportRightMenuShowModelFace" IsCheckable="True" StaysOpenOnClick="True" Checked="MenuItem_OnCheckedChanged" Unchecked="MenuItem_OnCheckedChanged"/>
<MenuItem Header="{StaticResource ViewportRightMenuShowModelFaceByType}" x:Name="ViewportRightMenuShowModelFaceByType" IsCheckable="True" StaysOpenOnClick="True" Checked="MenuItem_OnCheckedChanged" Unchecked="MenuItem_OnCheckedChanged"/>
<MenuItem Header="{StaticResource ViewportRightMenuShowModelFrame}" x:Name="ViewportRightMenuShowModelFrame" IsCheckable="True" StaysOpenOnClick="True" Checked="MenuItem_OnCheckedChanged" Unchecked="MenuItem_OnCheckedChanged"/>
<MenuItem Header="{StaticResource ViewportRightMenuShowLighting}" x:Name="ViewportRightMenuShowLighting" IsCheckable="True" StaysOpenOnClick="True" Checked="MenuItem_OnCheckedChanged" Unchecked="MenuItem_OnCheckedChanged"/>
<MenuItem Header="{StaticResource ViewportRightMenuShowDefectFace}" x:Name="ViewportRightMenuShowDefectFace" IsCheckable="True" StaysOpenOnClick="True" Checked="MenuItem_OnCheckedChanged" Unchecked="MenuItem_OnCheckedChanged"/>
<MenuItem Header="{StaticResource ViewportRightMenuShowFront}" x:Name="ViewportRightMenuShowFront" IsCheckable="True" StaysOpenOnClick="True" Checked="MenuItem_OnCheckedChanged" Unchecked="MenuItem_OnCheckedChanged"/>
<Separator />
<MenuItem Header="{StaticResource ViewportRightMenuSelectFace}" x:Name="ViewportRightMenuSelectFace" IsCheckable="True" StaysOpenOnClick="True" Checked="MenuItem_OnCheckedChanged" Unchecked="MenuItem_OnCheckedChanged"/>
<MenuItem Header="{StaticResource ViewportRightMenuSelectFaceFrame}" x:Name="ViewportRightMenuSelectFaceFrame" IsCheckable="True" StaysOpenOnClick="True" Checked="MenuItem_OnCheckedChanged" Unchecked="MenuItem_OnCheckedChanged"/>
<MenuItem Header="{StaticResource ViewportRightMenuSelectFaceText}" x:Name="ViewportRightMenuSelectFaceText" IsCheckable="True" StaysOpenOnClick="True" Checked="MenuItem_OnCheckedChanged" Unchecked="MenuItem_OnCheckedChanged"/>
<!-- <MenuItem Header="{StaticResource ViewportRightMenuSelectFaceLengthText}" x:Name="ViewportRightMenuSelectFaceLengthText" IsCheckable="True" StaysOpenOnClick="True" Checked="MenuItem_OnCheckedChanged" Unchecked="MenuItem_OnCheckedChanged"/> -->
<!-- <MenuItem Header="{StaticResource ViewportRightMenuSelectFaceAngleText}" x:Name="ViewportRightMenuSelectFaceAngleText" IsCheckable="True" StaysOpenOnClick="True" Checked="MenuItem_OnCheckedChanged" Unchecked="MenuItem_OnCheckedChanged"/> -->
<MenuItem Header="{StaticResource ViewportRightMenuSelectFaceKind}" x:Name="ViewportRightMenuSelectFaceKind" IsCheckable="True" StaysOpenOnClick="True" Checked="MenuItem_OnCheckedChanged" Unchecked="MenuItem_OnCheckedChanged"/>
<MenuItem Header="{StaticResource ViewportRightMenuShowMeshLines}" x:Name="ViewportRightMenuShowMeshLines" IsCheckable="True" StaysOpenOnClick="True" Checked="MenuItem_OnCheckedChanged" Unchecked="MenuItem_OnCheckedChanged"/>
</ContextMenu>
</Border.ContextMenu>
<hx:Viewport3DX x:Name="Viewport3Dx" ShowCoordinateSystem="True"
PreviewMouseRightButtonUp="UIElement_OnPreviewMouseRightButtonUp"
PreviewMouseRightButtonDown="UIElement_OnPreviewMouseRightButtonDown"
PreviewMouseMove="Viewport3Dx_OnPreviewMouseMove"
MouseLeftButtonDown="Viewport3Dx_MouseLeftButtonDown"
MouseDoubleClick="Viewport3Dx_OnMouseLeftButtonDown">
<hx:Viewport3DX.EffectsManager><hx:EffectsManager ></hx:EffectsManager></hx:Viewport3DX.EffectsManager>
<hx:Viewport3DX.InputBindings>
<KeyBinding Key="B" Command="hx:ViewportCommands.BackView" />
<KeyBinding Key="F" Command="hx:ViewportCommands.FrontView" />
<KeyBinding Key="U" Command="hx:ViewportCommands.TopView" />
<KeyBinding Key="D" Command="hx:ViewportCommands.BottomView" />
<KeyBinding Key="L" Command="hx:ViewportCommands.LeftView" />
<KeyBinding Key="R" Command="hx:ViewportCommands.RightView" />
<KeyBinding Command="hx:ViewportCommands.ZoomExtents" Gesture="Control+E" />
<MouseBinding Command="hx:ViewportCommands.Rotate" Gesture="RightClick" />
<MouseBinding Command="hx:ViewportCommands.Zoom" Gesture="MiddleClick" />
<!--<MouseBinding Command="hx:ViewportCommands.Pan" Gesture="LeftClick" />-->
</hx:Viewport3DX.InputBindings>
<hx:AxisPlaneGridModel3D
AutoSpacing="true"
RenderShadowMap="False"
Offset="0" />
</hx:Viewport3DX>
</Border>
<Grid Grid.Row="2" Height="100">
<Grid Width="100">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="2*"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="1*"/>
<RowDefinition Height="1*"/>
<RowDefinition Height="1*"/>
</Grid.RowDefinitions>
<Button Grid.Column="1" Grid.Row="0" Padding="0" Background="Transparent" BorderBrush="Transparent"
x:Name="BtnTop" Click="BtnDirection_OnClick">
<Image Source="../../Resource/Images/UserControl/03-14-1.png" />
</Button>
<Button Grid.Column="0" Grid.Row="1" Padding="0" Background="Transparent" BorderBrush="Transparent"
x:Name="BtnLeft" Click="BtnDirection_OnClick">
<Image Source="../../Resource/Images/UserControl/03-14-1.png" RenderTransformOrigin="0.5,0.5">
<Image.RenderTransform >
<RotateTransform Angle="-90" ></RotateTransform>
</Image.RenderTransform>
</Image>
</Button>
<Button Grid.Column="2" Grid.Row="1" Padding="0" Background="Transparent" BorderBrush="Transparent"
x:Name="BtnRight" Click="BtnDirection_OnClick">
<Image Source="../../Resource/Images/UserControl/03-14-1.png" RenderTransformOrigin="0.5,0.5">
<Image.RenderTransform >
<RotateTransform Angle="90" ></RotateTransform>
</Image.RenderTransform>
</Image>
</Button>
<Button Grid.Column="1" Grid.Row="2" Padding="0" Background="Transparent" BorderBrush="Transparent"
x:Name="BtnBottom" Click="BtnDirection_OnClick">
<Image Source="../../Resource/Images/UserControl/03-14-1.png" RenderTransformOrigin="0.5,0.5">
<Image.RenderTransform >
<RotateTransform Angle="180" ></RotateTransform>
</Image.RenderTransform>
</Image>
</Button>
<!-- <TextBox Grid.Column="1" Grid.Row="2" Style="{StaticResource TextBoxExtend}" -->
<!-- Padding="0" TextAlignment="Center" x:Name="TbCustomizeRevolve" -->
<!-- MaxLength="3" -->
<!-- PreviewTextInput="TbCustomizeRevolve_OnPreviewTextInput" -->
<!-- PreviewKeyDown="TbCustomizeRevolve_OnPreviewKeyDown" -->
<!-- TextChanged="TbCustomizeRevolve_OnTextChanged" -->
<!-- -->
<!-- /> -->
<hc:NumericUpDown Grid.Column="1" Grid.Row="1" Padding="0" HorizontalContentAlignment="Center" Value="10" Maximum="360" MouseDoubleClick="TbCustomizeRevolve_OnMouseDoubleClick" x:Name="TbCustomizeRevolve"/>
</Grid>
</Grid>
</Grid>
</Border>