<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>