WPF: Resizeable Grid

2. Dezember 2011

Oft ist es notwendig in seinen Anwendungen den User die Mögichkeit zu bieten, das Layout an seine Bedürfnisse anzupassen. Eine der einfachsten Arten ist hierbei die einzelnen Bereiche in der Größe anpassbar zu machen.

Bei WPF gibt es für diesen Zweck den GridSplitter, mit welchen man einzelne Zeilen (Rows) oder Spalten (Columns) des Grids verschieben kann. Mit wenigen Zeilen XMAL-Code sind auch komplexere Strukturen leicht und einfach zu realisieren.

Beispiel:

<Grid Grid.Row="1">
    <Grid.RowDefinitions>
        <RowDefinition Height="150" />
        <RowDefinition Height="Auto" />
        <RowDefinition Height="*" />
    </Grid.RowDefinitions>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="200" />
        <ColumnDefinition Width="Auto" />
        <ColumnDefinition Width="*" />
    </Grid.ColumnDefinitions>
 
    <Rectangle Fill="Red" Grid.Column="0" Grid.Row="0" Grid.RowSpan="3" />
    <Rectangle Fill="Blue" Grid.Column="2" Grid.Row="0" />
    <Rectangle Fill="Green" Grid.Column="2" Grid.Row="2" />
 
    <GridSplitter Grid.Column="1" Grid.Row="0" Grid.RowSpan="3" Width="5" VerticalAlignment="Stretch" HorizontalAlignment="Left" ShowsPreview="True" />
    <GridSplitter Grid.Column="2" Grid.Row="1" Height="5" HorizontalAlignment="Stretch" VerticalAlignment="Top" ShowsPreview="True" />
</Grid>

Das obige Beispiel erzeugt folgende Ausgabe:

Durch die Splitter (graue Linien zwischen den Farbigen Rechtecken) können die einzelnen Spalten beliebig vergrößert und verkleinert werden.

Die Eigenschaft “ShowsPreview” des GridSplitters ermöglicht es, vor dem eigentlichen Verschieben eine Vorschau anzuzeigen. Da hier nicht sofort verkleinert/vergrößert wird, sollte dies bei komplexeren Strukturen und Inhalten auch Geschwindigkeitsvorteile bringen.

Die Horizontal- und VerticalAliognment Eigenschaften sollten auch immer gesetzt werden da es sonst zu Problemen kommt. Es wird dann teilweise nicht die Inhalts-Zeile oder Spalte geändert, sondern die Zeile/Spalte in welcher sich der GridSplitter befindet.

{ 0 Kommentare } { 0 Shares }

jsonformatter.de

30. November 2011

Eine kleine kurze Meldung in eigener Sache. Nachdem ich bei vielen der im Web zahlreich vorhandenen JSON Formattierern und Validatoren feststellen musste, dass diese leider eine ziemlich knappe Zeichenbegrenzung haben, hab ich mich entschlossen schnell selber einen zu erstellen und online zu stellen. Diesen findet Ihr unter jsonformatter.de. Es ist nichts aufregendes und auch ziemlich simbel und einfach gehalten.

{ 0 Kommentare } { 0 Shares }

Office 2010 Optionen Dialog

Für ein Projekt hab ich ein an den Office 2010 Optionen Dialog (siehe Bild oben) angepasstes Control benötigt. Leider gibt es kein fertiges Control direkt von Microsoft. Jedoch handelt es sich meiner Meinung nach hierbei um ein einfaches TabControl, welches im Style entsprechend angepasst wurde. Dank WPF ist dies auch kein Problem. Mein Ergebnis sieht folgendermaßen aus:

An Office 2010 mit Styles angepasstes TabControl

Der XAML-Code für das komplette Window mit den ensprechenden Styles:
[weiterlesen]

{ 0 Kommentare } { 0 Shares }

Seit ich meinen Windows Home Server 2011 angeschafft habe hatte ich das Problem, dass der Windows Server-Hilfsdienst für Netzwerke ständig nach rund 10 Minuten Laufzeit abgestürzt ist. Der Dienst lies sich dann problemlos neustarten, jedoch stürzte dann immer wieder schnell ab. Es gab zwar keine Probleme mit der Erreichbarkeit, etc. jedoch hatte ich immer in der Meldungsanzeige des Servers einen Fehler was unschön war.

Windows Home Server Meldung

Im Ereignisprotokoll konnte ich einen .NET Runtime-Fehler sowie einen Application-Error finden der beim Absturz des Dienes ausgelöst wurde. Leider stand jedoch nichts in den Meldungen was mich zu einer Lösung führte.

