MS-Room Finder–von AutoCad ins XAML auf’s Phone

Von Robert John Autor Feed 19. June 2012 11:05

Das neue Microsoft-Office ist wirklich toll geworden – es macht voll Spaß hier zu arbeiten. Es gibt viele unterschiedliche Räumlichkeiten, die alle in einem anderen Design gehalten sind. Es gibt Besprechungsräume, die sehen aus wie ein Kaffeehaus, andere wieder wie ein japanischer Garten. Alle Besprechungsräume haben auch einen eindeutigen Namen (bsp: Café Vienna, oder Garden, oder Living-Room, …) – und es gibt eine Menge davon; genau das ist das Problem: Man hat ein Meeting mit Kollegen im Raum Living-Room – doch wo befindet sich dieser Raum eigentlich? Im EG, 1.Stock, 2.Stock - und im 1.Stock wo genau? Das Fragen sich ca. 300 Mitarbeiter jeden Tag mehrmals – und ich habe die Erfahrung gemacht, dass man sich die Namen zu den Räumlichkeiten nicht merkt. Lösung: eine Windows Phone App, welche übersichtlich auf einem Plan zeigt, wo sich der Raum befindet. Eine Phone App deshalb, da jeder Mitarbeiter das Device sicher bei sich hat – meine Idee ist geboren: der MS-Room-Finder.

Jetzt habe ich mir die Frage gestellt, was benötige ich für die Umsetzung: einen detaillierten Bauplan, wo alle Räumlichkeiten grafisch aufbereitet sind. Den habe ich auch sofort von unserem Architekten bekommen – ein AutoCad-File. Ich habe ersucht, das AutoCad-File als Adobe Illustrator-Datei zu bekommen (einfach im AutoCad die jeweilige Datei als „AI-Datei exportieren“ – als AI-Datei deshalb, da ich unter Microsoft Expression Design die Datei weiter bearbeiten und sie schließlich als XAML-Datei abspeichern kann; ich benötige als Finale Datei eine XAML-Datei) – voila – der erste und wichtigste Schritt ist getan – ich habe alle Informationen jedes Stockwerks grafisch perfekt und maßstabsgetreu aufbereitet.

Importiert in Microsoft Expression Design, konnte ich so die Datei selbst nachbearbeiten. Ich habe viele Elemente die für die Anzeige von Räumlichkeiten nicht wichtig waren (bsp.: Zwischendecken, Licht- und Steckerdosen, …) einfach ausgeblendet und habe schließlich einen reinen Stockplan mit den Räumlichkeiten vor mir liegen gehabt. Jetzt habe ich einfach jede Räumlichkeit mit einem transparenten Rechteck markiert und dieses Rechteck den Namen des Raumes selbst gegeben. Meine Idee war, dass ich in der App einfach das Rechteck mit dem Namen des Raumes ansprechen kann und dieses Rechteck oder Shape einfach rot einfärben kann – somit ist der gesuchte Raum markiert.

Nachdem ich somit in allen 3 Stockwerken jeden Raum markiert und ihm den richtigen Namen gegeben habe, habe ich jedes Stockwerk als XAML-Datei gespeichert.

Jetzt war es mir möglich das XAML in die Windows Phone App zu importieren und anzuzeigen. In einer Collection habe ich schließlich alle Räumlichkeiten, deren Namen und in welche von den 3 XAML Dateien dieser Raum zu finden ist, abgespeichert. Bei der Suche nach einem Raum wurde die Collection durchsucht und schließlich das notwendige XAML geladen und angezeigt. In der XAML Datei wurde nach dem Shape oder des Rechteckes mit dem Namen der Räumlichkeit gesucht und schließlich das Shape oder das Rechteck markiert – dies machte ich mit folgender Routine:

navigateRoom = navigateRoom.Replace(" ", "_")
Dim x As Object = Me.FindName(navigateRoom)
Dim kindofControl As System.Type = x.GetType
Select Case kindofControl.FullName
    Case "System.Windows.Shapes.Path"
        Dim cp As System.Windows.Shapes.Path = x
        cp.Visibility = Windows.Visibility.Visible
    Case "System.Windows.Shapes.Rectangle"
        Dim cp As System.Windows.Shapes.Rectangle = x
        cp.Visibility = Windows.Visibility.Visible
End Select

Das wirklich komplexe war die nächste Idee: ich würde gerne das XAML mit Gesture-Steuerung bedienen (in den Plan zoomen – vergrößern, verkleinern und auch Drehen!) – komplex!!

Dazu habe ich einen sehr guten msdn-Artikel gesehen – von diesem Artikel konnte ich schließlich meine Steuerung ableiten: http://msdn.microsoft.com/en-us/magazine/gg650664.aspx

Es gibt auch dort den kompletten Source-Code in C# als Sample – gut gemacht!

Schließlich wollte ich sämtliche Einstellungen (bsp: Drehung möglich on/off) für den Benutzer als Einstellungen speichern – also seine Settings abspeichern – im Isolated Storage. Dies war letztendlich keine große Sache mehr, denn einen sehr guten Link mit Samples und Erklärungen dazu fand ich auf: http://create.msdn.com/en-US/education/quickstarts/Isolated_Storage

Meine Room-Finder App war fertig J - cool, ich hatte in 2 Tagen 200 Downloads …. – jetzt sehe ich, dass meine Kollegen meine App am Startscreen haben und diese mehrfach am Tag verwenden J - TAUGT SICH!!

Robert John
Snr. Technical Evangelist – Windows Phone
Microsoft Österreich

Add comment

  Country flag

biuquote
  • Comment
  • Preview
Loading

Datenschutzhinweis: Sie stimmen durch "Kommentar speichern" der Speicherung Ihrer Angaben durch Microsoft Österreich für die Beantwortung der Anfrage zu. Sie erhalten dadurch keine unerwünschten Werbezusendungen. Ihre Emailadresse wird auf Ihren Wunsch dazu verwendet Sie über neue Kommentare zu informieren.

Microsoft respektiert den Datenschutz. Datenschutz & Cookies

TechEd Europe 2013:

TechEd Europe 2013

Entwickler Wettbewerbe:

Wettbewerbe

Entwickler Events:

Developer Events

App für Windows 8, Windows Phone oder/und Azure? Diese Events zeigen Dir, wie es geht:

Mehr Information

Aktuelle Downloads

Windows Azure 90-day free trial
CodeFest.at on Facebook

Datenschutz & Cookies · Nutzungsbedingungen · Impressum · Markenzeichen
© 2013 Microsoft. Alle Rechte vorbehalten · BlogEngine.NET 2.7.0.0 · Diese Website wird für Microsoft von atwork gehostet.
powered by atwork