Silverlight/XAML – Learning by Coding
1: <?xml version="1.0" encoding="UTF-8"?>
2: <!-- coded by Thomas Meinike 04/08 -->
3: <Canvas xmlns="http://schemas.microsoft.com/client/2007"
4: xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
5:
6: <TextBlock Canvas.Left="20" Canvas.Top="20" FontFamily="Lucida" FontSize="14" Foreground="#000"
7: Text="Mit dem Glyphs-Element lassen sich einzelne Font-Zeichen einbinden. Beispiel mit Symbolen aus dem"/>
8:
9: <TextBlock Canvas.Left="20" Canvas.Top="40" FontFamily="Lucida" FontSize="14" Foreground="#00C"
10: Text="Würfelfont "MarVAlea.ttf" von Martin Vogel unter CC-Lizenz: http://www.marvosym.de/marvalea.html"
11: MouseEnter="TextOver" MouseLeave="TextOut" MouseLeftButtonDown="HyperLink"
12: Tag="http://www.marvosym.de/marvalea.html"/>
13:
14: <Glyphs Canvas.Left="20" Canvas.Top="70" Fill="#000" FontUri="media/MarVAlea.ttf" FontRenderingEmSize="36"
15: UnicodeString="0123456789"/><!-- alternativ statt UnicodeString="..." Indices="13;14;15;16;17;18;19;20;21;22" -->
16:
17: <Line X1="20" Y1="130" X2="715" Y2="130" Stroke="#CCC" StrokeThickness="1"/>
18:
19: <TextBlock Canvas.Left="20" Canvas.Top="150" FontFamily="Lucida" FontSize="16" Foreground="#000"
20: Text="Umsetzung eines Würfelspiels [Werte 1-6] mit diesem Symbolfont:"/>
21:
22: <Glyphs x:Name="w1" Canvas.Left="20" Canvas.Top="180" Fill="#C00" FontUri="media/MarVAlea.ttf"
23: FontRenderingEmSize="100" UnicodeString="0"/><!-- Würfel 1 - alternativ Indices="13" -->
24:
25: <Glyphs x:Name="w2" Canvas.Left="120" Canvas.Top="180" Fill="#0C0" FontUri="media/MarVAlea.ttf"
26: FontRenderingEmSize="100" UnicodeString="0"/><!-- Würfel 2 - alternativ Indices="13" -->
27:
28: <Glyphs x:Name="w3" Canvas.Left="220" Canvas.Top="180" Fill="#00C" FontUri="media/MarVAlea.ttf"
29: FontRenderingEmSize="100" UnicodeString="0"/><!-- Würfel 3 - alternativ Indices="13" -->
30:
31: <Glyphs Canvas.Left="300" Canvas.Top="180" Fill="#CCC" FontUri="media/MarVAlea.ttf"
32: FontRenderingEmSize="100" UnicodeString="/"/><!-- Schrägstrich - alternativ Indices="12" -->
33:
34: <Glyphs Canvas.Left="360" Canvas.Top="180" Fill="#999" FontUri="media/MarVAlea.ttf"
35: FontRenderingEmSize="100" UnicodeString="0"/><!-- Ausgabefeld - alternativ Indices="13" -->
36:
37: <TextBlock x:Name="summe" Canvas.Left="372" Canvas.Top="215" FontFamily="Lucida" FontSize="30"
38: Foreground="#999" Text="000"/>
39:
40: <TextBlock Canvas.Left="460" Canvas.Top="210" FontFamily="Lucida" FontSize="14" Foreground="#00C"
41: Text="Neues Spiel" MouseLeftButtonDown="Wuerfeln_Neu" MouseEnter="TextOver" MouseLeave="TextOut"/>
42:
43: <TextBlock Canvas.Left="460" Canvas.Top="240" FontFamily="Lucida" FontSize="14" Foreground="#00C"
44: Text="W ü r f e l n" MouseLeftButtonDown="Wuerfeln" MouseEnter="TextOver" MouseLeave="TextOut"/>
45:
46:
47: <!-- // zusätzlich verwendeter JavaScript-Code:
48:
49: var summe=0; // global
50:
51: function Wuerfeln(sender,eventArgs)
52: {
53: var z1,z2,z3,sum_str="";
54:
55: z1=Zufallszahl(1,6);
56: z2=Zufallszahl(1,6);
57: z3=Zufallszahl(1,6);
58:
59: summe+=z1+z2+z3;
60: sum_str=summe.toString();
61: if(summe<10)sum_str="00"+sum_str;
62: else if(summe<100)sum_str="0"+sum_str;
63: if(summe>999)
64: {
65: sender.findName("summe").fontSize="22";
66: sender.findName("summe")["Canvas.Top"]="222";
67: }
68:
69: // alternativ für w1 bis w3 mit Indices statt UnicodeString:
70: // sender.findName("w?").indices=(z?+13).toString();
71: sender.findName("w1").unicodeString=z1.toString();
72: sender.findName("w2").unicodeString=z2.toString();
73: sender.findName("w3").unicodeString=z3.toString();
74: sender.findName("summe").text=sum_str;
75: }
76:
77:
78: function Wuerfeln_Neu(sender,eventArgs)
79: {
80: summe=0;
81: // alternativ für w1 bis w3 mit Indices statt UnicodeString:
82: // sender.findName("w?").indices="13";
83: sender.findName("w1").unicodeString="0";
84: sender.findName("w2").unicodeString="0";
85: sender.findName("w3").unicodeString="0";
86: sender.findName("summe").fontSize="30";
87: sender.findName("summe")["Canvas.Top"]="215";
88: sender.findName("summe").text="000";
89: }
90:
91:
92: function Zufallszahl(von,bis)
93: {
94: return Math.floor(von+(bis-von+1)*Math.random());
95: }
96:
97:
98: function TextOver(sender,eventArgs)
99: {
100: var txt_obj=sender;
101:
102: txt_obj.cursor="Hand";
103: txt_obj.foreGround="#F00";
104: txt_obj.textDecorations="Underline";
105: }
106:
107:
108: function TextOut(sender,eventArgs)
109: {
110: var txt_obj=sender;
111:
112: txt_obj.cursor="Default";
113: txt_obj.foreGround="#00C";
114: txt_obj.textDecorations="None";
115: }
116:
117: -->
118:
119: </Canvas>
[zum Anfang]