[IronPython] Experience installing IP with the new WPF CTP

Greg Kerr gregk at simdesk.com
Wed Dec 28 17:59:53 CET 2005


Did you spell it RepeatBehaviour or RepeatBehavior (shouldn't have the 
"u" on this side of the ocean. ;-)

Greg

Iain Mackay wrote:
> I ran into several problems running the first Avalon example from the
> tutorial, using IP 0.9.6
> 
> I should mention that at this time I was running .net Framework 2.0 and the
> Dec 2005 CTP preview of WPF x64 versions without the Framework SDK;
> installing the SDK subsequently did not change the behaviour.
> 
> I noticed three problems:
> 
> - I couldn't set the Text attribute on a Window object
> - I couldn't set the TextContent attribute on a TextBlock object
> - the class RepeatBehaviour seems not to be imported.
> 
> Another strange aspect is that I get this far when I enter the script
> interactively to the console, but when I put the script in a file and
> execute it from the command line I get the exception:
> "System.InvalidOperationException: The calling thread must be STA, as many
> UI components require this." on calling the Show method of the Window
> object. I think I might need to rebuild the console to sort this out - C#
> and .net threading models are rather a steep learning curve for this
> evening, so I've stuck to interactive experiments for now.
> 
> Here's my console experience following the tutorial:
> 
> G:\downloads\ironpython\IronPython-0.9.6\IronPython-0.9.6\Tutorial>ironpytho
> nconsole
> IronPython 0.9.6 on .NET 2.0.50727.42
> Copyright (c) Microsoft Corporation. All rights reserved.
>>>> from avalon import *
>>>> w=Window ()
>>>> w.Show ()
>>>> w.Text="Avalon app"
> Traceback (most recent call last):
>    at <shell>
> TypeError: can't set arbitrary attributes on built-in type
> System.Windows.Window
> 
> This is quite right, because Windows do not have a Text attribute. However,
> if you set Title, all is well.
> 
>>>> w.Content = TextBlock ()
>>>> w.Content.TextContent = "Hello IronPython!"
> Traceback (most recent call last):
>    at <shell>
> TypeError: can't set arbitrary attributes on built-in type
> System.Windows.Contro
> ls.TextBlock
> 
> Similarly, w.Content.Text = "Hello IronPython", works just fine. You can
> discover the attributes of w of course just by:
> 
> for (key, value) in w.__dict__.items (): print key, value
> 
> (Iron)Python is so cool like that.
> 
>>>> w.Content.FontSize = 50
>>>> a=DoubleAnimation(0.0,Duration(TimeSpan.FromSeconds(3)))
>>>> a.RepeatBehaviour = RepeatBehaviour.Forever
> Traceback (most recent call last):
>    at <shell>
> NameError: name 'RepeatBehaviour' is not defined
>>>> ^Z
> 
> I didn't persist beyond here just yet. I suppose there have been some
> substantial changes in object properties during the evolution of WPF as seen
> in this latest preview, not yet reflected in the tutorial source - a life on
> the bleeding edge thing.
> 
>>>> import sys
>>>> sys.path
> ['G:\\downloads\\ironpython\\IronPython-0.9.6\\IronPython-0.9.6\\Tutorial',
> 'G:\\downloads\\ironpython\\IronPython-0.9.6\\IronPython-0.9.6\\bin\\Lib']
> 
> Anyway, a whole lot of wonderful things are working straight out of the box,
> including the XAML calculator. This is going to be a lot of fun. Thanks to
> everyone for getting things this far. Am I doing something silly to get the
> threading problem?
> 
> Iain MacKay




More information about the Ironpython-users mailing list