2011-08-12 34 views
2

我正在尝试学习一些IronPython,以加速开发过程。我只是试图移植一些简单的命令,目前我被困在打开现有的窗口。在C#中我会做这样的事情:如何用IronPython打开现有窗口

var about = new AboutWin(); 
about.Show(); 

有没有人知道如何去做这个在IronPython?我相信这很容易,就像其他所有事情都与IronPython一样。

回答

0

据我知道你可以做到这一点通过以下方式:

import clr 

clr.AddReference("System.Windows.Forms") 

from System.Windows.Forms import Form,Labels 

myForm = Form() 
myForm.Text = 'Test' 
label = Label() 
label.Text = 'Label Test' 
myForm.Controls.Add(label) 
myForm.Show() 
你的情况

如您首先需要添加参考AboutWin,然后用同样的方式:

import clr 

clr.AddReference(<put your assembly name here>) 

from <namespace> import AboutWin 

aWin = AboutWin() 
aWin.Show() 
+0

我的项目名称是Wpf_Python。下面是我的尝试: – Dylan

+0

进口CLR clr.AddReference(Wpf_Python) 从Wpf_Python进口AboutWin AWIN = AboutWin() aWin.Show() 不幸的是这并没有这样的伎俩。我得到一个错误,说“无法添加引用程序集AboutWin”。我错过了什么吗? – Dylan

+0

我认为你必须检查你使用的参考名称或命名空间。认为你指定了错误的方式。如果clr.AddReference工作正常,然后检查声明,以确保正确的名称指定 –

1

这应该做的伎俩:

import clr 
clr.AddReference('PresentationFramework') 
import System 

from System.Windows.Markup import XamlReader 
from System.Windows import Application 

XAML_str = """<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Width="250" Height="100"> 
    <TextBox Text="Hello from IronPython" /> 
</Window>""" 

app = Application() 
app.Run(XamlReader.Parse(XAML_str)) 

请参见我的博客bigger example

+0

+1您的答案 - 我错过了他正在尝试运行WPF应用程序 –