2010-06-16 7 views
2

Je viens d'installer VS2010 et la nouvelle extension IronPython Tools. Currently cette extension ne génère pas encore de gestionnaires d'événements dans le code en double-cliquant sur les contrôles visuels wpf. Est-ce qu'il y a quelqu'un qui peut fournir ou me montrer un exemple sur la façon de coder les gestionnaires d'événements wpf manuellement dans python. Je n'ai pas eu de chance en trouver et je suis nouveau au studio visuel.Lier IronPython à WPF

Lors de la génération d'un nouveau projet de WPF ipython le code généré automatiquement est:

import clr 
clr.AddReference('PresentationFramework') 

from System.Windows.Markup import XamlReader 
from System.Windows import Application 
from System.IO import FileStream, FileMode 

app = Application() 
app.Run(XamlReader.Load(FileStream('WpfApplication7.xaml', FileMode.Open))) 

et le XAML est:

<Window 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     Title="WpfApplication7" Height="300" Width="300"> 
     <Button>Click Me</Button> 
</Window> 

Toute aide serait appréciée.

Répondre

5

Vous ne pouvez pas utiliser quelque chose comme <Button Click="Foo"> ici, car il n'y a pas de classe dans le code correspondant à votre fenêtre, et vous ne pouvez pas en obtenir, car les classes IronPython ne correspondent pas directement aux classes CLR. En outre, XamlReader, qui est utilisé pour charger le fichier XAML ici, ne prend pas en charge l'événement wireup. Si vous avez besoin d'événements, vous devrez enregistrer les gestionnaires à partir du code Python, pas en XAML - ce qui est fait par la syntaxe habituelle += une fois que vous avez obtenu le contrôle pour lequel vous voulez que l'événement soit enregistré.

Jetez aussi un oeil à this sample pour des aides qui pourraient vous faciliter la tâche.

+0

Si j'avais assez de points pour voter, je le ferais. ++ Merci – DonnyD

Questions connexes