Связывание IronPython с WPF - PullRequest
2 голосов
/ 17 июня 2010

Я только что установил VS2010 и замечательное новое расширение IronPython Tools . В настоящее время это расширение еще не генерирует обработчики событий в коде при двойном щелчке визуальных элементов управления wpf. Есть ли кто-нибудь, кто может предоставить или указать мне пример того, как кодировать обработчики событий wpf вручную в python. Мне не повезло найти что-либо, и я новичок в визуальной студии.

При создании нового проекта ipython wpf автоматически сгенерированный код:

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

и XAML:

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

Любая помощь будет оценена.

1 Ответ

5 голосов
/ 17 июня 2010

Вы не можете использовать что-то вроде <Button Click="Foo"> здесь, потому что в коде нет класса, соответствующего вашему окну, и вы не можете получить его, потому что классы IronPython не отображаются напрямую на классы CLR. Кроме того, XamlReader, который используется для загрузки здесь файла XAML, не поддерживает событие события. Если вам нужны события, вам придется регистрировать обработчики из кода Python, а не из XAML - что делается обычным синтаксисом +=, как только вы получите элемент управления, для которого вы хотите, чтобы событие было зарегистрировано.

Также посмотрите на этот образец для некоторых помощников, которые могли бы сделать это проще.

...