{"id":390,"date":"2023-05-21T21:22:27","date_gmt":"2023-05-21T13:22:27","guid":{"rendered":"https:\/\/yhsbj.cn\/?p=390"},"modified":"2023-05-21T21:22:27","modified_gmt":"2023-05-21T13:22:27","slug":"wpf%e4%bd%bf%e7%94%a8helixtoolkit%e5%8a%a0%e8%bd%bd%e6%98%be%e7%a4%ba3d%e6%a8%a1%e5%9e%8b","status":"publish","type":"post","link":"https:\/\/yhsbj.cn\/index.php\/2023\/05\/21\/390\/","title":{"rendered":"WPF\u4f7f\u7528HelixToolkit\u52a0\u8f7d\u663e\u793a3D\u6a21\u578b"},"content":{"rendered":"\n<p>1.NuGet\u5b89\u88c5HelixToolkit.Wpf<\/p>\n\n\n\n<p>2.\u754c\u9762\u6dfb\u52a03D\u89c6\u56fe\u63a7\u4ef6\uff0c\u5e76\u7ed1\u5b9a\u6a21\u578b\u53d8\u91cf<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;helix:HelixViewport3D x:Name=\"view1\">\n    &lt;ModelVisual3D>\n        &lt;helix:GridLinesVisual3D \/>\n        &lt;helix:DefaultLights \/>\n        &lt;ModelVisual3D Content=\"{Binding CurrentModel}\" \/>\n    &lt;\/ModelVisual3D>\n&lt;\/helix:HelixViewport3D><\/pre>\n\n\n\n<p>3.\u540e\u53f0\u4ee3\u7801\u52a0\u8f7d3d\u6a21\u578b\u6587\u4ef6\u3002<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">public class MainWindowViewModel : INotifyPropertyChanged\n{\n    public Model3D CurrentModel { get; set; }\n\n    private readonly IHelixViewport3D viewport;\n\n    public MainWindowViewModel(IHelixViewport3D viewport)\n    {\n        this.viewport = viewport;\n        var mi = new ObjReader();\n        CurrentModel = mi.Read(@\"D:\\xxxxxxxx\\\u6c7d\u8f66.obj\");\n\n        Task.Run(async () =>\n        {\n            await Task.Delay(10);\n            App.Current.Dispatcher.Invoke(() =>\n            {\n                this.viewport.ZoomExtents(0);\n            });\n        });\n    }\n\n    public event PropertyChangedEventHandler PropertyChanged;\n    protected void OnPropertyChanged([CallerMemberName] string name = null)\n    {\n        PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(name));\n    }\n}<\/pre>\n\n\n\n<p>\u6548\u679c\u56fe:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" src=\"https:\/\/yhsbj.cn\/wp-content\/uploads\/2023\/05\/\u5c4f\u5e55\u622a\u56fe-2023-05-21-212038-1024x564.png\" alt=\"\" class=\"wp-image-391\" width=\"608\" height=\"334\" srcset=\"https:\/\/yhsbj.cn\/wp-content\/uploads\/2023\/05\/\u5c4f\u5e55\u622a\u56fe-2023-05-21-212038-1024x564.png 1024w, https:\/\/yhsbj.cn\/wp-content\/uploads\/2023\/05\/\u5c4f\u5e55\u622a\u56fe-2023-05-21-212038-300x165.png 300w, https:\/\/yhsbj.cn\/wp-content\/uploads\/2023\/05\/\u5c4f\u5e55\u622a\u56fe-2023-05-21-212038-768x423.png 768w, https:\/\/yhsbj.cn\/wp-content\/uploads\/2023\/05\/\u5c4f\u5e55\u622a\u56fe-2023-05-21-212038.png 1177w\" sizes=\"(max-width: 608px) 100vw, 608px\" \/><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>1.NuGet\u5b89\u88c5HelixToolkit.Wpf 2.\u754c\u9762\u6dfb\u52a03D\u89c6\u56fe\u63a7\u4ef6\uff0c\u5e76\u7ed1\u5b9a\u6a21\u578b\u53d8\u91cf 3.\u540e\u53f0\u4ee3\u7801\u52a0\u8f7d [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[45,8,46],"tags":[47,10,48],"_links":{"self":[{"href":"https:\/\/yhsbj.cn\/index.php\/wp-json\/wp\/v2\/posts\/390"}],"collection":[{"href":"https:\/\/yhsbj.cn\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/yhsbj.cn\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/yhsbj.cn\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/yhsbj.cn\/index.php\/wp-json\/wp\/v2\/comments?post=390"}],"version-history":[{"count":1,"href":"https:\/\/yhsbj.cn\/index.php\/wp-json\/wp\/v2\/posts\/390\/revisions"}],"predecessor-version":[{"id":392,"href":"https:\/\/yhsbj.cn\/index.php\/wp-json\/wp\/v2\/posts\/390\/revisions\/392"}],"wp:attachment":[{"href":"https:\/\/yhsbj.cn\/index.php\/wp-json\/wp\/v2\/media?parent=390"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/yhsbj.cn\/index.php\/wp-json\/wp\/v2\/categories?post=390"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/yhsbj.cn\/index.php\/wp-json\/wp\/v2\/tags?post=390"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}