Im offiziellen Windows Home Server Forum wurde nach längerer Zeit nun endlich eine Antwort auf meine Frage gepostet welche das Problem löst.

Die Lösung ist ganz einfach. Im Verzeichnis “C:\ProgramData\Microsoft\Windows Server\Data\TME” in sämtlichen drei Unterordnern (Costs, Results, EngineState) alle Dateien löschen und danach den Dienst neu starten.

Nach dieser Aktion läuft der Dienst bisher problemlos ohne weiteren Absturz

{ 0 Kommentare } { 0 Shares }

Ich hab heute zwei neue 3TB Festplatten von WD bekommen. Als ich die erste an meinem HTPC zum formatieren angesteckt habe, musste ich feststellen dass dort nur 746MB erkannt werden. Ich dachte, diese sei einfach nur defekt und nahm die zweite. Jedoch waren bei dieser auch nur exakt 746GB erkannt worden, so dass ich eigentlich einen defekt der HDD ausschließen konnte. Nachdem ich dann beide an einem anderem PC angesteckt habe, hatte ich dort die richtigen 2794GB Speicher. Das Problem musste also wo anders liegen.

Bei meiner Suche bin ich auf diesen Blogeintrag gestoßen. Das Problem ist die Intel Rapid Storage Technology. Wenn diese noch in der Version kleiner als 10.1 installiert ist, werden nur die erwähnen 746GB erkannt. Ein Update auf die aktuelle Version (10.6) löst das Problem.

{ 0 Kommentare } { 0 Shares }

Der Azure Compute Emulator läuft standardmäßig nur auf 127.0.0.1. Wenn man jetzt von außerhalb seines lokalen Computers zugreifen will um Tests, etc. zu fahren funktioniert dies leider nicht. Die einzige Anleitung die ich gefunden hab in welcher erklärt wird, wie man die IP-Adresse des Emulators ändert findet man im SyntaxC4 Blog. Leider funktioniert diese nicht wirklich bei mir. Das Projekt lässt sich dann nicht mehr starten.

Als Alternative hab ich nun das Port Forwarding Tool von QuantumQ heruntergeladen. Damit leide ich nun einfach die entsprechenden Ports auf die lokale IP-Adresse und Port des Emulators um. Ist nicht umbedingt die sauberste und schönste Lösung aber funktioniert ganz gut.

{ 0 Kommentare } { 0 Shares }

Silverlight und RichTextBox: XAML Export Problem

August 25, 2011

In einer RichTextBox kann mehr als nur Text stehen. So kann man z. B. auch ganz einfach Bilder oder andere beliebige UIElemente einfügen. Möchte man dann aber den Inhalt der RichTextBox speichern, wird man schnell festellen, dass das Xaml-Property der Box diese Elemente nicht beinhaltet. Es liefert nur ein leeres Run-Element an dieser Stelle. Andrew [...]

[weiterlesen]

Silverlight und RichTextBox: Paragraph beim einfügen eines kopierten Textes statt \r\n

August 25, 2011

Die Silverlight RichTextBox ermöglicht es eine TextBox zur Verfügung zu stellen, mittels welcher Benutzer einfach Ihre Texte formatieren können. Dabei werden die wichtigsten Aufgaben direkt vom Control erledigt und man selber muss sich um so gut wie nichts selber kümmern. Ein Problem gibt es jedoch beim einfügen von Text. Hierbei werden neue Zeile als \r\n [...]

[weiterlesen]

Visual Studio 2010 und Microsoft Touchmouse

August 18, 2011

Wer die neue Microsoft Touchmouse verwendet wird feststellen, dass das Scrolling in Visual Studio 2010 nicht funktioniert, wenn dieses als Administrator gestartet wurde (ist z. B. bei der Entwicklung von Windows Azure notwendig). Schuld daran ist das IntelliPoint Programm, welche die Gesten in Mouse-Befehle übersetzt. Da dieses mit normalen Berechtigungen gestartet wurde, darf es keine [...]

[weiterlesen]

T-Home Entertain mit Windows Media Center: Neue Senderliste

August 14, 2011

In diesem Beitrag habe ich beschrieben, wie man an seinem HTPC zumindest die öffentlich rechtlichen Fernsehsender über Enteratin von T-Home anschauen kann. Seit kurzem gibt es neue IP-Adressen für die meisten Sender. Daher hab ich die Senderlist aktualisiert und biete diese hier zum download an. Download: Senderliste Stand 14.08.2011 Sollte sich ein Fehler eingeschlichten haben, [...]

[weiterlesen]