Я бился головой о стену в течение нескольких недель, чтобы собрать минимальный HTML-код для приложения IronPython Silverlight, которое использует Gestalt, как это было впервые предложено Джимми Шементи здесь: http://www.silverlight.net/learn/advanced-technologies/dynamic-languages/dynamic-languages-in-silverlight и здесь: http://ironpython.net/browser/gettingstarted.html
Но мне трудно загрузить приложение, которое что-либо делает. Каждый раз, когда я вставляю в примеры какой-либо собственный сценарий, приложение Silverlight либо не загружается, либо ничего не показывает в своем объекте. Я хочу иметь основу HTML, чтобы получить доступ к библиотекам Silverlight и начать кодировать / тестировать графику для своего приложения. (Но я еще не могу туда добраться.)
На основе его примеров я собрал следующий HTML-код, который вызывает мой visual.py - файл Python, который должен иметь возможность делать все, что делает файл XAML, путем доступа к библиотекам Silverlight.
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<style type="text/css">
html, body { height: 100%; overflow: auto; }
body { padding: 0; margin: 0; }
#silverlightControlHost { height: 90%; text-align: center; }
</style>
<script type="text/javascript">
window.DLR = {settings: {windowless: 'true'}}
</script>
<script type="text/javascript" src="http://gestalt.ironpython.net/dlr-latest.js"></script>
<title>webcam-mic</title>
</head>
<body>
<script type="application/python" src="visual.py" id="python" width="100%" height="100%""></script>
</body>
</html>
Но это не работает. В вызываемом им файле .py есть: (также взяты из рабочих примеров IronPython из других источников)
from System.Windows import Application, Thickness
from System.Windows.Controls import (
Button, Orientation, TextBlock,
StackPanel, TextBox
)
from System.Windows.Input import Key
root = StackPanel(Width=500,Height=500)
textblock = TextBlock()
textblock.Margin = Thickness(20)
textblock.FontSize = 18
textblock.Text = 'Stuff goes here'
root.Children.Add(textblock)
panel = StackPanel()
panel.Margin = Thickness(20)
panel.Orientation = Orientation.Horizontal
button = Button()
button.Content = 'Push Me'
button.FontSize = 18
button.Margin = Thickness(10)
textbox = TextBox()
textbox.Text = "Type stuff here..."
textbox.FontSize = 18
textbox.Margin = Thickness(10)
textbox.Width = 200
#textbox.Watermark = 'Type Something Here'
def onClick(s, e):
textblock.Text = textbox.Text
textbox.Text = ""
def onKeyDown(sender, e):
if e.Key == Key.Enter:
e.Handled = True
onClick(None, None)
button.Click += onClick
textbox.KeyDown += onKeyDown
panel.Children.Add(button)
panel.Children.Add(textbox)
root.Children.Add(panel)
Application.Current.RootVisual = root
Какие дополнительные компоненты мне нужны? (Проблема с версией dlr.js? Мои теги сценария? Версия Silverlight?) Все, что мне нужно, - это код, необходимый для создания полноэкранного приложения Silverlight, которое берет все свои элементы управления и графику из файла python. Пока ничего из того, что я собрал, не сработало. Я использую Firefox с Silverlight 4.0.
IronPython-2.7\Silverlight\script
и шаг за шагом корректируйте его в соответствии с вашим изображением. - person Lukas Cenovsky   schedule 26.11.2011