Ist überhaupt kein Problem.
Lädst Dir den kostenlosen KAXAML herunter oder nehm den UltrEdit.
Ich weiß nicht, ob Deine Frage jetzt nur auf den Editor abzielte, oder auch auf die Vorgehensweise. Wenn der Hinweistext hier nicht hinpasst, könnt Ihrs ja wieder löschen.
Hier mal ein paar Punkte zur Vorgehensweise (beschrieben von einem Nichtprogrammierer):
1 Allgemeines
Allgemeine englischsprachige Informationen findet man unter: http://msdn.microsoft.com/en-us/library/system.windows.controls.aspx
Allgemeine deutschsprachige Informationen findet man unter: http://msdn.microsoft.com/de-de/library/system.windows.controls.aspx
Informationen zu Farben findet man unter: http://msdn.microsoft.com/de-de/library/system.windows.media.brushes.aspx
AutoCAD lässt nicht alle Möglichkeiten zu, die in diesem Dokument für xaml beschrieben sind.
Die nachfolgend beschriebenen Möglichkeiten sind in AutoCAD von mir getestet.
Geänderte XML-Dateien werden erst nach Neustart von AutoCAD angezeigt.
Bei der Auswahl der Helptopics kann der neue Inhalt allerdings schon als Tooltipp geprüft werden.
Bei Syntaxfehlern in der Datei, kann diese nicht geladen werden.
Zur Fehlersuche bietet sich das "Ausklammern" von Bereichen an.
<!-- ...........................
........................... -->
2 Neue XAML-Datei erstellen
2.1 Allgemeines
Um die Dateien übersichtlich zu halten, sollten nicht zu viele Hilfethemen in einer Datei enthalten sein (es bietet sich z.B. an, für jedes Menü oder für jede Multifunktion-Registerkarte eine eigene Datei anzulegen)
Die Dateibezeichnung sollte Rückschlüsse auf die Funktion ermöglichen
2.2 Grundgerüst
<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:src="clr-namespace:Autodesk.Windows;assembly=AdWindows">
...
</ResourceDictionary>
3 Hilfethema erstellen
<src:ProgressivePanel x:Key="xxxx_xxxx">
....
</src:ProgressivePanel>
Jedes Hilfethema wird in einem "ProgressivePanel" abgebildet.
Der Key ist das Schlüsselwort (ID) für die Hilfe.
<src:ProgressivePanel x:Key="Schlüsselwort">
....
</src:ProgressivePanel>
3.1 Thema bearbeiten
Ein ProgressivePanel kann einen Textblock oder ein Bild enthalten.
<src:ProgressivePanel x:Key="Schlüsselwort">
<TextBlock>Bla, bla, bla</TextBlock>
</src:ProgressivePanel>
<src:ProgressivePanel x:Key="Schlüsselwort">
<Image Source="c:\windows\web\wallpaper\blaues fenster.jpg" ></Image>
</src:ProgressivePanel>
Soll ein ProgressivePanel mehrere Einträge enthalten, müssen diese zusammengefasst (geklammert)werden.
Dies kann durch StackPanel, Border & StackPanel, DockPanel oder GroupBox erfolgen.
3.2 Beispiel (StackPanel)
<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:src="clr-namespace:Autodesk.Windows;assembly=AdWindows">
<src:ProgressivePanel x:Key="windows_wallpaper">
<StackPanel>
<TextBlock>Windows bietet sehr schöne Wallpaper.</TextBlock>
<Image Source="c:\windows\web\wallpaper\blaues fenster.jpg" ></Image>
<TextBlock>Bild 1: Blaues Fenster</TextBlock>
</StackPanel>
</src:ProgressivePanel>
</ResourceDictionary>
4 TextBlock
4.1 Eigenschaften des TextBlock
Einem TextPanel können Eigenschaften zugewiesen werden
Foreground="....." (Textfarbe)
Background="....." (Hintergrundfarbe)
Padding="5,10,5,10" (Rahmen links, oben, rechts, unten)
Padding="5" (Rahmen alle Seiten gleich)
Width="200" (Breite, max. 350)
FontSize="12" (Textgröße)
TextAlignment="....." (Textausrichtung center, left, right)
FontWeight="....." (Schriftbreite/Schriftdicke normal, heavy, u.s.w.)
4.2 Eigenschaften des Textes
Einem Text können Eigenschaften zugewiesen werden
<LineBreak/> (Zeilenumbruch)
<Bold>.....</Bold> (Fettschrift)
<Italic>.....</Italic> (Kursiv)
<Hyperlink>...</Hyperlink> (Darstellung als Hyperlink, nicht bedienbar)
<Run>.....</Run> (Eigenschaften einzelner Textteile wählbar)
<Run FontSize="12">..... (Textgröße)
<Run Foreground=".....">... (Textfarbe)
<Run Background=".....">..... (Hintergrundfarbe
Das heißt, die Definitionen für den Textblock, gelten für den gesamten Text.
Einzelne Texte in dem Textblock können trotzdem eine abweichende Definition erhalten (z.B. fett, unterstrichen, kursiv, andere Farbe, u.s.w.).
5 Image
5.1 Eigenschaften des Image-Blocks
Source="....." (Quelle der Bilddatei)
5.2 Eigenschaften des Image
Strech="....." (Einpassen des Bildes)
Mögliche Parameter sind:
Strech="None" (originale Abmessungen des Bildes, Anzeige erfolgt ab der linken oberen Ecke)
Strech="Uniform" (Zoom auf das größte Bildmaß Breite oder Höhe, das Verhältnis Breite/Höhe bleibt erhalten)
Strech="UniformToFill" (Zoom auf das kleinste Bildmaß Breite oder Höhe, das Verhältnis Breite/Höhe bleibt erhalten)
Strech="Fill" (Zoom auf das Ansichtsfenster, das Bild wird verzerrt dargestellt)
6 Darstellungsmöglichkeiten
Soll ein ProgressivePanel mehrere Einträge enthalten, müssen diese zusammengefasst werden. Das kann durch StackPanel, Border & StackPanel, DockPanel oder GroupBox erfolgen.
6.1 StackPanel
StackPanel ist eine einfache Klammer, die selbst keine weiteren Funktionen oder Eigenschaften besitzt
<src:ProgressivePanel x:Key="windows_wallpaper">
<StackPanel>
<TextBlock>Windows bietet sehr schöne Wallpaper.</TextBlock>
<Image Source="c:\windows\web\wallpaper\blaues fenster.jpg" ></Image>
<TextBlock>Bild 1: Blaues Fenster</TextBlock>
</StackPanel>
</src:ProgressivePanel>
6.2 Border
6.2.1 Allgemeines
Border ist ein Rahmen mit eigenen Eigenschaften. Soll ein Border mehrere Einträge enthalten, müssen diese (z.B. mit einem StackPanel) zusammengefasst werden
<src:ProgressivePanel x:Key="windows_wallpaper">
<Border>
<StackPanel>
<TextBlock>Windows bietet sehr schöne Wallpaper.</TextBlock>
<Image Source="c:\windows\web\wallpaper\blaues fenster.jpg" ></Image>
<TextBlock>Bild 1: Blaues Fenster</TextBlock>
</StackPanel>
</Border>
</src:ProgressivePanel>
6.2.2 Eigenschaften
BorderBrush="....." (Rahmenfarbe)
BorderThickness="....." (Rahmendicke)
CornerRadius="....." (Abrundung der Ecken"
Padding="5,10,5,10" (äußerer Rahmen links, oben, rechts, unten)
Padding="5" (äußerer Rahmen alle Seiten gleich)
6.3 Baumstruktur
Mit TreeView lässt sich eine Baumstruktur abbilden, die aber nicht bedienbar ist.
<TreeView>
...
</TreeView>
TreeViewItem beschreibt die einzelnen Zeilen der Baumstruktur, wobei die erste Zeile der Rubrikbeschreibung entspricht
<TreeView>
<TreeViewItem Header="Klaus Mustermann">
<TreeViewItem Header="Tel: 1234/987654"/>
<TreeViewItem Header="Email: klaus.mustermann@glob.xy"/>
</TreeViewItem">
</TreeView>
+ Klaus Mustermann
Tel: 1234/987654
Email: klaus.mustermann@glob.xy
Es können beliebig viele TreeViewItem-Abschnitte angeordnet werden.
<TreeView>
<TreeViewItem Header="Klaus Mustermann">
<TreeViewItem Header="Tel: 1234/987654"/>
<TreeViewItem Header="Email: klaus.mustermann@glob.xy"/>
</TreeViewItem">
<TreeViewItem Header="Eva Mustermann">
<TreeViewItem Header="Tel: 1234/88443322"/>
<TreeViewItem Header="Email: eva.mustermann@glob.xy"/>
</TreeViewItem">
</TreeView>
+ Klaus Mustermann
Tel: 1234/987654
Email: klaus.mustermann@glob.xy
+ Eva Mustermann
Tel: 1234/88443322
Email: eva.mustermann@glob.xy
6.4 DockPanel
Mit DockPanel lassen sich in einem Bereich Spalten und Zeilen andocken.
<DockPanel LastChildFill="True">
Die Restfläche wird benutzt.
<Border Height="25" Background="SkyBlue" BorderBrush="Black"
BorderThickness="1"
DockPanel.Dock="Top">
<TextBlock Foreground="Black">Dock = "Top"</TextBlock>
</Border>
Dieses Element wird als oberste Zeile eingefügt (Top)
<Border Height="25" Background="SkyBlue" BorderBrush="Black"
BorderThickness="1"
DockPanel.Dock="Top">
<TextBlock Foreground="Black">Dock = "Top"</TextBlock>
</Border>
Dieses Element wird als nächste Zeile oben eingefügt (Top)
<Border Height="25" Background="LemonChiffon" BorderBrush="Black"
BorderThickness="1"
DockPanel.Dock="Bottom">
<TextBlock Foreground="Black">Dock = "Bottom"</TextBlock>
</Border>
Dieses Element wird als unterste Zeile eingefügt (Bottom)
<Border Width="200" Background="PaleGreen" BorderBrush="Black"
BorderThickness="1"
DockPanel.Dock="Left">
<TextBlock Foreground="Black">Dock = "Left"</TextBlock>
</Border>
Dieses Element wird als Links Spalte in dem noch freien bereich eingefügt (Left)
<Border Background="White" BorderBrush="Black" BorderThickness="1">
<TextBlock Foreground="Black">This content will "Fill" the remaining space
</TextBlock>
</Border>
Dieses Element füllt die restliche verfügbare Fläche (Fill)
6.5 GroupBox
Mit GroupBox lassen sich Rahmen mit Titel erstellen
Die GroupBox kann mit Border (ohne Dicke und Farbe) etwas vom Rand weg gezogen werden innerhalb der GroupBox kann mit StackPanel eine Klammer erzeugt werden
Sollen die GroupBox und die darin enthaltenen Texte unterschiedliche Farben haben, muß bei beiden Foreground definiert werden
6.6 Grid
Grid bildet ein Raster in X- und Y-Richtung.
Damit lässt sich eine Tabellenstruktur abbilden.
Für jede Zelle muß eine ColumnDefinition und RowDefinition definiert werden und ein Textblock erzeugt werden.
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>
<TextBlock FontSize="12" FontWeight="Bold" Grid.Row="0" Grid.Column="0">Quarter
1-1</TextBlock>
<TextBlock FontSize="12" FontWeight="Bold" Grid.Row="0" Grid.Column="1">Quarter
1-2</TextBlock>
<TextBlock FontSize="12" FontWeight="Bold" Grid.Row="1" Grid.Column="0">Quarter
2-1</TextBlock>
<TextBlock FontSize="12" FontWeight="Bold" Grid.Row="1" Grid.Column="1">Quarter
2-2</TextBlock>
<TextBlock FontSize="12" FontWeight="Bold" Grid.Row="2" Grid.Column="0">Quarter
3-1</TextBlock>
<TextBlock FontSize="12" FontWeight="Bold" Grid.Row="2" Grid.Column="1">Quarter
3-2</TextBlock>
6.7 Tabulator
Ein Tabulator am Zeilenanfang lässt sich am einfachsten mit Padding erzeugen.
Andere Tabulatoren müssen mit Grid realisiert werden.
Das Beispiel 1 zeigt die GroupBox.
Das Beispiel 2 zeigt zeigt das DockPanel und Button.
Viel Erfolg. Gruss Frederik
Edit: Nachdem ich heute Mittag ziemlich schnell die Infos aus meinen persönlichen Notizen kopiert und firmenspezifische Dinge gelöscht habe, musste ich heute Abend noch mal die Struktur überarbeiten.
[Diese Nachricht wurde von F - WI 49 am 02. Apr. 2009 editiert.]
[Diese Nachricht wurde von F - WI 49 am 03. Apr. 2009 editiert.]
[Diese Nachricht wurde von F - WI 49 am 03. Apr. 2009 editiert.]