<html xmlns="http://www.w3.org/1999/xhtml"><head><meta charset="utf-8"><meta name="generator" content="pdf2htmlEX"><meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"><link rel="stylesheet" href="https://csdnimg.cn/release/download_crawler_static/css/base.min.css"><link rel="stylesheet" href="https://csdnimg.cn/release/download_crawler_static/css/fancy.min.css"><link rel="stylesheet" href="https://csdnimg.cn/release/download_crawler_static/16617867/raw.css"><script src="https://csdnimg.cn/release/download_crawler_static/js/compatibility.min.js"></script><script src="https://csdnimg.cn/release/download_crawler_static/js/pdf2htmlEX.min.js"></script><script>try{pdf2htmlEX.defaultViewer = new pdf2htmlEX.Viewer({});}catch(e){}</script><title></title></head><body><div id="sidebar" style="display: none"><div id="outline"></div></div><div id="pf1" class="pf w0 h0" data-page-no="1"><div class="pc pc1 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="https://csdnimg.cn/release/download_crawler_static/16617867/bg1.jpg"><div class="c x1 y1 w2 h2"><div class="t m0 x2 h3 y2 ff1 fs0 fc0 sc0 ls0 ws0">使用<span class="_ _0"></span>使用<span class="_ _1"></span><span class="ff2">C</span>#<span class="_ _2"></span>将<span class="_ _0"></span>#将<span class="_ _1"></span><span class="ff2">IronP<span class="_ _2"></span>yth<span class="_ _2"></span>on<span class="_ _2"></span></span>嵌入<span class="_ _0"></span>嵌入<span class="_ _1"></span><span class="ff2">WP<span class="_ _2"></span>F</span>中<span class="_ _3"></span>中<span class="_ _1"></span><span class="ff2">-</span>源码<span class="_ _0"></span>源码</div><div class="t m0 x2 h4 y3 ff1 fs1 fc0 sc0 ls0 ws0">介绍<span class="_ _4"></span>介绍</div><div class="t m0 x2 h5 y4 ff1 fs2 fc0 sc0 ls0 ws0">在本文中<span class="_ _2"></span>,我将<span class="_ _2"></span>解释嵌入<span class="_ _2"></span>到<span class="ff3">C</span>#中<span class="_ _2"></span>的<span class="ff3">Iron<span class="_ _2"></span>Python<span class="_ _2"></span></span>作为脚本<span class="_ _2"></span>引擎的<span class="_ _2"></span>用法。<span class="_ _2"></span><span class="ff3"> </span>同时,<span class="_ _2"></span>我还将展<span class="_ _2"></span>示<span class="ff3">WPF<span class="_ _2"></span></span>的基础知<span class="_ _2"></span>识以及<span class="_ _2"></span>如何在其<span class="_ _2"></span>中集</div><div class="t m0 x2 h5 y5 ff1 fs2 fc0 sc0 ls0 ws0">成<span class="ff3">IronP<span class="_ _2"></span>ython</span>,<span class="_ _2"></span>以便我们<span class="_ _2"></span>可以使<span class="_ _2"></span>用<span class="ff3">Pytho<span class="_ _2"></span>n</span>代码来<span class="_ _2"></span>编辑应<span class="_ _2"></span>用程序。<span class="ff3"> P<span class="_ _2"></span>ython</span>也<span class="_ _2"></span>是一种非<span class="_ _2"></span>常容易<span class="_ _2"></span>上手的语<span class="_ _2"></span>言,尤<span class="_ _2"></span>其是如<span class="_ _2"></span>果您知道</div><div class="t m0 x2 h5 y6 ff3 fs2 fc0 sc0 ls0 ws0">C<span class="ff1">#,因<span class="_ _2"></span>为它们非<span class="_ _2"></span>常相似<span class="_ _2"></span>。</span></div><div class="t m0 x2 h4 y7 ff2 fs1 fc0 sc0 ls0 ws0">Pyth<span class="_ _2"></span>on<span class="ff1">简<span class="_ _2"></span>介<span class="_ _4"></span>简介</span></div><div class="t m0 x2 h5 y8 ff3 fs2 fc0 sc0 ls0 ws0">Python<span class="ff1">编<span class="_ _2"></span>程语言<span class="_ _2"></span>于</span>1991<span class="_ _2"></span><span class="ff1">年发布,<span class="_ _2"></span>由</span>Guid<span class="_ _2"></span>o van R<span class="_ _2"></span>ossum<span class="_ _2"></span><span class="ff1">创建。<span class="_ _5"></span><span class="ff3"> Python<span class="ff1">的<span class="_ _2"></span>语法非<span class="_ _2"></span>常清晰和<span class="_ _2"></span>简单,<span class="_ _2"></span>使程序员<span class="_ _2"></span>的工作<span class="_ _2"></span>量超过了</span></span></span></div><div class="t m0 x2 h5 y9 ff1 fs2 fc0 sc0 ls0 ws0">计算机的<span class="_ _2"></span>工作量<span class="_ _2"></span>。<span class="ff3"> </span>该语言<span class="_ _2"></span>本身是<span class="_ _2"></span>一种多范<span class="_ _2"></span>式语言<span class="_ _2"></span>,与<span class="ff3">Per<span class="_ _2"></span>l</span>,<span class="ff3">Ruby<span class="_ _2"></span></span>和其他语<span class="_ _2"></span>言相似<span class="_ _2"></span>。<span class="ff3"> Python</span>是非营<span class="_ _2"></span>利组织<span class="_ _2"></span><span class="ff3">Python<span class="_ _2"></span> Softwa<span class="_ _2"></span>re</span></div><div class="t m0 x2 h5 ya ff3 fs2 fc0 sc0 ls0 ws0">Founda<span class="_ _2"></span>tion<span class="ff1">管理<span class="_ _2"></span>的基于社<span class="_ _2"></span>区的开<span class="_ _2"></span>放式开发<span class="_ _2"></span>模型。</span></div><div class="t m0 x2 h4 yb ff2 fs1 fc0 sc0 ls0 ws0">C<span class="ff1">#和<span class="_ _4"></span>#和<span class="_ _1"></span><span class="ff2">Python<span class="_ _2"></span></span>的简<span class="_ _2"></span>要区别<span class="_ _6"></span>的简要<span class="_ _2"></span>区别</span></div><div class="t m0 x2 h5 yc ff3 fs2 fc0 sc0 ls0 ws0">Python<span class="ff1">的<span class="_ _2"></span>动态类<span class="_ _2"></span>型化模<span class="_ _2"></span>型允许它<span class="_ _2"></span>在运行<span class="_ _2"></span>时自动确<span class="_ _2"></span>定数据<span class="_ _2"></span>类型。</span> <span class="ff1">不需要提前<span class="_ _2"></span>声明变<span class="_ _2"></span>量的类<span class="_ _2"></span>型,这是<span class="_ _2"></span>一个非<span class="_ _2"></span>常简单的<span class="_ _2"></span>概念。</span></div><div class="t m0 x2 h5 yd ff1 fs2 fc0 sc0 ls0 ws0">在<span class="ff3">C</span>#和<span class="_ _2"></span><span class="ff3">Python<span class="_ _2"></span></span>中声明变<span class="_ _2"></span>量之间<span class="_ _2"></span>的区别:</div><div class="t m0 x2 h5 ye ff3 fs2 fc0 sc0 ls0 ws0">C<span class="ff1">#</span></div><div class="t m0 x2 h5 yf ff3 fs2 fc0 sc0 ls0 ws0">C<span class="ff1">#</span></div><div class="t m0 x2 h6 y10 ff3 fs3 fc0 sc0 ls0 ws0">int a = 1 </div><div class="t m0 x2 h6 y11 ff3 fs3 fc0 sc0 ls0 ws0">string b = <span class="_ _2"></span>" b"</div><div class="t m0 x2 h7 y12 ff3 fs2 fc0 sc0 ls0 ws0">Python</div><div class="t m0 x2 h7 y13 ff3 fs2 fc0 sc0 ls0 ws0">py</div><div class="t m0 x2 h6 y14 ff3 fs3 fc0 sc0 ls0 ws0">a = 1</div><div class="t m0 x2 h6 y15 ff3 fs3 fc0 sc0 ls0 ws0">b = ' b'</div><div class="t m0 x2 h5 y16 ff1 fs2 fc0 sc0 ls0 ws0">在<span class="ff3">Pytho<span class="_ _2"></span>n</span>中创建<span class="ff3 fs3">if</span>语句与在<span class="_ _2"></span><span class="ff3">C</span>#中几<span class="_ _2"></span>乎相同,<span class="_ _2"></span>只是<span class="ff3">Py<span class="_ _2"></span>thon</span>不<span class="_ _2"></span>使用花括<span class="_ _2"></span>号(<span class="ff3">{}<span class="_ _2"></span></span>)来表示<span class="_ _2"></span>开始和<span class="_ _2"></span>结束方法<span class="_ _2"></span>。<span class="_ _5"></span><span class="ff3"> <span class="ff1">而是在语句的<span class="_ _2"></span>开头添</span></span></div><div class="t m0 x2 h5 y17 ff1 fs2 fc0 sc0 ls0 ws0">加一个冒<span class="_ _2"></span>号(<span class="ff3">:)</span>,<span class="_ _2"></span>以开始<span class="_ _2"></span>执行代<span class="_ _2"></span>码。<span class="_ _2"></span><span class="ff3"> </span>出现问<span class="_ _2"></span>题是因<span class="_ _2"></span>为没有结<span class="_ _2"></span>尾指示<span class="_ _2"></span>,就像<span class="ff3">C<span class="_ _2"></span></span>#的花括<span class="_ _2"></span>号一样<span class="_ _2"></span>,因此<span class="_ _2"></span>您被困在<span class="_ _2"></span>放置一<span class="_ _2"></span>个语句而<span class="_ _2"></span>没</div><div class="t m0 x2 h5 y18 ff1 fs2 fc0 sc0 ls0 ws0">有任何其<span class="_ _2"></span>他指示<span class="_ _2"></span>的情况下<span class="_ _2"></span>。<span class="ff3"> </span>这可<span class="_ _2"></span>以通过在<span class="_ _2"></span>每个语<span class="_ _2"></span>句的末尾<span class="_ _2"></span>简单地<span class="_ _2"></span>使用分号<span class="_ _2"></span>(<span class="ff3">;</span>)来<span class="_ _2"></span>表示,<span class="_ _2"></span>以表明我<span class="_ _2"></span>们尚未<span class="_ _2"></span>使用该方<span class="_ _2"></span>法来解<span class="_ _2"></span>决。</div><div class="t m0 x2 h5 y19 ff1 fs2 fc0 sc0 ls0 ws0">在<span class="ff3">C</span>#和<span class="_ _2"></span><span class="ff3">Python<span class="_ _2"></span></span>中创建<span class="ff3 fs3">if</span>语句之间的区别<span class="_ _2"></span>:</div><div class="t m0 x2 h5 y1a ff3 fs2 fc0 sc0 ls0 ws0">C<span class="ff1">#</span></div><div class="t m0 x2 h5 y1b ff3 fs2 fc0 sc0 ls0 ws0">C<span class="ff1">#</span></div><div class="t m0 x2 h6 y1c ff3 fs3 fc0 sc0 ls0 ws0">if (a > b)</div><div class="t m0 x2 h6 y1d ff3 fs3 fc0 sc0 ls0 ws0">{</div><div class="t m0 x2 h6 y1e ff3 fs3 fc0 sc0 ls0 ws0"> a = <span class="_ _2"></span>1 ;</div><div class="t m0 x2 h6 y1f ff3 fs3 fc0 sc0 ls0 ws0"> b = <span class="_ _2"></span>2 ;</div><div class="t m0 x2 h6 y20 ff3 fs3 fc0 sc0 ls0 ws0">}</div><div class="t m0 x2 h6 y21 ff3 fs3 fc0 sc0 ls0 ws0">else if (a <span class="_ _5"></span>< 3 and b > 3 )</div><div class="t m0 x2 h6 y22 ff3 fs3 fc0 sc0 ls0 ws0">{</div><div class="t m0 x2 h6 y23 ff3 fs3 fc0 sc0 ls0 ws0"> a = <span class="_ _2"></span>2 ;</div><div class="t m0 x2 h6 y24 ff3 fs3 fc0 sc0 ls0 ws0">}</div><div class="t m0 x2 h6 y25 ff3 fs3 fc0 sc0 ls0 ws0">else</div><div class="t m0 x2 h6 y26 ff3 fs3 fc0 sc0 ls0 ws0">{</div><div class="t m0 x2 h6 y27 ff3 fs3 fc0 sc0 ls0 ws0"> b = <span class="_ _2"></span>3 ;</div><div class="t m0 x2 h6 y28 ff3 fs3 fc0 sc0 ls0 ws0">}</div><div class="t m0 x2 h7 y29 ff3 fs2 fc0 sc0 ls0 ws0">Python</div><div class="t m0 x2 h7 y2a ff3 fs2 fc0 sc0 ls0 ws0">py</div><div class="t m0 x2 h6 y2b ff3 fs3 fc0 sc0 ls0 ws0">if (a > b):</div><div class="t m0 x2 h6 y2c ff3 fs3 fc0 sc0 ls0 ws0"> a = <span class="_ _2"></span>1 ;</div><div class="t m0 x2 h6 y2d ff3 fs3 fc0 sc0 ls0 ws0"> b = <span class="_ _2"></span>2 ;</div><div class="t m0 x2 h6 y2e ff3 fs3 fc0 sc0 ls0 ws0">elif (<span class="_ _2"></span>a < 3 and<span class="_ _5"></span> b > <span class="_ _2"></span>3 ):</div><div class="t m0 x2 h6 y2f ff3 fs3 fc0 sc0 ls0 ws0"> a = <span class="_ _2"></span>2</div><div class="t m0 x2 h6 y30 ff3 fs3 fc0 sc0 ls0 ws0">else :</div><div class="t m0 x2 h6 y31 ff3 fs3 fc0 sc0 ls0 ws0"> b = <span class="_ _2"></span>3</div><div class="t m0 x2 h5 y32 ff1 fs2 fc0 sc0 ls0 ws0">用<span class="ff3">Pytho<span class="_ _2"></span>n</span>声明的<span class="_ _2"></span>函数与<span class="_ _2"></span>前面的<span class="ff3 fs3">if</span>语句几乎相<span class="_ _2"></span>同,除了<span class="_ _2"></span>它以<span class="ff3">“ <span class="fs3">def</span> <span class="_ _2"></span>”</span>开头。<span class="ff3"> Python<span class="_ _2"></span></span>的<span class="ff3 fs3">def</span>是可执<span class="_ _2"></span>行代码,<span class="_ _2"></span>因此,<span class="_ _2"></span>在编译代<span class="_ _2"></span>码时,<span class="_ _2"></span>该</div><div class="t m0 x2 h5 y33 ff1 fs2 fc0 sc0 ls0 ws0">功能在<span class="ff3">P<span class="_ _2"></span>ython</span>到<span class="_ _2"></span>达并运<span class="_ _2"></span>行<span class="ff3 fs3">def</span>之前不存<span class="_ _2"></span>在。<span class="ff3"> </span>函<span class="_ _2"></span>数类型(<span class="_ _2"></span>如变量<span class="_ _2"></span>)不需要<span class="_ _2"></span>声明为<span class="_ _2"></span>类型。</div><div class="t m0 x2 h5 y34 ff1 fs2 fc0 sc0 ls0 ws0">在<span class="ff3">C</span>#和<span class="_ _2"></span><span class="ff3">Python<span class="_ _2"></span></span>中创建函<span class="_ _2"></span>数之间<span class="_ _2"></span>的区别:</div></div></div><div class="pi" data-data='{"ctm":[1.611639,0.000000,0.000000,1.611639,0.000000,0.000000]}'></div></div></body></html>
<div id="pf2" class="pf w0 h0" data-page-no="2"><div class="pc pc2 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="https://csdnimg.cn/release/download_crawler_static/16617867/bg2.jpg"><div class="c x1 y1 w2 h2"><div class="t m0 x2 h5 y35 ff3 fs2 fc0 sc0 ls0 ws0">C<span class="ff1">#</span></div><div class="t m0 x2 h5 y36 ff3 fs2 fc0 sc0 ls0 ws0">C<span class="ff1">#</span></div><div class="t m0 x2 h6 y37 ff3 fs3 fc0 sc0 ls0 ws0">int MyFu<span class="_ _2"></span>nction()</div><div class="t m0 x2 h6 y38 ff3 fs3 fc0 sc0 ls0 ws0">{</div><div class="t m0 x2 h6 y39 ff3 fs3 fc0 sc0 ls0 ws0"> <span class="_ _2"></span>return 5 ;</div><div class="t m0 x2 h6 y3a ff3 fs3 fc0 sc0 ls0 ws0">}</div><div class="t m0 x2 h7 y3b ff3 fs2 fc0 sc0 ls0 ws0">Python</div><div class="t m0 x2 h7 y3c ff3 fs2 fc0 sc0 ls0 ws0">py</div><div class="t m0 x2 h6 y3d ff3 fs3 fc0 sc0 ls0 ws0">def M<span class="_ _2"></span>yFunction<span class="_ _2"></span>():</div><div class="t m0 x2 h6 y3e ff3 fs3 fc0 sc0 ls0 ws0"> <span class="_ _2"></span>return 5 ;</div><div class="t m0 x2 h5 y3f ff1 fs2 fc0 sc0 ls0 ws0">那是对<span class="ff3">P<span class="_ _2"></span>ython</span>的<span class="_ _2"></span>非常简<span class="_ _2"></span>短的介绍<span class="_ _2"></span>。<span class="ff3"> </span>另外,请注意<span class="_ _2"></span>,许多<span class="ff3">P<span class="_ _2"></span>ython</span>语<span class="_ _2"></span>法的键<span class="_ _2"></span>入方式可<span class="_ _2"></span>能与此<span class="_ _2"></span>处显示的<span class="_ _2"></span>有所不<span class="_ _2"></span>同,但可<span class="_ _2"></span>能含义<span class="_ _2"></span>相</div><div class="t m0 x2 h5 y40 ff1 fs2 fc0 sc0 ls0 ws0">同。</div><div class="t m0 x2 h4 y41 ff2 fs1 fc0 sc0 ls0 ws0">IronP<span class="_ _2"></span>yth<span class="_ _2"></span>on<span class="ff1">简<span class="_ _2"></span>介<span class="_ _4"></span>简介</span></div><div class="t m0 x2 h5 y42 ff3 fs2 fc0 sc0 ls0 ws0">IronPyt<span class="_ _2"></span>hon<span class="ff1">是在<span class="_ _2"></span></span>Python<span class="_ _2"></span><span class="ff1">语言的实<span class="_ _2"></span>现中创<span class="_ _2"></span>建的,该<span class="_ _2"></span>语言是<span class="_ _2"></span>为</span>.NET<span class="ff1">环<span class="_ _2"></span>境构建<span class="_ _2"></span>的。</span> Iron<span class="_ _2"></span>Python<span class="_ _2"></span><span class="ff1">的创建者<span class="_ _2"></span>是</span>Jim</div><div class="t m0 x2 h5 y43 ff3 fs2 fc0 sc0 ls0 ws0">Hugunn<span class="_ _2"></span>in<span class="ff1">,</span>Iron<span class="_ _2"></span>Python<span class="_ _2"></span><span class="ff1">的第一个<span class="_ _2"></span>版本于<span class="_ _2"></span></span>2006<span class="ff1">年<span class="_ _2"></span></span>9<span class="ff1">月</span>5<span class="ff1">日发<span class="_ _2"></span>布。</span></div><div class="t m0 x2 h4 y44 ff1 fs1 fc0 sc0 ls0 ws0">嵌入<span class="_ _4"></span>嵌入<span class="_ _1"></span><span class="ff2">IronPyth<span class="_ _2"></span>on</span></div><div class="t m0 x2 h5 y45 ff1 fs2 fc0 sc0 ls0 ws0">只需几个<span class="_ _2"></span>简单的<span class="_ _2"></span>步骤,即<span class="_ _2"></span>可将<span class="ff3">Iro<span class="_ _2"></span>nPytho<span class="_ _2"></span>n</span>嵌入到<span class="_ _2"></span><span class="ff3">WPF</span>(<span class="ff3">W<span class="_ _2"></span>indow<span class="_ _2"></span>s Prese<span class="_ _2"></span>ntation F<span class="_ _2"></span>ramew<span class="_ _2"></span>ork</span>)应<span class="_ _2"></span>用程序中<span class="_ _2"></span>:</div><div class="t m0 x3 h5 y46 ff3 fs2 fc0 sc0 ls0 ws0">1. <span class="_"> </span><span class="ff1">参考</span>IronPyt<span class="_ _2"></span>hon<span class="ff1">和</span>Ir<span class="_ _2"></span>onMath<span class="_ _2"></span><span class="ff1">。</span></div><div class="t m0 x3 h5 y47 ff3 fs2 fc0 sc0 ls0 ws0">2. <span class="_"> </span><span class="ff1">添加名称空<span class="_ _2"></span>间:</span></div><div class="t m0 x1 h5 y48 ff3 fs2 fc0 sc0 ls0 ws0">C<span class="ff1">#</span></div><div class="t m0 x1 h6 y49 ff3 fs3 fc0 sc0 ls0 ws0">using IronPy<span class="_ _2"></span>thon;</div><div class="t m0 x1 h6 y4a ff3 fs3 fc0 sc0 ls0 ws0">using IronM<span class="_ _2"></span>ath;</div><div class="t m0 x3 h5 y4b ff3 fs2 fc0 sc0 ls0 ws0">3. <span class="_"> </span><span class="ff1">声明</span><span class="fs3">PythonEn<span class="_ _2"></span>gine<span class="_ _2"></span></span> <span class="ff1">:</span></div><div class="t m0 x1 h5 y4c ff3 fs2 fc0 sc0 ls0 ws0">C<span class="ff1">#</span></div><div class="t m0 x1 h6 y4d ff3 fs3 fc0 sc0 ls0 ws0">engine =<span class="_ _2"></span> <span class="_ _5"></span>new <span class="_ _2"></span>PythonEn<span class="_ _2"></span>gine();</div><div class="t m0 x2 h5 y4e ff1 fs2 fc0 sc0 ls0 ws0">通过完成<span class="_ _2"></span>这三个<span class="_ _2"></span>步骤,您<span class="_ _2"></span>已经初<span class="_ _2"></span>始化了<span class="ff3 fs3">P<span class="_ _2"></span>ythonEng<span class="_ _2"></span>ine<span class="_ _2"></span></span>启动所<span class="_ _2"></span>需的一<span class="_ _2"></span>切。</div><div class="t m0 x2 h5 y4f ff1 fs2 fc0 sc0 ls0 ws0">在您的应<span class="_ _2"></span>用程序<span class="_ _2"></span>中使用<span class="ff3">I<span class="_ _2"></span>ronPyth<span class="_ _2"></span>on</span>只是着<span class="_ _2"></span>重于声<span class="_ _2"></span>明变量和<span class="_ _2"></span>加载<span class="ff3">P<span class="_ _2"></span>ython</span>脚<span class="_ _2"></span>本(<span class="ff3"> <span class="ff4">.py<span class="_ _2"></span></span></span>扩展<span class="_ _2"></span>名)文件<span class="_ _2"></span>。</div><div class="t m0 x2 h5 y50 ff3 fs2 fc0 sc0 ls0 ws0">C<span class="ff1">#</span></div><div class="t m0 x2 h6 y51 ff3 fs3 fc0 sc0 ls0 ws0">// Add <span class="_ _2"></span>Variable</div><div class="t m0 x2 h6 y52 ff3 fs3 fc0 sc0 ls0 ws0">PythonEn<span class="_ _2"></span>gine.Glob<span class="_ _2"></span>als.Add(ke<span class="_ _2"></span>y, value );</div><div class="t m0 x2 h6 y53 ff3 fs3 fc0 sc0 ls0 ws0">// Load<span class="_ _2"></span> Python F<span class="_ _2"></span>ile</div><div class="t m0 x2 h6 y54 ff3 fs3 fc0 sc0 ls0 ws0">PythonEn<span class="_ _2"></span>gine.Com<span class="_ _2"></span>pileFile( <span class="_ _2"></span>strin<span class="_ _2"></span>g path);</div><div class="t m0 x2 h5 y55 ff1 fs2 fc0 sc0 ls0 ws0">向<span class="ff3 fs3">Python<span class="_ _2"></span>Engine<span class="_ _2"></span></span>全<span class="_ _2"></span>局变量添<span class="_ _2"></span>加变量<span class="_ _2"></span>的<span class="ff3 fs3">Python<span class="_ _2"></span>Engine<span class="_ _2"></span><span class="fs2"> </span></span>:</div><div class="t m0 x2 h5 y56 ff3 fs2 fc0 sc0 ls0 ws0">C<span class="ff1">#</span></div><div class="t m0 x2 h6 y57 ff3 fs3 fc0 sc0 ls0 ws0">int var = 1 ; </div><div class="t m0 x2 h6 y58 ff3 fs3 fc0 sc0 ls0 ws0">PythonEn<span class="_ _2"></span>gine.Glob<span class="_ _2"></span>als.Add( <span class="_ _2"></span>"<span class="_ _2"></span> var" , var );</div><div class="t m0 x2 h6 y59 ff3 fs3 fc0 sc0 ls0 ws0">PythonEn<span class="_ _2"></span>gine.Glob<span class="_ _2"></span>als[ " var" ] =<span class="_ _2"></span> 3<span class="_ _5"></span> ; </div><div class="t m0 x2 h5 y5a ff1 fs2 fc0 sc0 ls0 ws0">编译<span class="ff3">Pyt<span class="_ _2"></span>hon</span>(<span class="ff3"> <span class="ff4">.py</span> </span>)<span class="_ _2"></span>文件的<span class="_ _2"></span>示例:</div><div class="t m0 x2 h7 y5b ff3 fs2 fc0 sc0 ls0 ws0">Python</div><div class="t m0 x2 h7 y5c ff3 fs2 fc0 sc0 ls0 ws0">py</div><div class="t m0 x2 h6 y5d ff3 fs3 fc0 sc0 ls0 ws0">//PythonF<span class="_ _2"></span>ile.py</div><div class="t m0 x2 h6 y5e ff3 fs3 fc0 sc0 ls0 ws0">//</div><div class="t m0 x2 h6 y5f ff3 fs3 fc0 sc0 ls0 ws0">name = <span class="_ _2"></span>'<span class="_ _2"></span> Chris'</div><div class="t m0 x2 h6 y60 ff3 fs3 fc0 sc0 ls0 ws0">age = 21</div><div class="t m0 x2 h5 y61 ff3 fs2 fc0 sc0 ls0 ws0">C<span class="ff1">#</span></div><div class="t m0 x2 h5 y62 ff3 fs2 fc0 sc0 ls0 ws0">C<span class="ff1">#</span></div><div class="t m0 x2 h6 y63 ff3 fs3 fc0 sc0 ls0 ws0">// Exam<span class="_ _2"></span>ple.cs</div></div></div><div class="pi" data-data='{"ctm":[1.611639,0.000000,0.000000,1.611639,0.000000,0.000000]}'></div></div>
<div id="pf3" class="pf w0 h0" data-page-no="3"><div class="pc pc3 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="https://csdnimg.cn/release/download_crawler_static/16617867/bg3.jpg"><div class="c x1 y1 w2 h2"><div class="t m0 x2 h6 y64 ff3 fs3 fc0 sc0 ls0 ws0">PythonEn<span class="_ _2"></span>gine.Com<span class="_ _2"></span>pileFile( <span class="_ _2"></span>" Pyth<span class="_ _2"></span>onFile.py"<span class="_ _2"></span> );</div><div class="t m0 x2 h6 y65 ff3 fs3 fc0 sc0 ls0 ws0">// Retr<span class="_ _2"></span>ieve Varia<span class="_ _2"></span>bles</div><div class="t m0 x2 h6 y66 ff3 fs3 fc0 sc0 ls0 ws0">string name = P<span class="_ _2"></span>ythonEng<span class="_ _2"></span>ine[ "<span class="_ _2"></span> name" <span class="_ _2"></span>].ToString<span class="_ _2"></span>();</div><div class="t m0 x2 h6 y67 ff3 fs3 fc0 sc0 ls0 ws0">int age =<span class="_ _2"></span> ( <span class="_ _2"></span>int )Pyt<span class="_ _2"></span>honEngin<span class="_ _2"></span>e[ " age" ] ;</div><div class="t m0 x2 h5 y68 ff1 fs2 fc0 sc0 ls0 ws0">如您所见<span class="_ _2"></span>,<span class="ff3"> <span class="fs3">Pytho<span class="_ _2"></span>nEngine.G<span class="_ _2"></span>lobals</span></span>在<span class="_ _2"></span><span class="ff3">C</span>#和<span class="ff3">P<span class="_ _2"></span>ython</span>通<span class="_ _2"></span>讯中起<span class="_ _2"></span>着巨大的<span class="_ _2"></span>作用。</div><div class="t m0 x2 h5 y69 ff1 fs2 fc0 sc0 ls0 ws0">现在说,<span class="_ _2"></span>如果您<span class="_ _2"></span>想执行一<span class="_ _2"></span>个简单<span class="_ _2"></span>的命令,<span class="_ _2"></span>例如,<span class="_ _2"></span>在<span class="ff3">C</span>#中<span class="_ _2"></span>使用<span class="ff3">Py<span class="_ _2"></span>thon</span>的<span class="ff3 fs3">print<span class="_ _2"></span></span>命令。<span class="ff3"> </span>有<span class="_ _2"></span>一个简<span class="_ _2"></span>单的函数<span class="_ _2"></span>可以做<span class="_ _2"></span>到这一点<span class="_ _2"></span>:</div><div class="t m0 x2 h7 y6a ff3 fs2 fc0 sc0 ls0 ws0">py</div><div class="t m0 x2 h6 y6b ff3 fs3 fc0 sc0 ls0 ws0">//Execute<span class="_ _2"></span> code</div><div class="t m0 x2 h6 y6c ff3 fs3 fc0 sc0 ls0 ws0">PythonEn<span class="_ _2"></span>gine.Exec<span class="_ _2"></span>ute( print<span class="_ _2"></span> nam<span class="_ _2"></span>e)</div><div class="t m0 x2 h6 y6d ff3 fs3 fc0 sc0 ls0 ws0">//Ouputs <span class="_ _2"></span>to the stre<span class="_ _2"></span>am</div><div class="t m0 x2 h6 y6e ff3 fs3 fc0 sc0 ls0 ws0">PythonEn<span class="_ _2"></span>gine.SetS<span class="_ _2"></span>tandardOu<span class="_ _2"></span>tput(Stre<span class="_ _2"></span>am s)</div><div class="t m0 x2 h5 y6f ff1 fs2 fc0 sc0 ls0 ws0">在<span class="ff3">C</span>#中<span class="_ _2"></span>使用的一<span class="_ _2"></span>个示例<span class="_ _2"></span>:</div><div class="t m0 x2 h5 y70 ff3 fs2 fc0 sc0 ls0 ws0">C<span class="ff1">#</span></div><div class="t m0 x2 h6 y71 ff3 fs3 fc0 sc0 ls0 ws0">//</div><div class="t m0 x2 h6 y72 ff3 fs3 fc0 sc0 ls0 ws0">// Exec<span class="_ _2"></span>utePython<span class="_ _2"></span>.cs</div><div class="t m0 x2 h6 y73 ff3 fs3 fc0 sc0 ls0 ws0">//</div><div class="t m0 x2 h6 y74 ff3 fs3 fc0 sc0 ls0 ws0">string name = " Bob<span class="_ _2"></span>" ;</div><div class="t m0 x2 h6 y75 ff3 fs3 fc0 sc0 ls0 ws0">MemoryS<span class="_ _2"></span>tream str<span class="_ _2"></span>eam = new<span class="_ _2"></span> Memor<span class="_ _2"></span>yStream()<span class="_ _2"></span>;</div><div class="t m0 x2 h6 y76 ff3 fs3 fc0 sc0 ls0 ws0">PythonEn<span class="_ _2"></span>gine.Glob<span class="_ _2"></span>als.Add( <span class="_ _2"></span>"<span class="_ _2"></span> name" ,<span class="_ _2"></span> name);</div><div class="t m0 x2 h6 y77 ff3 fs3 fc0 sc0 ls0 ws0">PythonEn<span class="_ _2"></span>gine.SetS<span class="_ _2"></span>tandardOu<span class="_ _2"></span>tput(strea<span class="_ _2"></span>m); </div><div class="t m0 x2 h6 y78 ff3 fs3 fc0 sc0 ls0 ws0">PythonEn<span class="_ _2"></span>gine.Exec<span class="_ _2"></span>ute( " print nam<span class="_ _2"></span>e" )</div><div class="t m0 x2 h6 y79 ff3 fs3 fc0 sc0 ls0 ws0">// Retr<span class="_ _2"></span>ieve data <span class="_ _2"></span>from strea<span class="_ _2"></span>m</div><div class="t m0 x2 h6 y7a ff3 fs3 fc0 sc0 ls0 ws0">byte [] da<span class="_ _2"></span>ta = <span class="_ _2"></span>new byte<span class="_ _2"></span> [stream.<span class="_ _2"></span>Length];</div><div class="t m0 x2 h6 y7b ff3 fs3 fc0 sc0 ls0 ws0">stream.Se<span class="_ _2"></span>ek( 0 , Seek<span class="_ _2"></span>Origin.Be<span class="_ _2"></span>gin);</div><div class="t m0 x2 h6 y7c ff3 fs3 fc0 sc0 ls0 ws0">stream.R<span class="_ _2"></span>ead(data, <span class="_ _2"></span>0 , data.L<span class="_ _2"></span>ength);</div><div class="t m0 x2 h6 y7d ff3 fs3 fc0 sc0 ls0 ws0">string strdata =<span class="_ _2"></span> Encoding<span class="_ _2"></span>.ASCII.Get<span class="_ _2"></span>String(dat<span class="_ _2"></span>a);</div><div class="t m0 x2 h6 y7e ff3 fs3 fc0 sc0 ls0 ws0">// Outp<span class="_ _2"></span>ut</div><div class="t m0 x2 h6 y7f ff3 fs3 fc0 sc0 ls0 ws0">// strda<span class="_ _2"></span>ta: "Bob"</div><div class="t m0 x2 h5 y80 ff1 fs2 fc0 sc0 ls0 ws0">您还可以<span class="_ _2"></span>连接输<span class="_ _2"></span>入和错误<span class="_ _2"></span>流:</div><div class="t m0 x2 h5 y81 ff3 fs2 fc0 sc0 ls0 ws0">C<span class="ff1">#</span></div><div class="t m0 x2 h6 y82 ff3 fs3 fc0 sc0 ls0 ws0">PythonEn<span class="_ _2"></span>gine.SetS<span class="_ _2"></span>tandardEr<span class="_ _2"></span>ror(Stream<span class="_ _2"></span> s);</div><div class="t m0 x2 h6 y83 ff3 fs3 fc0 sc0 ls0 ws0">PythonEn<span class="_ _2"></span>gine.SetS<span class="_ _2"></span>tandardInp<span class="_ _2"></span>ut(Stream<span class="_ _2"></span> s);</div><div class="t m0 x2 h4 y84 ff1 fs1 fc0 sc0 ls0 ws0">使用<span class="_ _4"></span>使用<span class="_ _1"></span><span class="ff2">WPF</span>创建<span class="_ _2"></span>应用<span class="_ _2"></span>程序<span class="_ _7"></span>创建应<span class="_ _2"></span>用程<span class="_ _2"></span>序</div><div class="t m0 x2 h5 y85 ff1 fs2 fc0 sc0 ls0 ws0">我在这里<span class="_ _2"></span>创建的<span class="_ _2"></span>应用程序<span class="_ _2"></span>是使用<span class="_ _2"></span><span class="ff3">Window<span class="_ _2"></span>s Prese<span class="_ _2"></span>ntation<span class="_ _2"></span> Framew<span class="_ _2"></span>ork</span>创建<span class="_ _2"></span>的,该<span class="_ _2"></span>程序的目<span class="_ _2"></span>标是用<span class="_ _2"></span>来试验<span class="ff3">I<span class="_ _2"></span>ronPyth<span class="_ _2"></span>on</span>并查<span class="_ _2"></span>看</div><div class="t m0 x2 h5 y86 ff1 fs2 fc0 sc0 ls0 ws0">其好处。<span class="_ _2"></span><span class="ff3"> </span>我将介绍<span class="_ _2"></span>用于创<span class="_ _2"></span>建应用<span class="_ _2"></span>程序基本<span class="_ _2"></span><span class="ff3">UI</span>的<span class="ff3">XA<span class="_ _2"></span>ML</span>和<span class="ff3">C</span>#<span class="_ _2"></span>代码。</div><div class="t m0 x2 h5 y87 ff1 fs2 fc0 sc0 ls0 ws0">为了获得<span class="_ _2"></span>应用程<span class="_ _2"></span>序的<span class="ff3">“ A<span class="_ _2"></span>ero”</span>外观<span class="_ _2"></span>,我必<span class="_ _2"></span>须遵循以<span class="_ _2"></span>下步骤<span class="_ _2"></span>:</div><div class="t m0 x3 h5 y88 ff3 fs2 fc0 sc0 ls0 ws0">1. <span class="_"> </span><span class="ff1">添加</span><span class="fs3">Presenta<span class="_ _2"></span>tionFrame<span class="_ _2"></span>work.Aer<span class="_ _2"></span>o</span><span class="ff1">参考。</span></div><div class="t m0 x3 h5 y89 ff3 fs2 fc0 sc0 ls0 ws0">2. <span class="_"> </span><span class="ff1">之后,右键<span class="_ _2"></span>单击参考<span class="_ _2"></span></span>Presen<span class="_ _2"></span>tationFr<span class="_ _2"></span>amewo<span class="_ _2"></span>rk.Aero<span class="_ _2"></span><span class="ff1">并选择:<span class="_ _2"></span></span>Copy <span class="_ _2"></span>Local to<span class="_ _2"></span> true<span class="ff1">。</span></div><div class="t m0 x3 h5 y8a ff3 fs2 fc0 sc0 ls0 ws0">3. <span class="_"> </span><span class="ff1">打开<span class="ff4">App.xa<span class="_ _2"></span>ml<span class="_ _2"></span></span>并添加<span class="_ _2"></span></span>/<span class="ff1">编辑:</span></div><div class="t m0 x1 h5 y8b ff3 fs2 fc0 sc0 ls0 ws0">XML<span class="ff1">格式</span></div><div class="t m0 x1 h6 y8c ff3 fs3 fc0 sc0 ls0 ws0">< Resour<span class="_ _2"></span>ceDiction<span class="_ _2"></span>ary </div><div class="t m0 x1 h6 y8d ff3 fs3 fc0 sc0 ls0 ws0"> Source =" /pr<span class="_ _2"></span>esentatio<span class="_ _2"></span>nframewo<span class="_ _2"></span>rk.aero;co<span class="_ _2"></span>mponen<span class="_ _2"></span>t/themes/<span class="_ _2"></span>aero.norm<span class="_ _2"></span>alcolor.x<span class="_ _2"></span>aml"<span class="_ _2"></span> / ></div><div class="t m0 x3 h5 y8e ff3 fs2 fc0 sc0 ls0 ws0">4. <span class="_"> </span><span class="ff1">单击</span>“<span class="ff1">构建应<span class="_ _2"></span>用程序<span class="_ _2"></span></span>”<span class="ff1">。</span></div><div class="t m0 x2 h5 y8f ff1 fs2 fc0 sc0 ls0 ws0">现在,<span class="ff3">A<span class="_ _2"></span>ero</span>外观<span class="_ _2"></span>已出现在<span class="_ _2"></span>用户界<span class="_ _2"></span>面上。</div><div class="t m0 x2 h5 y90 ff1 fs2 fc0 sc0 ls0 ws0">该<span class="ff3 fs3">TreeVi<span class="_ _2"></span>ew</span>是在这个应用<span class="_ _2"></span>中使用<span class="_ _2"></span>由父的<span class="ff3 fs3">S<span class="_ _2"></span>cene<span class="_ _2"></span></span>节点<span class="_ _2"></span>和子节点<span class="_ _2"></span>的<span class="ff3 fs3">Scen<span class="_ _2"></span>e<span class="_ _2"></span></span>节点。<span class="ff3"> <span class="fs3">Sc<span class="_ _2"></span>ene<span class="_ _2"></span></span></span>节点由<span class="_ _2"></span>三个子<span class="_ _2"></span>节点组成<span class="_ _2"></span>,分别<span class="_ _2"></span>是<span class="ff3 fs3">Script<span class="_ _2"></span><span class="fs2"> </span></span>,</div><div class="t m0 x2 h5 y91 ff3 fs3 fc0 sc0 ls0 ws0">Actors<span class="ff1 fs2">和</span>Obje<span class="_ _2"></span>cts<span class="fs2"> <span class="ff1">。</span> </span>Script<span class="_ _2"></span><span class="ff1 fs2">节点<span class="_ _2"></span>有一个<span class="_ _2"></span>组合框作<span class="_ _2"></span>为子级<span class="_ _2"></span>,因此用<span class="_ _2"></span>户可以<span class="_ _2"></span>选择当前<span class="_ _2"></span>脚本以<span class="_ _2"></span>呈现到<span class="_ _2"></span>场景。<span class="ff3"> </span>对<span class="_ _2"></span>于任何孩<span class="_ _2"></span>子,</span></div><div class="t m0 x2 h5 y92 ff3 fs3 fc0 sc0 ls0 ws0">Actors<span class="ff1 fs2">和</span>Obje<span class="_ _2"></span>cts<span class="ff1 fs2">均保留<span class="_ _2"></span>为空白。<span class="_ _2"></span><span class="ff3"> </span>节点显<span class="_ _2"></span>示名称由<span class="_ _2"></span></span>Header<span class="ff1 fs2">属性设<span class="_ _2"></span>置,<span class="ff3"> </span></span>IsEx<span class="_ _2"></span>panded="<span class="_ _2"></span>True"<span class="_ _2"></span><span class="ff1 fs2">属性扩<span class="_ _2"></span>展。</span></div><div class="t m0 x2 h5 y93 ff3 fs2 fc0 sc0 ls0 ws0">XML<span class="ff1">格式</span></div><div class="t m0 x2 h6 y94 ff3 fs3 fc0 sc0 ls0 ws0">< TreeVie<span class="_ _2"></span>w Name <span class="_ _5"></span>=" treeSc<span class="_ _2"></span>ene" Backg<span class="_ _2"></span>round<span class="_ _2"></span> =" LightGr<span class="_ _2"></span>ay" Width =" 135" ></div></div></div><div class="pi" data-data='{"ctm":[1.611639,0.000000,0.000000,1.611639,0.000000,0.000000]}'></div></div>
<div id="pf4" class="pf w0 h0" data-page-no="4"><div class="pc pc4 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="https://csdnimg.cn/release/download_crawler_static/16617867/bg4.jpg"><div class="c x1 y1 w2 h2"><div class="t m0 x2 h6 y95 ff3 fs3 fc0 sc0 ls0 ws0"> < TreeViewIte<span class="_ _2"></span>m Header =" Scen<span class="_ _2"></span>e"<span class="_ _2"></span> IsExpande<span class="_ _2"></span>d <span class="_ _5"></span>=" True<span class="_ _2"></span>"<span class="_ _5"></span> ></div><div class="t m0 x2 h6 y96 ff3 fs3 fc0 sc0 ls0 ws0"> <span class="_ _2"></span>< TreeV<span class="_ _2"></span>iewItem<span class="_ _2"></span> Header =" Script"<span class="_ _2"></span> ></div><div class="t m0 x2 h6 y97 ff3 fs3 fc0 sc0 ls0 ws0"> <<span class="_ _2"></span> ComboBox Name =" comboScr<span class="_ _2"></span>ipt"<span class="_ _2"></span> / <span class="_ _5"></span>></div><div class="t m0 x2 h6 y98 ff3 fs3 fc0 sc0 ls0 ws0"> <span class="_ _2"></span>< /Tree<span class="_ _2"></span>ViewItem ></div><div class="t m0 x2 h6 y99 ff3 fs3 fc0 sc0 ls0 ws0"> <span class="_ _2"></span>< TreeV<span class="_ _2"></span>iewItem<span class="_ _2"></span> Header =" Actors" IsExpan<span class="_ _2"></span>ded =" True" <span class="_ _5"></span>/ ></div><div class="t m0 x2 h6 y9a ff3 fs3 fc0 sc0 ls0 ws0"> <<span class="_ _2"></span> TreeView<span class="_ _2"></span>Item Heade<span class="_ _2"></span>r =" Objects" IsExpan<span class="_ _2"></span>ded =" True" <span class="_ _5"></span>/ ></div><div class="t m0 x2 h6 y9b ff3 fs3 fc0 sc0 ls0 ws0"> <span class="_ _2"></span>< /Tre<span class="_ _2"></span>eViewItem ></div><div class="t m0 x2 h6 y9c ff3 fs3 fc0 sc0 ls0 ws0">< /TreeVi<span class="_ _2"></span>ew ></div><div class="t m0 x2 h5 y9d ff1 fs2 fc0 sc0 ls0 ws0">创建<span class="ff3">Act<span class="_ _2"></span>or</span>,<span class="ff3">Scr<span class="_ _2"></span>ipt</span>或<span class="ff3">Ob<span class="_ _2"></span>ject</span>后,<span class="_ _2"></span><span class="ff3"> <span class="fs3">TreeV<span class="_ _2"></span>iew</span></span>创建和<span class="ff3">/</span>或更<span class="_ _2"></span>新新内容<span class="_ _2"></span>。<span class="ff3"> </span>使用新的<span class="ff3">Ac<span class="_ _2"></span>tor</span>更新<span class="ff3 fs3">TreeView</span>包括以<span class="_ _2"></span>下步骤<span class="_ _2"></span>:</div><div class="t m0 x3 h5 y9e ff3 fs2 fc0 sc0 ls0 ws0">1. <span class="_"> </span>Actor<span class="ff1">已创建<span class="_ _2"></span>。</span></div><div class="t m0 x3 h5 y9f ff3 fs2 fc0 sc0 ls0 ws0">2. <span class="_"> </span><span class="ff1">将</span><span class="fs3">TreeViewIte<span class="_ _2"></span>m</span><span class="ff1">添加<span class="_ _2"></span>到</span>Actor<span class="_ _2"></span>s<span class="ff1">节点。</span></div><div class="t m0 x3 h5 ya0 ff3 fs2 fc0 sc0 ls0 ws0">3. <span class="_"> </span><span class="ff1">在刚创建的<span class="_ _2"></span></span>Actor<span class="ff1">节<span class="_ _2"></span>点下创建<span class="_ _2"></span>另一个</span><span class="fs3">TreeView<span class="_ _2"></span>Item</span> <span class="ff1">。</span></div><div class="t m0 x3 h5 ya1 ff3 fs2 fc0 sc0 ls0 ws0">4. <span class="_"> </span><span class="ff1">将</span><span class="fs3">ComboBox</span><span class="ff1">添加到最<span class="_ _2"></span>新创建<span class="_ _2"></span>的</span><span class="fs3">TreeVi<span class="_ _2"></span>ewItem</span> <span class="_ _2"></span><span class="ff1">。</span></div><div class="t m0 x2 h5 ya2 ff1 fs2 fc0 sc0 ls0 ws0">这是实现<span class="_ _2"></span>此过程<span class="_ _2"></span>的<span class="ff3">C</span>#代<span class="_ _2"></span>码:</div><div class="t m0 x2 h5 ya3 ff3 fs2 fc0 sc0 ls0 ws0">C<span class="ff1">#</span></div><div class="t m0 x2 h6 ya4 ff3 fs3 fc0 sc0 ls0 ws0">public void<span class="_ _2"></span> A<span class="_ _2"></span>ddTreeIte<span class="_ _2"></span>m()</div><div class="t m0 x2 h6 ya5 ff3 fs3 fc0 sc0 ls0 ws0">{ </div><div class="t m0 x2 h6 ya6 ff3 fs3 fc0 sc0 ls0 ws0"> TreeVie<span class="_ _2"></span>wItem tr<span class="_ _2"></span>eeItemAct<span class="_ _2"></span>or = new<span class="_ _2"></span> TreeVie<span class="_ _2"></span>wItem();</div><div class="t m0 x2 h6 ya7 ff3 fs3 fc0 sc0 ls0 ws0"> treeItem<span class="_ _2"></span>Actor.Is<span class="_ _2"></span>Expanded<span class="_ _2"></span> = <span class="_ _2"></span>true<span class="_ _2"></span> ;</div><div class="t m0 x2 h6 ya8 ff3 fs3 fc0 sc0 ls0 ws0"> treeItem<span class="_ _2"></span>Actor.H<span class="_ _2"></span>eader = a<span class="_ _2"></span>ctorName<span class="_ _2"></span>;</div><div class="t m0 x2 h6 ya9 ff3 fs3 fc0 sc0 ls0 ws0"> TreeVie<span class="_ _2"></span>wItem tr<span class="_ _2"></span>eeItemScr<span class="_ _2"></span>ipt = new Tre<span class="_ _2"></span>eViewItem<span class="_ _2"></span>();</div><div class="t m0 x2 h6 yaa ff3 fs3 fc0 sc0 ls0 ws0"> treeItem<span class="_ _2"></span>Script.Is<span class="_ _2"></span>Expanded<span class="_ _2"></span> = tru<span class="_ _2"></span>e <span class="_ _2"></span>;</div><div class="t m0 x2 h6 yab ff3 fs3 fc0 sc0 ls0 ws0"> treeItem<span class="_ _2"></span>Script.H<span class="_ _2"></span>eader = <span class="_ _2"></span>" Scrip<span class="_ _2"></span>t"<span class="_ _2"></span> ;</div><div class="t m0 x2 h6 yac ff3 fs3 fc0 sc0 ls0 ws0"> ActorS<span class="_ _2"></span>cript = <span class="_ _2"></span>new<span class="_ _2"></span> Combo<span class="_ _2"></span>Box();</div><div class="t m0 x2 h6 yad ff3 fs3 fc0 sc0 ls0 ws0"> <span class="_ _2"></span>foreac<span class="_ _2"></span>h ( string scriptName <span class="_ _2"></span>in AIE<span class="_ _2"></span>ngine.Scr<span class="_ _2"></span>iptFiles.Ke<span class="_ _2"></span>ys)</div><div class="t m0 x2 h6 yae ff3 fs3 fc0 sc0 ls0 ws0"> {</div><div class="t m0 x2 h6 yaf ff3 fs3 fc0 sc0 ls0 ws0"> acto<span class="_ _2"></span>rScript.Ite<span class="_ _2"></span>ms.Add(s<span class="_ _2"></span>criptNam<span class="_ _2"></span>e);</div><div class="t m0 x2 h6 yb0 ff3 fs3 fc0 sc0 ls0 ws0"> }</div><div class="t m0 x2 h6 yb1 ff3 fs3 fc0 sc0 ls0 ws0"> treeItem<span class="_ _2"></span>Script.It<span class="_ _2"></span>ems.Add(<span class="_ _2"></span>ActorScri<span class="_ _2"></span>pt);</div><div class="t m0 x2 h6 yb2 ff3 fs3 fc0 sc0 ls0 ws0"> <span class="_ _2"></span>int a<span class="_ _2"></span>ctorIndex<span class="_ _2"></span> = ((TreeV<span class="_ _2"></span>iewItem)<span class="_ _2"></span>((TreeView<span class="_ _2"></span>Item)</div><div class="t m0 x2 h6 yb3 ff3 fs3 fc0 sc0 ls0 ws0"> AIEn<span class="_ _2"></span>gine.Scen<span class="_ _2"></span>eTree.Item<span class="_ _2"></span>s[ 0 ]).Item<span class="_ _2"></span>s[ 1 ]).Items.A<span class="_ _2"></span>dd(treeIt<span class="_ _2"></span>emActor)<span class="_ _2"></span>;</div><div class="t m0 x2 h6 yb4 ff3 fs3 fc0 sc0 ls0 ws0"> ((TreeV<span class="_ _2"></span>iewItem)(<span class="_ _2"></span>(TreeView<span class="_ _2"></span>Item)((Tre<span class="_ _2"></span>eViewItem<span class="_ _2"></span>)</div><div class="t m0 x2 h6 yb5 ff3 fs3 fc0 sc0 ls0 ws0"> AIEng<span class="_ _2"></span>ine.Scene<span class="_ _2"></span>Tree.Item<span class="_ _2"></span>s[ <span class="_ _2"></span>0 ]).Items[ 1 ]).Ite<span class="_ _2"></span>ms[actorI<span class="_ _2"></span>ndex]).Item<span class="_ _2"></span>s.Add(</div><div class="t m0 x2 h6 yb6 ff3 fs3 fc0 sc0 ls0 ws0"> treeIt<span class="_ _2"></span>emScript)<span class="_ _2"></span>;</div><div class="t m0 x2 h6 yb7 ff3 fs3 fc0 sc0 ls0 ws0">}</div><div class="t m0 x2 h5 yb8 ff1 fs2 fc0 sc0 ls0 ws0">每次创建<span class="_ _2"></span><span class="ff3">Actor</span>时<span class="_ _2"></span>,都会<span class="_ _2"></span>在应用程<span class="_ _2"></span>序中实<span class="_ _2"></span>现此过程<span class="_ _2"></span>。</div><div class="t m0 x2 h5 yb9 ff3 fs3 fc0 sc0 ls0 ws0">Screen<span class="ff1 fs2">是<span class="_ _2"></span>通过自<span class="_ _2"></span>定义屏幕<span class="_ _2"></span>创建的<span class="_ _2"></span>,该屏幕<span class="_ _2"></span>是通过<span class="_ _2"></span>继承</span>Dra<span class="_ _2"></span>wingCanv<span class="_ _2"></span>as<span class="ff1 fs2">类<span class="_ _2"></span>而创建<span class="_ _2"></span>的,<span class="ff3"> </span></span>Draw<span class="_ _2"></span>ingCanva<span class="_ _2"></span>s<span class="ff1 fs2">类<span class="_ _2"></span>继承了<span class="_ _2"></span></span>Canvas<span class="_ _2"></span><span class="ff1 fs2">类。</span></div><div class="t m0 x2 h5 yba ff3 fs3 fc0 sc0 ls0 ws0">DrawingC<span class="_ _2"></span>anvas<span class="_ _2"></span><span class="ff1 fs2">类用作<span class="_ _2"></span>控件,<span class="_ _2"></span>用户可以<span class="_ _2"></span>在其中<span class="_ _2"></span>将他或她<span class="_ _2"></span>的对象<span class="_ _2"></span>绘制到屏<span class="_ _2"></span>幕上。<span class="_ _2"></span><span class="ff3"> </span>为此,该<span class="_ _2"></span>类必须<span class="_ _2"></span>具</span></div><div class="t m0 x2 h5 ybb ff1 fs2 fc0 sc0 ls0 ws0">有<span class="ff3 fs3">System<span class="_ _2"></span>.Window<span class="_ _2"></span>s.Media.V<span class="_ _2"></span>isuals</span>集<span class="_ _2"></span>合(在其<span class="_ _2"></span>中保存<span class="_ _2"></span>图形)。<span class="_ _2"></span><span class="ff3"> </span>另外,我<span class="_ _2"></span>创建了<span class="_ _2"></span>一个临时<span class="_ _2"></span>的视觉<span class="_ _2"></span>集合,这<span class="_ _2"></span>样我就<span class="_ _2"></span>可以制<span class="_ _2"></span>作方形绘</div><div class="t m0 x2 h5 ybc ff1 fs2 fc0 sc0 ls0 ws0">图动画而<span class="_ _2"></span>不会弄<span class="_ _2"></span>乱主要的<span class="_ _2"></span>视觉集<span class="_ _2"></span>合。</div><div class="t m0 x2 h5 ybd ff1 fs2 fc0 sc0 ls0 ws0">这里的代<span class="_ _2"></span>码显示<span class="_ _2"></span>了它是如<span class="_ _2"></span>何实现<span class="_ _2"></span>的:</div><div class="t m0 x2 h5 ybe ff3 fs2 fc0 sc0 ls0 ws0">C<span class="ff1">#</span></div><div class="t m0 x2 h6 ybf ff3 fs3 fc0 sc0 ls0 ws0">// The <span class="_ _2"></span>screen tha<span class="_ _2"></span>t holds an<span class="_ _2"></span>d draws v<span class="_ _2"></span>isuals. Th<span class="_ _2"></span>is is embe<span class="_ _2"></span>dded</div><div class="t m0 x2 h6 yc0 ff3 fs3 fc0 sc0 ls0 ws0">// in th<span class="_ _2"></span>e XAML co<span class="_ _2"></span>de of the <span class="_ _2"></span>MainWnd.</div><div class="t m0 x2 h6 yc1 ff3 fs3 fc0 sc0 ls0 ws0">public class Drawing<span class="_ _2"></span>Canvas : <span class="_ _2"></span>Canvas</div><div class="t m0 x2 h6 yc2 ff3 fs3 fc0 sc0 ls0 ws0">{</div><div class="t m0 x2 h6 yc3 ff3 fs3 fc0 sc0 ls0 ws0"> <span class="_ _2"></span>//<span class="_ _2"></span> The collec<span class="_ _2"></span>tion of vis<span class="_ _2"></span>ual(drawin<span class="_ _2"></span>gs) the sc<span class="_ _2"></span>reen has</div><div class="t m0 x2 h6 yc4 ff3 fs3 fc0 sc0 ls0 ws0"> <span class="_ _2"></span>privat<span class="_ _2"></span>e List<V<span class="_ _2"></span>isual></div><div class="t m0 x2 h6 yc5 ff3 fs3 fc0 sc0 ls0 ws0"> visuals <span class="_ _2"></span>= new List<<span class="_ _2"></span>Visual>()<span class="_ _2"></span>;</div><div class="t m0 x2 h6 yc6 ff3 fs3 fc0 sc0 ls0 ws0"> <span class="_ _2"></span>//<span class="_ _2"></span> Temprorar<span class="_ _2"></span>y visuals <span class="_ _2"></span>that are d<span class="_ _2"></span>eleted per<span class="_ _2"></span>iodicly.</div><div class="t m0 x2 h6 yc7 ff3 fs3 fc0 sc0 ls0 ws0"> <span class="_ _2"></span>//<span class="_ _2"></span> Such as dr<span class="_ _2"></span>awing the<span class="_ _2"></span> square, in<span class="_ _2"></span> order to<span class="_ _2"></span> animate <span class="_ _2"></span>the </div><div class="t m0 x2 h6 yc8 ff3 fs3 fc0 sc0 ls0 ws0"> <span class="_ _2"></span>//<span class="_ _2"></span> dragging a<span class="_ _2"></span>bility, we <span class="_ _2"></span>must dele<span class="_ _2"></span>te visuals<span class="_ _2"></span>.</div><div class="t m0 x2 h6 yc9 ff3 fs3 fc0 sc0 ls0 ws0"> <span class="_ _2"></span>privat<span class="_ _2"></span>e List<V<span class="_ _2"></span>isual></div><div class="t m0 x2 h6 yca ff3 fs3 fc0 sc0 ls0 ws0"> tempv<span class="_ _2"></span>isuals = new<span class="_ _2"></span> List<Vis<span class="_ _2"></span>ual>();</div><div class="t m0 x2 h6 ycb ff3 fs3 fc0 sc0 ls0 ws0"> <span class="_ _2"></span>//<span class="_ _2"></span> This tells th<span class="_ _2"></span>e AddVis<span class="_ _2"></span>ual wheth<span class="_ _2"></span>er or not <span class="_ _2"></span>add the vi<span class="_ _2"></span>sual</div><div class="t m0 x2 h6 ycc ff3 fs3 fc0 sc0 ls0 ws0"> <span class="_ _2"></span>//<span class="_ _2"></span> temprorar<span class="_ _2"></span>y or in the<span class="_ _2"></span> visual co<span class="_ _2"></span>llection.</div><div class="t m0 x2 h6 ycd ff3 fs3 fc0 sc0 ls0 ws0"> <span class="_ _2"></span>public boo<span class="_ _2"></span>l sta<span class="_ _2"></span>rtTempVis<span class="_ _2"></span>ual = false ;</div><div class="t m0 x2 h6 yce ff3 fs3 fc0 sc0 ls0 ws0"> <span class="_ _2"></span>//<span class="_ _2"></span> Get the cu<span class="_ _2"></span>rrent visu<span class="_ _2"></span>al count</div><div class="t m0 x2 h6 ycf ff3 fs3 fc0 sc0 ls0 ws0"> <span class="_ _2"></span>prote<span class="_ _2"></span>cted override int Vi<span class="_ _2"></span>sualChildre<span class="_ _2"></span>nCount</div></div></div><div class="pi" data-data='{"ctm":[1.611639,0.000000,0.000000,1.611639,0.000000,0.000000]}'></div></div>