Exemple Silverlight minimal
-
19-08-2019 - |
Question
Quel est l'exemple vraiment minimal de l'application Silverlight?
Par exemple, j'ai créé l'exemple suivant avec IronPython:
from System.Windows import Application
from System.Windows.Controls import Canvas, TextBlock
canvas = Canvas()
textblock = TextBlock()
textblock.FontSize = 24
textblock.Text = 'Hello!'
canvas.Children.Add(textblock)
Application.Current.RootVisual = canvas
J'ai ensuite utilisé chiron pour créer un fichier .xap. Non (explicite) XAML, non rien. Est-il possible de faire la même chose en C #, par exemple? Un fichier source que je pourrais compiler à partir de la ligne de commande? Si oui, quel serait le code source?
Ma motivation est d'essayer de créer une application silverlight avec des langages non conventionnels. En ce moment, je suis coincé chez Boo ...
La solution
using System;
using System.Windows;
using System.Windows.Controls;
namespace MimimalSilverlightApp
{
public class App : Application
{
public App()
{
this.Startup += this.Application_Startup;
}
private void Application_Startup(object sender, StartupEventArgs e)
{
var canvas = new Canvas();
var textblock = new TextBlock();
textblock.FontSize = 24;
textblock.Text = "Hello!";
canvas.Children.Add(textblock);
this.RootVisual = canvas;
}
}
}
Autres conseils
Vous avez trouvé un exemple F # ici .
Faites un exemple Boo basé sur celui-ci. Le code source:
namespace Hello
import System
import System.Windows
import System.Windows.Controls
class MyPage(UserControl):
def constructor():
canvas = Canvas()
textblock = TextBlock()
textblock.FontSize = 24
textblock.Text = "Hello!"
canvas.Children.Add(textblock)
self.Content = canvas
class MyApp(Application):
def constructor():
Startup += onStartup
def onStartup(sender, e):
self.RootVisual = MyPage()
Construit avec:
booc -nostdlib -target:library -lib:"C:\Program Files\Microsoft SDKs\Silverlight\v2.0\Reference Assemblies","C:\Program Files\Microsoft SDKs\Silverlight\v2.0\Libraries\Client" -r:System.Windows.dll -r:System.Windows.Controls.dll Hello.boo
Le fichier AppManifest.xaml:
<Deployment xmlns="http://schemas.microsoft.com/client/2007/deployment"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
EntryPointAssembly="Hello"
EntryPointType="Hello.MyApp" RuntimeVersion="2.0.31005.0">
<Deployment.Parts>
<AssemblyPart x:Name="Hello" Source="Hello.dll" />
<AssemblyPart x:Name="Boo.Lang" Source="Boo.Lang.dll" />
</Deployment.Parts>
</Deployment>
Créez ensuite un fichier .zip ordinaire contenant AppManifest.xaml, Hello.dll et Boo.Lang.dll (une des bibliothèques Boo de son répertoire) et renommez-le en hello.xap.
Un code HTML à regarder:
<html>
<head></head>
<body>
<object id="SilverlightPlugin" data="data:application/x-silverlight,"
type="application/x-silverlight-2" width="450" height="540">
<param name="source" value="hello.xap"/>
<a href="http://go.microsoft.com/fwlink/?LinkID=124807" style="text-decoration: none;">
<img src="http://go.microsoft.com/fwlink/?LinkId=108181"
alt="Get Microsoft Silverlight" style="border-style: none"/>
</a>
</object>
</body>
</html>
Le fichier hello.xap obtenu est de 43 Ko, ce qui est bien meilleur que 1,5 Mo de celui obtenu avec IronPython et DLR.