o-LIVE-r

Windows, Windows Phone, Silverlight, Internet Explorer, and the Cloud

  • o-LIVE-r

    Willkommen Webmatrix! Web-Entwicklung mit ASP.NET und PHP Kostenlos

    • 0 Comments

    Gestern Abend wurde auf dem amerikanischen Community Event Code Mash die finale Version von Webmatrix, dem neuen kostenlosen Webentwicklungswerkzeug von Microsoft vorgestellt.

    WebMatrix_bL

    Webmatrix umfasst den Webserver IIS Developer Express, das Web-Framework ASP.NET sowie die eingebettete Datenbank SQL Server Compact.

    Entwickler können innerhalb von Webmatrix wählen, ob Sie Ihre Webseiten auf mitgelieferten Templates aufbauen oder aber mit Hilfe eines der populären Open-Source-Frameworks starten möchten. Mit WebMatrix lassen sich sowohl ASP.NET- als auch PHP-Anwendungen programmieren, testen und bereitstellen.

    Über die bekannte Web-App-Gallery kann direkt aus Webmatrix heraus das passende ASP.NET oder PHP Framework installiert und konfiguriert werden. Dazu zählen unter anderem WordPress, Joomla! oder Drupal sowie DotNetNuke oder BlogEngine.NET auf Basis von ASP.NET.

    Microsoft WebMatrix hilft auch dabei, den passenden Web-Host zu finden. In der Web-Hosting-Galerie stehen entsprechende Provider zur Auswahl. Dank integrierter FTP-, FTPS- und WebDeploy-Technologie lassen sich die erstellten Dateien dann sicher und problemlos im Internet publizieren. Hosting-Provider wie die IPX Server GmbH, Quality Hosting GmbH und Strato AG bieten zum Launch spezielle Webmatrix-Hosting-Angebote an.

    Die Zeiten von ständigem Hin-und-Her Wechseln zwischen verschiedenen Applikationen zur Erstellung Ihres Webprojekts sind endlich vorbei! Mit Webmatrix erledigen Entwickler alle Aufgaben zentral: Editieren Ihrer Seiten, erstellen, bearbeiten und kontrollieren der Datenbank, optimieren der Seite für Suchmaschinen und Anpassen der Server Einstellungen.

    Sollten die Anforderungen steigen, können WebMatrix-Nutzer ihre Projekte problemlos auf Visual Studio übertragen. Ebenso einfach lässt sich auch eine relationale Datenbank einbinden: Per Mausklick können die Daten von SQL Server Compact auf SQL Server migriert werden.

    Die finale Version von Microsoft WebMatrix ist in deutscher Sprache verfügbar und steht hier zum kostenlosen Download bereit.

  • o-LIVE-r

    Windows 7: Wie aktiviert man den Aero Glass Effekt in WPF-Anwendungen?

    • 0 Comments

    Der beliebte Windows Aero Glas Effekt kann auch sehr einfach in eigenen WPF (Windows Presentation Foundation) – Anwendungen verwendet werden.

    Das folgende Beispiel zeigt wie eine Anwendung “ohne” Hintergrundfarbe aussieht. Etwas schicker als das “Windows-Grau”, oder?

    image

    Das folgende Video zeigt wie man eine Glas Anwendung erstellt. Der Beispiel-Code dazu kann am Ende des Artikels heruntergeladen werden.

    Get Microsoft Silverlight

    Sourcecode

    Im Konstruktor der Window-Klasse die dargestellt werden soll, wird einfach folgender Code hinzugefügt.

    this.Loaded += (s, e) =>
    {
       GlassEffectHelper.EnableGlassEffect(this);
    };

     

    Die GlassEffectHelper-Klasse sieht wie folg aus:

    public class GlassEffectHelper
    {
     
    [DllImport("dwmapi.dll", PreserveSig = false)]
    static extern void DwmExtendFrameIntoClientArea(IntPtr hwnd, ref MARGINS margins);
     
    [DllImport("dwmapi.dll", PreserveSig = false)]
    static extern bool DwmIsCompositionEnabled();
     
    public static bool EnableGlassEffect(Window window)
    {
        window.MouseLeftButtonDown += (s, e) =>
            {
                window.DragMove();
            };
        return EnableGlassEffect(window, true);
    }
     
    public static bool EnableGlassEffect(Window window, bool enabled)
    {
        return EnableGlassEffect(window, enabled, new Thickness(-1));
    }
     
    public static bool EnableGlassEffect(Window window, bool enabled, Thickness margin)
    {
        if (!VersionHelper.IsAtLeastVista)
        {
            // Go and buy Windows 7 ;-)
            return false;
        }
     
        if (!DwmIsCompositionEnabled())
        {
            return false;
        }
     
        if (enabled)
        {
            IntPtr hwnd = new WindowInteropHelper(window).Handle;
     
            // Hintergrundfarbe von Fenster Transparent darstellen
            window.Background = Brushes.Transparent;
     
            // Die Farbe festlegen auf die den Glaseffekt bekommt
            HwndSource.FromHwnd(hwnd).CompositionTarget.BackgroundColor = 
                Colors.Transparent;
     
            // Den Bereich für den Glaseffekt definieren
            MARGINS margins = new MARGINS(margin);
            
            // Glasseffekt aktivieren
            DwmExtendFrameIntoClientArea(hwnd, ref margins);
        }
        else
        {
            // Hintergrundfarbe des Fensters zurück auf die
            // Systemfarbe stellen
            window.Background = SystemColors.WindowBrush;
        }
     
        return true;
    }

    In dieser Klasse werden zwei Methoden aus dwmapi.dll Import die vom System zur Verfügung gestellt werden.

    Die Klasse VersionHelper stellt eine kleine Versionsprüfungsmethode zur Verfügung, um zu checken ob man sich überhaupt auf einem Vista- oder Windows 7-Rechner befindet.

    /// <summary>
    /// Helpmethods for OS Version checks
    /// </summary>
    public class VersionHelper
    {
        /// <summary>
        /// OS is at least Windows Vista
        /// </summary>
        public static bool IsAtLeastVista
        {
            get 
            {
                if (Environment.OSVersion.Version.Major < 6)
                {
                    Debug.WriteLine("How about trying this on Vista?");
                    return false;
                }
                return true;
            }
        }
     
        /// <summary>
        /// OS is Windows 7 or higher
        /// </summary>
        public static bool IsWindows7orHigher
        {
            get
            {
                if (Environment.OSVersion.Version.Major == 6 &&
                    Environment.OSVersion.Version.Minor >= 1)
                {
                    return true;
                }
                else if (Environment.OSVersion.Version.Major > 6)
                {
                    return true;
                }
                else
                {
                    return false;
                }
            }
        }
    }

     

     

    Download

  • o-LIVE-r

    Beherrsche die Maschine und gewinn eine Reise nach Las Vegas

    • 1 Comments

    An alle Windows 7 Maschinisten und clip_image001solche die es werden wollen. Gewinn eine unvergessliche Reise nach Las Vegas.

    Dein Auftrag

    Du bist der Maschinist und nur du kennst die Maschine wirklich. Welche Funktion suchst du in deinem System vergeblich? Die Mäusejagd, das Schneetreiben oder etwas ganz Anderes? Stell dich der Herausforderung und baue deine eigene verrückte Wunsch-Anwendung. Dabei sollte mindestens eine der vielen neuen Windows 7 Funktionen verwendet werden. Lade dir dein Werkzeug kostenlos herunter und zeig wie kreativ du bist. Wie dein Windows 7 aussehen soll – das kannst du jetzt selbst bestimmen.

    Die Anforderungen:

    • Programmiert für Windows 7
    • Verwendung einer Version von Visual Studio 2010
    • .NET Framework oder Visual C++ basierend
    • Verwendung von Windows 7 Funktionen
    • Möglichst wenig Zeilen (gibt Pluspunkte)
    • Sämtliche Bestandteile (Bibliotheken, Bilder, etc.) müssen mit eingereicht werden
    • Der Teilnehmer muss die Software selber erstellt haben und sämtliche Rechte an allen eingebundenen Bestandteilen besitzen.

    Dein Lohn

    Wir wissen wie viel Sorgfalt und Herzblut in so einem kurzen Code stecken kann, deshalb möchten wir deinen Einsatz entsprechend belohnen. Den drei Gewinnern mit den kreativsten Desktop-Anwendungen schenken wir die perfekte Auszeit. Mit diesen Hauptpreisen können alle hart arbeitenden Maschinisten richtig abschalten:

    Die Hauptgewinne der ersten drei Plätze sind je ein:

    Großer Las Vegas Gambling-Trip mit Besuch der MIX und Helikopterflug.

    Dieser Trip besteht aus:

    • Flug nach Las Vegas inkl. Flughafentransfer per Limousine
    • Besuch der MIX 2011, der Microsoft-Konferenz für Web-Entwickler
    • 6 Übernachtungen im Mandalay Bay Hotel
    • 300 US$ in Gambling Chips zum Verzocken
    • Helikopterflug zum Grand Canyon inkl. Transfer

    Unsere Jury prüft alle eingehenden Applikationen ausführlich und stellt die besten Arbeiten online vor. Anschließend geben sie die Gewinner der drei Hauptpreise sowie die der anderen tollen Gewinne bekannt.

    1. Preis: Großer Las Vegas Gambling-Trip mit Besuch der MIX und Helikopterflug.
    2. Preis: Großer Las Vegas Gambling-Trip mit Besuch der MIX und Helikopterflug.
    3. Preis: Großer Las Vegas Gambling-Trip mit Besuch der MIX und Helikopterflug.
    4. Preis: 40‘‘ Sony LCD Flatscreen TV KDL-40NX715 bietet Full HD und 3D im brillianten Design, dazu bekommst du das Sony Sound System mit 3D-fähigem BluRay BDV-IZ1000W
    5. Preis: Xbox mit Kinect, 1x Controller sowie den 3 Spielen Kinect Adventures, Kinect Sports und Dance Central
    6. Preis: Windows Phone7 (LG Optimus 7)
    7. Preis: Paket mit Maus, Tastatur und Headset

    Unsere Jury prüft alle eingehenden Applikationen ausführlich und stellt die besten Arbeiten online vor. Anschließend geben sie die Gewinner der drei Hauptpreise sowie die der anderen tollen Gewinne bekannt.

    Deine Werkbank

    Wir haben dir deine Werkbank schon eingerichtet – jetzt heißt es nur noch: downloaden, in die Hände spucken und sofort loslegen. Auf der kostenfreien Werkbank findest du das Codeplex Projekt Windows 7 To Go mit über 60 Beispielen zu Funktionen von Windows 7, Internet Explorer und Silverlight. Nutze die Sourcecodes und Bibliotheken um einzelne Funktionen direkt in deine Anwendung einzubauen. Hier findest du alle Werkzeuge, die du brauchst – ganz einfach und kostenlos zum Downloaden.

    Werkbank downloaden

    Visual Studio Express downloaden

    Windows API Code Pack downloaden

    Loslegen.

    Dein Werkstück

    Deine Arbeit sollte aus möglichst wenigen Zeilen Code bestehen – denn kurze Codes bekommen eine höhere Chance zu gewinnen. Darüber hinaus muss deine Desktop Anwendung folgende Merkmale aufweisen:

    Programmiert für Windows 7

    • Verwendung einer Version von Visual Studio 2010
    • .NET Framework oder Visual C++ basierend
    • Verwendung von Windows 7 Funktionen
    • Möglichst wenig Zeilen (gibt Pluspunkte)
    • Sämtliche Bestandteile (Bibliotheken, Bilder, etc.) müssen mit eingereicht werden
    • Der Teilnehmer muss die Software selber erstellt haben und sämtliche Rechte an allen eingebundenen Bestandteilen besitzen.

    Wir wünschen dir viel Spaß beim Bauen und freuen uns schon auf verrückte Ideen und kreative Arbeiten.

    Einsendeschluss

    28.02.2011

    Weitere Informationen und Teilnahmebedingungen

    clip_image002

    http://www.windows7.de/maschine

  • o-LIVE-r

    Windows Phone GPS Emulator

    • 2 Comments

    Alle Windows Phone 7 haben GPS eingebauten. Die Nutzung auf einem echten Telefon funktioniert auch super. Nur leider zeigt der Emulator dort einige Schwächen. Um auch wechselnde Positionen im Windows Phone 7 Emulator testen zu können, gibt es jetzt eine GPS Emulator, der dem Telefon wechselnde Postion vortäuscht.

    image

    Der Download dazu befindet sich hier.

  • o-LIVE-r

    Windows 7: Wie aktiviert man den Aero Glas Effekt in Windows Forms Anwendungen?

    • 1 Comments

    Der Aero Glas Effekt verleiht Windows seit Vista eine neue Optik. Fensterrahmen werden durchsichtig dargestellt und erlauben damit etwas Durchblick auf die Anwendungen die sich dahinter verbergen. Einige Windows-Anwendungen nutzen diesen Effekt allerdings auch um mehr Fläche im Glasoptik darzustellen.

    Beispiel

    image

    Dieser Effekt kann sehr leicht für bestehende Windows Forms-Anwendungen aktiviert werden.

    static class Program
    {
        [STAThread]
        static void Main( )
        {
            Application.EnableVisualStyles( );
            Application.SetCompatibleTextRenderingDefault( false );
            Application.Run( new Form1( ) );
        }
    }

    Mit der Methode EnableVisualStyles werden die visuellen Stile für die Anwendung aktiviert. Steuerelemente werden unter Verwendung der visuellen Stile gezeichnet, sofern Steuerelement und Betriebssystem dies unterstützen. Damit dies wirksam wird, muss vor dem Erstellen von Steuerelementen in der Anwendung EnableVisualStyles aufgerufen werden. Typischerweise ist EnableVisualStyles die erste Zeile der Main-Funktion. Beim Aufrufen von EnableVisualStyles ist zum Aktivieren der visuellen Stile kein eigenes Manifest erforderlich.

    SetCompatibleTextRenderingDefault legt für die gesamte Anwendung die Voreinstellung für die UseCompatibleTextRendering-Eigenschaft fest, die in bestimmten Steuerelementen definiert ist.

    Video

    Get Microsoft Silverlight

    Demodownload

  • o-LIVE-r

    Ideen für verrückte Windows 7-Anwendungen (Teil 1)

    • 0 Comments

    Wie wäre es wenn man Windows mal richtig wörtlich nimmt und aus dem Desktop eine echte Glasscheibe machen würde.

    image

    Man nimmt einfach einen Screenshot vom aktuellen Desktop, zeigt diesen Bildschirm füllend an und bei jedem Mausklick wird Loch in die Fenster scheibe eingefügt. Ein Beispiel wie dies in Silverlight funktioniert ist hier zu finden.

  • o-LIVE-r

    Videos der letzten Woche

    • 0 Comments

    Ich weiß ja nicht was ihr gemacht habt, aber ich war fleißig in der ersten Januarwoche.Smiley

    Die Videos der letzten Woche:

    Windows 7: Aero Glass in eigene WPF-Anwendungen integrieren

    Windows 7: Aero Glass in Windows Forms-Anwendungen integrieren

    Windows 7: Voicerecorder mit Autotune-Funktion in .NET

    Silverlight: Out of Browser-Meldungen

    Windows 7: Silverlight Development Kit

    Windows 7: Spracherkennung und –ausgabe

    Schöne Grüße,

    Der Oliver

  • o-LIVE-r

    Windows Phone 7 Design Tutorials

    • 0 Comments

    .toolbox hat eine Reihe von Windows Phone 7 Tutorials für das Design von Apps veröffentlicht:

    Weitere "Kurse” gibt es hier.

  • o-LIVE-r

    Leisure-Suit Larry is back in HTML5

    • 0 Comments

    image

    Mehr Informationen: http://www.sarien.net/larry

  • o-LIVE-r

    Coding4Fun Toolkit Version 1 für Windows Phone veröffentlicht

    • 0 Comments

    Coding4Fun hat ein Toolkit für Windows Phone 7-Steuerelemente veröffentlicht. Darin enthalten sind diverse neue Steuerelemente, die so derzeit nicht im Basis-SDK für Windows Phone 7 enthalten sind, wie z.B.:

    • About Prompt
    • Input Prompt
    • Progress Overlay
    • Round Button
    • Round Toggle Button
    • Memory Counter
    • TimeSpan Picker

    image

    Mehr Informationen und Download

  • o-LIVE-r

    MSDN-On-Tour–Tag 0–Der Bus ist da …

    • 0 Comments

    Heute bei Microsoft in Unterschleißheim reingerollt … der MSDN-Tour Bus. Der erste Mitfahrer ist auch schon da.

    image

    http://www.msdn-on-tour.de/

  • o-LIVE-r

    Selbst mich kann Windows 7 noch überraschen …

    • 2 Comments

    … da sitze ich den ganzen Abend an meinem Rechner und versuche den Canon MP510 Multifunktionsdrucker und –scanner unter Windows 7 in Betrieb zu nehmen. Vielen Dank Canon, nach dem Download von über 50 MB an Treiber kann ich dennoch nicht Scannen. Ihr gebt mir eine Fehlermeldung mit der man ja mal gar nichts anfangen kann.

    image

    Ich brauche aber ganz dringend meinen Scanner …

    … und was ist des Rätsels Lösung? Windows 7 hat doch tatsächlich ein Fax- und Scan-Programm dabei … unfassbar. Hab ich mein Leben noch nichts von gehört, und wer hat mich drauf gebraucht? Meine Frau. Danke, danke, danke Smiley

    image

  • o-LIVE-r

    Lösen von Windows Phone 7 Debugging Problemen

    • 0 Comments

    Auf diesen Hinweis haben bestimmt viele gewartet (ich selbst auch). Aus dem Blog meines Kollegen Max Knor kommt die folgende Hilfe

    Kennen Sie folgendes Problem? Videos spiele nicht, wann immer sie die Applikation debuggen? Sobald Sie die Applikation ohne Debugger (& Kabel) starten spielt das Video?

    Das Problem liegt nicht am Debugger, sondern am ZUNE Client. Dieser überträgt nicht nur Debugging Informationen sondern ist auch für die Synchronisation von Videos, Bildern & Marketplace Infos zuständig.

    Aus diesem Grund SPERRT der ZUNE Client am Phone die entsprechenden Applikationen, solange der Client läuft. Sie sehen dann folgenden Bildschirm, wenn Sie z.B. in die “Bilder” Applikation gehen:

    Photo_7B72BED8-EF8A-7DB8-3FA9-4818875BBD81

    Anders wenn Sie ein MediaElement in Ihrer Anwendung verwenden – dann kommt lediglich einMediaFailed Event.

    Was ist nun die Lösung dieses Problems? Etwa auf Debugigng bei Videos verzichten? Weit gefehlt!

    Laden Sie sich dieses Update für die WP7 Developer Tools herunter!

    Danach finden sie die WPConnect.exe im Verzeichnis C:\Program Files (x86)\microsoft sdks\Windows Phone\v7.0\Tools\WPConnect\.

    Schließen Sie den Zune Client und starten statt dessen WPConnect.exe. Fertig! Nun können Sie Videos, Marketplace und andere Dinge in Ihrer Applikation nutzen, obwohl das Phone für Debugging mittels Kabel mit dem PC verbunden ist.”

    Mehr Informationen von Max Knor hier.

  • o-LIVE-r

    MSDN on Tour–Quer durch Deutschland–Auch vor deiner Tür

    • 2 Comments

    image

    MSDN, das Microsoft Developer Network, geht mit hochwertigen Vorträgen zu aktuellstem Entwicklerwissen im technikbeladenen, komfortablen MSDN-Bus auf Deutschland-Tour und macht auch in Ihrer Nähe Halt.

    Nutzen Sie als Entwickler die Möglichkeit, im MSDN-Bus direkt von Microsoft-Referenten das Neuste aus der Softwareentwicklung erfahren und aktuelle Technik hautnah erleben zu können. Sei es Visual Studio 2010, Web-Entwicklung und Internet Explorer 9, Cloud-Dienste wie Windows Azure, das Schreiben von sicherem Code oder eines vieler weiterer Themen, etwa Windows Phone 7 oder Open Source & Standards bei Microsoft.

    Mehr Informationen gibt es unter http://www.msdn-on-tour.de/

  • o-LIVE-r

    Multi-Touch Manipulation-Behavior für Silverlight und Windows Phone 7

    • 0 Comments

    Auf der Expression Code Gallery gibt es sehr leicht zu verwendende Behaviors für Silverlight und Windows Phone mit dem man Multi-Touch-Manipulationen wie Schieben, Skalieren und Rotieren in eigene Anwendungen bekommt.

    image

    Mehr Informationen und Download hier.

  • o-LIVE-r

    Avatar Kinect Chat …

    • 0 Comments

    Chatten war gestern. Kinect Chat ist die Zukunft, zumindest bis das Beamen richtig funktioniert.

  • o-LIVE-r

    Oberflächen mit PixelShadern bearbeiten

    • 0 Comments

    In diesem Beispiel möchte ich zeigen, wie leicht man Effekte mit Pixelshadern auf den Bildschirm zaubern kann.

    Dazu erstellen wir hier eine kleine Anwendung, die als erstes einen Screenshot vom aktuellen Bildschirm macht und dem Benutzer im Vollbild anzeigt. Genau genommen bedeutet das, das wir dem Benutzer versuchen zu seinen Originalbildschirm vorzutäuschen und mit einigen Effekten zu versehen.

    Dazu erstellen wir als erstes eine neue Windows Presentation Foundation-Anwendung mit Visual Studio:

    image

    Als nächsten machen wir einen Screenshot vom Bildschirm.

    Wie erstellt man einen Screenshot vom aktuellen Bildschirm?

    In der .NET-Bibliothek “System.Windows.Forms” befindet sich der Namespace SystemInformation. Mit diesem lassen sich Informationen über den Bildschirm ermitteln. Diese nehmen wir als Hilfe für die CaptureScreen-Methode

     
    public Bitmap CaptureScreen()
    {
        Bitmap bmp = new Bitmap(SystemInformation.VirtualScreen.Width, SystemInformation.VirtualScreen.Height);
        Graphics g = Graphics.FromImage(bmp);
        g.CopyFromScreen(0, 0, 0, 0, bmp.Size);
        g.Dispose();
        return bmp;
    }

    Die Bitmap-Klasse befindet sich in der Bibliothek “System.Drawing”.

    Um aus einem Bitmap eine BitmapSource für ein WPF-Image machen zu können benötigt man die folgende Methode:

     
        public static BitmapSource CreateBitmapSource(System.Drawing.Bitmap bmp)
        {
            return Imaging.CreateBitmapSourceFromHBitmap(
                bmp.GetHbitmap(),
                IntPtr.Zero,
                Int32Rect.Empty,
                BitmapSizeOptions.FromEmptyOptions());
        }

    Diese Methode rufen wir direkt zum Start auf, und weisen das Ergebnis einem Image-Objekt zu, das wir in der MainWindow.xaml wie folgt definiert haben.

    <Window
        x:Class="PixelShaderWPF.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow"
        Height="350"
        Width="525">
        <Grid>
            <Image
                x:Name="backgroundImage" />
        </Grid>
    </Window>

    Der gesamte Code bisher:

    public partial class MainWindow : Window
    {
       public MainWindow()
       {
           InitializeComponent();
     
           // Create Screen Shot
           Bitmap bmp = CaptureScreen();
           BitmapSource bmpSrc = CreateBitmapSource(bmp);
           backgroundImage.Source = bmpSrc;
       }
     
       public Bitmap CaptureScreen()
       {
           Bitmap bmp = new Bitmap(SystemInformation.VirtualScreen.Width, SystemInformation.VirtualScreen.Height);
           Graphics g = Graphics.FromImage(bmp);
           g.CopyFromScreen(0, 0, 0, 0, bmp.Size);
           g.Dispose();
           return bmp;
       }
     
       public static BitmapSource CreateBitmapSource(System.Drawing.Bitmap bmp)
       {
           return Imaging.CreateBitmapSourceFromHBitmap(
               bmp.GetHbitmap(),
               IntPtr.Zero,
               Int32Rect.Empty,
               BitmapSizeOptions.FromEmptyOptions());
       }
    }

    Wenn wir die Anwendung nun starten, erhalten wir die folgende Ansicht:

    image

    Bitte nicht wundern, ich habe zwei Bildschirme, und die Screenshot-Methode macht direkt von beiden einen Screenshot.

    Jetzt wollen wir dem Benutzer dieses Bild über seinen gesamten Bildschirm legen und ihn damit vormachen, er würde auf seinem normalen Bildschirm arbeiten. Damit er aber jederzeit wieder in den normalen Modus kommt, geben wir ihm einen Schließen-Button.

    <Button
        x:Name="closeWindow"
        Content="Close Fake App"
        Click="closeWindow_Click" 
        VerticalAlignment="Top"
        HorizontalAlignment="Right"/>

    Dahinter liegt der folgende Eventhandler:

    private void closeWindow_Click(object sender, RoutedEventArgs e)
    {
        App.Current.Shutdown();
    }

    Wie kann man am leichtesten seine Anwendung in den Vollbildschirm-Modus schalten?

    Die Windows-Bibliothek user32.dll beinhaltet Funktionen mit denen man seinen Bildschirm “screenshoten” kann. Diese Funktionalität habe ich in die Klasse FullScreenHelper ausgelagert, damit der Code übersichtlich bleibt.

    public static class FullScreenHelper
    {  
        public static void GoFullscreen(this Window window)  
        {      
            // Make window borderless      
            window.WindowStyle = WindowStyle.None;      
            window.ResizeMode = ResizeMode.NoResize;      
            
            // Get handle for nearest monitor to this window      
            WindowInteropHelper wih = new WindowInteropHelper(window);      
            IntPtr hMonitor = MonitorFromWindow(wih.Handle, MONITOR_DEFAULTTONEAREST);      
     
            // Get monitor info      
            MONITORINFOEX monitorInfo = new MONITORINFOEX();    
            monitorInfo.cbSize = Marshal.SizeOf(monitorInfo);     
            GetMonitorInfo(new HandleRef(window, hMonitor), monitorInfo);    
     
            // Create working area dimensions, converted to DPI-independent values  
            HwndSource source = HwndSource.FromHwnd(wih.Handle);    
            if (source == null) return; 
            // Should never be null     
            if (source.CompositionTarget == null) 
                return; 
     
            // Should never be null     
            Matrix matrix = source.CompositionTarget.TransformFromDevice;    
            RECT workingArea = monitorInfo.rcMonitor;    
            Point dpiIndependentSize =       
                matrix.Transform(         
                new Point(            
                    workingArea.Right - workingArea.Left,  
                    workingArea.Bottom - workingArea.Top));   
            // Maximize the window to the device-independent working area ie   
            // the area without the taskbar.    
            // NOTE - window state must be set to Maximized as this adds certain  
            // maximized behaviors eg you can't move a window while it is maximized, 
            // such as by calling Window.DragMove     
            window.MaxWidth = dpiIndependentSize.X;    
            window.MaxHeight = dpiIndependentSize.Y;     
            window.WindowState = WindowState.Maximized;
        }  
        
        // Nearest monitor to window  
        const int MONITOR_DEFAULTTONEAREST = 2; 
        
        // To get a handle to the specified monitor  
        
        [DllImport("user32.dll")]  
        static extern IntPtr MonitorFromWindow(IntPtr hwnd, int dwFlags); 
     
        // To get the working area of the specified monitor 
        [DllImport("user32.dll")] 
        public static extern bool GetMonitorInfo(HandleRef hmonitor, [In, Out] MONITORINFOEX monitorInfo);  
        
        // Rectangle (used by MONITORINFOEX)  
        [StructLayout(LayoutKind.Sequential)]  
        public struct RECT 
        {     
            public int Left;   
            public int Top;     
            public int Right;     
            public int Bottom;  
        } 
        
        // Monitor information (used by GetMonitorInfo()) 
        [StructLayout(LayoutKind.Sequential)]  
        public class MONITORINFOEX  
        {   
            public int cbSize;  
            public RECT rcMonitor;
            // Total area   
            public RECT rcWork;
            // Working area  
            public int dwFlags;  
            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 0x20)]     
            public char[] szDevice;
        }
    }

    Diese verwenden wir direkt zu beginn in unserer Anwendung im Loaded-Ereignis.

    this.Loaded += (s, e) =>
        {
            // Activate Fullscreen
            FullScreenHelper.GoFullscreen(this);
        };

    Möchte man nun auf diesen Fake-Bildschirm einen Pixelshader-Effekt anwenden, kann man sehr einfach einen der einbauten Effekte, wie z.B. Blur verwenden. Dazu habe ich einige Buttons in die MainWindow.xaml eingebaut und mit Eventhandlern versehen.

    <StackPanel 
        HorizontalAlignment="Left">
        <Button
            Content="Reset all Effects"
            x:Name="resetEffects"
            Click="resetEffects_Click" />
        <Button
            Content="Blur Effect"
            x:Name="blurEffect" 
            Click="blurEffect_Click"/>
        <Button
            Content="Monochrome Effect"
            x:Name="monochromeEffect"
            Click="monochromeEffect_Click" />
    </StackPanel>

    Die Eventhandler sind wie folgt definiert in der MainWindow.xaml.cs-Datei:

    private void blurEffect_Click(object sender, RoutedEventArgs e)
    {
       System.Windows.Media.Effects.BlurEffect blur = new System.Windows.Media.Effects.BlurEffect();
       backgroundImage.Effect = blur;
    }
     
    private void monochromeEffect_Click(object sender, RoutedEventArgs e)
    {
       Microsoft.Samples.ShaderEffects.MonochromeEffect monochrome = new Microsoft.Samples.ShaderEffects.MonochromeEffect();
       backgroundImage.Effect = monochrome;
    }
     
    private void resetEffects_Click(object sender, RoutedEventArgs e)
    {
       backgroundImage.Effect = null;
    }

    Wichtiger Hinweis: Leider bringt WPF nur wenige Pixelshader-Effekte mit sich. Weitere Pixelshader befinden sich in allerdings im Win7ToGo-Projekt auf Codeplex (Link)

    Der Blur-Effekt sieht da wie folgt aus:

    image

    Der Monochrome-Effekt sieht so aus:

    image

    Damit kann man schon so manchen Benutzer “verwirren” und einige Späße machen.

    Treibt man nun das Ganze etwas weiter, so kann man die Effekte auch mit Animationen verbinden. Ein Beispiel wäre z.B. das man beim Klicken der Maus einen Ripple/Tropfen-Effekt auf die Oberfläche zaubert.

    image

    Dazu benötigt man wirklich nicht viel Code.

    void MainWindow_MouseLeftButtonDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
    {
        System.Windows.Point p = e.GetPosition(this);
        Microsoft.Samples.ShaderEffects.RippleEffect ripple = new Microsoft.Samples.ShaderEffects.RippleEffect();
        
        double centerX = p.X / backgroundImage.ActualWidth;
        double centerY = p.Y / backgroundImage.ActualHeight;
        ripple.Center = new System.Windows.Point(centerX, centerY);
        ripple.Amplitude = .5;
        ripple.Frequency = 50;
        ripple.Phase = 0;
        
        backgroundImage.Effect = ripple;
     
        DoubleAnimation da = new DoubleAnimation();
        da.From = 0;
        da.To = 50;
        da.AutoReverse = true;
     
        da.Duration = new Duration(TimeSpan.FromSeconds(5));
        ripple.BeginAnimation(Microsoft.Samples.ShaderEffects.RippleEffect.FrequencyProperty, da);
    }

    Das gesamte Beispiel kann hier heruntergeladen werden: Codeplex-Projekt

  • o-LIVE-r

    Mit einem Behavior den Glaseffekt in WPF aktivieren

    • 0 Comments

    In der Expression Code Gallery gibt es zum freien Download ein Behavior mit dem man via Drag und Drop in Expression Blend, den Glass-Effekt in eigenen Fenstern innerhalb seiner Anwendung nutzen kann.

    image

    Mehr Informationen und download hier.

  • o-LIVE-r

    Finde den Fehler in diesem Bild :-)

    • 4 Comments

    image

    Wer findet den Fehler? Zwinkerndes Smiley

  • o-LIVE-r

    Silverlight: Out-Of-Browser-Meldungen-How To

    • 0 Comments

    Ein neues Feature in Silverlight 4, ist die Möglichkeit Meldungen von Out-Of-Browser-Anwendungen so darzustellen, wie man es bisher nur von Systemmeldungen aus dem Systemtray oder von Outlook her kannte. Dadurch bekommt man viele neue Möglichkeiten und Szenarien für Anwendungen bereitgestellt.

    Das folgende Video demonstriert, wie man diese Technik für einen Live-Ticker benutzen könnte.

    Get Microsoft Silverlight

    Wie kann man nun dieses Feature in eigene Silverlight-Anwendungen integrieren?

    Als erstes muss die Anwendung Out-Of-Browser fähig sein. Das kann über die Einstellungen des Projektes realisiert werden.

    image

    Damit man etwas außerhalb der eigentlichen Anwendung etwas darstellen kann benötigt man ein NotificationWindow. Das NotificationWindow ist ein Container für die eigentliche Darstellung der Meldung.

    Die Meldung gestaltet man am besten als Steuerelement/Control, dann hat man die besten Designmöglichkeiten.

    Für die Darstellung werden lediglich die folgenden wenigen Zeilen Code benötigt.

    NotificationWindow _nw;
    FootballControl _football = new FootballControl();
    int _goals;
     
    private void _showInfo_Click(object sender, RoutedEventArgs e)
    {
        if (_nw == null)
        {
            _nw = new NotificationWindow();
        }
     
        _nw.Content = _football;
        _nw.Width = 220.0;
        _nw.Height = 100;
        _nw.Show(5000);
     
        DispatcherTimer _timer = new DispatcherTimer();
        _timer.Interval = new TimeSpan(0, 0, 15);
        _timer.Tick += (s, e1) =>
            {
                _goals++;
                _football.Team1 = _goals.ToString();
                _nw.Show(5000);
            };
        _timer.Start();
    }

     

    Download des Sourcecodes

  • o-LIVE-r

    Herzlich Willkommen im Jahr 2011

    • 0 Comments

    Hallo, herzlich Willkommen im Jahr 2011. Ich hoffe das jeder gut rübergekommen ist. Jetzt müssen wir noch schnell die erste Woche mit ihren nervigen “Frohes Neues”-Sprüchen hinter uns bringen.

    Ich wünsch allen ein erfolgreiches Jahr 2011 … ich hoffe wir sehen, sprechen und hören uns ….

    The-Oliver



  • o-LIVE-r

    Wem ist Windows 7-Programmierung zu kompliziert?

    • 2 Comments

    Liebe Entwickler,

    Windows 7 – Programmierung ist einfach, wirklich!!!!!

    Wenn Ihnen die Entwicklung zu kompliziert erscheint, sagen sie mir Bescheid, ich helfen Ihnen weiter und zeige ihnen in wenigen Zeilen Code, das dem nicht so ist.

    Also fordern sie mich heraus.

    Schöne Grüße,
    Oliver

  • o-LIVE-r

    Wettbewerb: Ideen für das “Digitale München”

    • 1 Comments

    Bin gerade darauf gestoßen, das meine Wahlheimat noch sehr viel Potential bezüglich ihrer Digitalisierung hat. Der Wettbewerb – Ihre Ideen für das “Digitale München” sucht nach Ideen von Münchenern für Münchener. Für Entwickler ist dieser Wettbewerb insofern interessant, als das er auch viele “Daten” liefert, was man als Apps alles entwickeln könnte.

    Mehr Informationen gibt es hier.



  • o-LIVE-r

    Visual Studio Tipp: Fensterlayout reseten

    • 0 Comments

    Wir kennen das alle, wir arbeiten stunden- oder gar tagelang mit Visual Studio und verschieben kräftig Fenster und finden nachher nix mehr wieder.

    image

    Da hilft einfach das Reseten des Fensterlayouts.

    Tasten:  ALT + W, R
    Menu:   Window | Reset Window Layout
    Command:  Window.ResetWindowLayout
    Versionen:  2005, 2008, 2010

    Drückt man die Tastenkombination ALT+W, R erhält man den folgenden Dialog:

    image

    Bestätigt man diesen, wird die Oberfläche wieder in den Initialzustand gebracht.

    image

  • o-LIVE-r

    Wie man Flash Mobs mit einem Telefon koordinieren könnte ;-)

    • 0 Comments

    Für ein Marketingvideo sehr nett gemacht …

    Besonders schön finde ich, das ich den Pioneer Square tatsächliche kenne und dort bald wieder in meinem Lieblingskaffeeladen sitzen werde.

Page 1 of 3 (54 items) 123