mayho33
Goto Top

C-Sharp XAML Styles von anderem Assambly einbinden

Hallo @ All

Wir haben im Unternehmen was Styles für GUI's angeht Vorgaben für Farben und Aussehen. Bisher haben wir wiederverwertbare Styles eher nicht eingesetzt sondern aus anderen Projekten kopiert. Ich möchte nun eine Dll erstellen in der nur Styles nach Corporate-Identity-Richtlinen vorhanden sind, die wir entsprechend einbinden können.

Die Styles zu erstellen ist an sich sind kein Problem, Ich frage mich nur...

A) welchen Projekt-Typ ich in Visual Studio verwenden soll (WPF-UserControlLibrary ??)
B) wie ich die Styles aus der Dll heraus so bereitstellen kann, dass ich sie nicht jedes mal auf diese Weise einbinden muss:
<Application.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="pack://application:,,,/ButtonsLib;component/ButtonA.xaml"/>  
                <ResourceDictionary Source="pack://application:,,,/ButtonsLib;component/ButtonB.xaml"/>  
                <ResourceDictionary Source="pack://application:,,,/ButtonsLib;component/ButtonC.xaml"/>  
                ...
                ...
            </ResourceDictionary.MergedDictionaries>
        </ResourceDictionary>
    </Application.Resources>

Hier habe ich zwar etwas gefunden: Link
Ich habe aber keine Ahnung welchen Project-Type er/sie verwendet. Außerdem funktioniert das Referenzieren im XAML nicht so wie es beschrieben ist.

Zeile 5: xmlns:rs="http://my.schemas.com/web/resources
Zeile 13 => Fehler: <x:Static Member="rs:ExportResourceDictionary.Instance"/>
<Window
        x:Class="ResourceSharingClient.MainWindow"  
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"  
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xa**ml"  
        xmlns:rs="http://my.schemas.com/web/resources  
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"  
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"  
        mc:Ignorable="d"  
        Title="MainWindow" d:DesignWidth="111.5" d:DesignHeight="109.5" Width="120" Height="130">  
    <Window.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <x:Static Member="rs:ExportResourceDictionary.Instance"/>  
            </ResourceDictionary.MergedDictionaries>
        </ResourceDictionary>
    </Window.Resources>
    <Border BorderBrush="Black" BorderThickness="2" HorizontalAlignment="Center" VerticalAlignment="Center" Padding="2" CornerRadius="2" Background="Silver">  
        <StackPanel Orientation="Vertical">  
            <Ellipse Width="20" Height="20" Fill="{DynamicResource Stop}" Stroke="Black" StrokeThickness="1"/>  
            <Ellipse Width="20" Height="20" Fill="{DynamicResource PrepareToStop}" Stroke="Black" StrokeThickness="1"/>  
            <Ellipse Width="20" Height="20" Fill="{DynamicResource Go}"  Stroke="Black" StrokeThickness="1"/>  
        </StackPanel>
    </Border>
</Window>


Das Resultat ist, dass der Compiler stoppt mit dem Hinweis dass er nicht referenzieren kann.

Hat jemand von euch eine Idee wie ich das umsetzen könnte?

Danke für die Hilfe!

Grüße Mayho

Content-Key: 365145

Url: https://administrator.de/contentid/365145

Printed on: April 19, 2024 at 06:04 o'clock