HelixViewport3Dで異なる種類の3Dオブジェクトを追加しました。私の質問は、3Dオブジェクト/モデルをファイルに保存し、典型的なCADアプリケーションのように遅く開く方法です。ビューポートの3Dオブジェクトをファイルに保存して遅く開くにはどうすればいいですか?
HelixViewport3Dは、コントロールUserControl.xamlでユーザー定義されています。
ユーザーコントロールは、次のようdefiendです:
<UserControl x:Class="SubWindows.UserControl1"
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:HelixToolkit="clr-namespace:HelixToolkit.Wpf;assembly=HelixToolkit.Wpf"
Height="350" Width="525" MouseRightButtonDown="OnMouseRightButtonDown" TabIndex="0" MouseMove="UserControl_MouseMove" Opacity="1">
<Grid>
<HelixToolkit:HelixViewport3D x:Name="ViewPort" ZoomExtentsWhenLoaded="True" ItemsSource="{Binding}">
<HelixToolkit:SunLight Brightness="0.4" Ambient="0.1" />
<ModelVisual3D Content="{Binding Model}"/>
<ModelVisual3D x:Name="SolidModels"/>
<ModelVisual3D x:Name="ScreenLineModels"/>
<ModelVisual3D x:Name="DimLinesModels"/>
<ModelVisual3D x:Name="TagsModels"/>
</HelixToolkit:HelixViewport3D>
<Canvas Name="TagsOverlay" IsHitTestVisible="False" ClipToBounds="False"/>
<Canvas Name="DimsOverlay" IsHitTestVisible="False" ClipToBounds="False" />
</Grid>
次のように保存したファイルのイベントは次のとおりです。
private void saveToolStripMenuItem_Click(object sender, EventArgs e)
{
SaveFileDialog saveFileDialog = new SaveFileDialog();
saveFileDialog.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.Personal);
saveFileDialog.Filter = "pvp Files (*.pvp)|*.pvp|Text Files (*.xaml)|*.xaml|All Files (*.*)|*.*";
if (saveFileDialog.ShowDialog(this) == DialogResult.OK)
{
string FileName = saveFileDialog.FileName;
string fileNameExtention = System.IO.Path.GetExtension(FileName);
fileNameExtention = fileNameExtention.ToLower();
if (fileNameExtention == ".xaml")
{
uc.ViewPort.Export(FileName);
}
}
}
"私たち" は、インスタンスUserControl1あるUserControl1のUCと定義=新しいUserControl1();ファイルを保存するためにsaveToolStripMenuItem_Clickを実行すると、以下のスナップショットとしてエラーが発生します。
しかし、ビューポートの部分はXAML形式で保存されました。
問題を解決するためのコメントがあれば幸いです。