On 31/03/2010 03:06, Jimmy Schementi wrote:
I still need to package my app into a zip file and serve it locally (doesn't 
work from the filesystem)
Michael, what do you exactly mean by this? You need your app to run out of 
browser?


I mean that if I develop in an html file I can't view it from the filesystem in a browser but must still have a locally running server for the scripts to run.

It doesn't seem to me that embedded xaml is working
First of all, docs/spec issue: the current online bits only support 
application/xml+xaml, and the docs have application/xaml+xml.

oferchrisakes. Yes, switching solved the problem.

This leads into an interesting point - the docs show the following as the public url to use for dlr.js:

http://gestalt.ironpython.net/dlr-latest.js

This means any backwards incompatible changes are *guaranteed* to break apps using it. :-) What are needed are versioned URLs so that you can specify precisely which version to use. Are these available, I couldn't find them in the docs but I may just not be looking in the right place.

The release that will be online in a few days supports both. After correcting 
that you will get a SL control created on the page; here's the exact HTML (with 
a Text attribute added to the TextBlock to make it obvious that it worked):

<html>
   <head>
     <script type="text/javascript" 
src="http://gestalt.ironpython.net/dlr-latest.js";></script>
   </head>
   <body>
     <script type="application/xml+xaml" id="inlineXAML" width="200" 
height="75">
       <Canvas>  <TextBlock Canvas.Left="20" FontSize="24" Text="hi" />  
</Canvas>
     </script>
   </body>
  <html>

Then, if you add the following Python script-tag after the XAML script tag, it 
will update the text:

     <script type="text/python" class="inlineXAML">
       from System.Windows.Application import Current as app
       app.RootVisual.Children[0].Text += " from python"
     </script>

Note the *class="inlineXAML"* attribute; if you did not include this, the code would run 
against a different Silverlight control than the one created by your *id="inlineXAML"* 
tag. In fact, it would run against a SL control that is essentially hidden, so app.RootVisual would 
be None. In short, giving a XAML script-tag an ID lets you pick the Python script-tags that will 
run against it by setting their class attribute to the same value.

I'll update the docs accordingly...


Thanks for your help. I wasn't using the class attribute which would have caused me problems even if I had been using the right xml type declaration. I did think that the docs said all un-scoped scripts were run against the default control, but using an explicit scope is no problem.

Michael

~Jimmy
_______________________________________________
Users mailing list
Users@lists.ironpython.com
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com


--
http://www.ironpythoninaction.com/
http://www.voidspace.org.uk/blog

READ CAREFULLY. By accepting and reading this email you agree, on behalf of 
your employer, to release me from all obligations and waivers arising from any 
and all NON-NEGOTIATED agreements, licenses, terms-of-service, shrinkwrap, 
clickwrap, browsewrap, confidentiality, non-disclosure, non-compete and 
acceptable use policies (”BOGUS AGREEMENTS”) that I have entered into with your 
employer, its partners, licensors, agents and assigns, in perpetuity, without 
prejudice to my ongoing rights and privileges. You further represent that you 
have the authority to release me from any BOGUS AGREEMENTS on behalf of your 
employer.


_______________________________________________
Users mailing list
Users@lists.ironpython.com
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com

Reply via email to