2011-08-12 6 views
2

J'essaie d'apprendre un peu de IronPython pour peut-être accélérer le processus de développement. J'essaye juste de porter sur quelques commandes simples et actuellement je suis coincé sur l'ouverture d'une fenêtre existante. En C# Je ferais quelque chose comme:Comment ouvrir une fenêtre existante avec IronPython

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

Est-ce que quelqu'un sait comment s'y prendre en IronPython? Je suis sûr que c'est ridiculement facile, comme tout le reste semble être avec IronPython.

Répondre

0

Pour autant que je sais que vous pouvez le faire de la façon suivante:

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

Par exemple, dans votre cas, vous devez d'abord ajouter une référence à la AboutWin et ensuite l'utiliser de la même façon:

import clr 

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

from <namespace> import AboutWin 

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

Mon nom de projet est Wpf_Python. Voici ce que j'ai essayé: – Dylan

+0

importation clr clr.AddReference (Wpf_Python) d'importation Wpf_Python AboutWin Awin = AboutWin() aWin.Show() Malheureusement, cela n'a pas l'affaire. Je reçois une erreur qui dit "Impossible d'ajouter une référence à l'assembly AboutWin". Est-ce que je manque quelque chose? – Dylan

+0

Je pense que vous devez vérifier votre nom de référence ou l'espace de noms utilisé. Vous pensez que vous l'avez spécifié dans le mauvais sens. Si clr.AddReference fonctionne correctement, vérifiez de l'instruction pour être sûr que le bon nom a spécifié –

1

Cela devrait faire l'affaire:

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

Voir mon blog pour bigger example.

+0

+1 à votre réponse - j'ai manqué qu'il essaie d'exécuter l'application WPF –

Questions connexes