Laden...

"Template-Klasse" um template in mehreren Projekten zu verwenden?

Erstellt von CaptainIglo vor 15 Jahren Letzter Beitrag vor 15 Jahren 2.869 Views
C
CaptainIglo Themenstarter:in
366 Beiträge seit 2005
vor 15 Jahren
"Template-Klasse" um template in mehreren Projekten zu verwenden?

Hallo,

kann ich irgenwie eine Art "Template-Klasse" erstellen, in welcher ich ControlTemplate's speichern kann, welche ich dann in mehreren Projekten laden kann?

mfg

6.862 Beiträge seit 2003
vor 15 Jahren

Dafür gibts ResourceDictionarys die du einfach in verschiedenen Projekten dann einbinden kannst.

Baka wa shinanakya naoranai.

Mein XING Profil.

C
CaptainIglo Themenstarter:in
366 Beiträge seit 2005
vor 15 Jahren

Und wie erstell ich so ein Teil "alleinstehend" und nicht z.b. in der App.xaml bzw. wie lade ich das dann in den einzelnen Projekten?

354 Beiträge seit 2004
vor 15 Jahren

Du musst natürlich in deiner Anwendung darauf verweisen. Wenn es global für die Anwendung gelten soll, dann muss es in der App.xaml definiert sein (bzw. manuelles Laden würde auch funktionieren).

Grundsätzlich legst du einfach Ressource Dictionaries an und verweist einfach auf sie. Dann kannst du dir noch aussuchen, ob du sie reinkompilieren willst oder nicht. Diese Dictionaries kannst du dann in einem anderen Projekt genauso einbinden. Ist übrigens recht sinnvoll, wenn alle deine Anwendungen den gleichen Style verwenden sollen.

.NET GUI - Die Community für grafische Oberflächen unter .NET
Jetzt kostenlos besorgen: .NET BlogBook
Norbert Eder
DasBackup

C
CaptainIglo Themenstarter:in
366 Beiträge seit 2005
vor 15 Jahren

...Grundsätzlich legst du einfach Ressource Dictionaries an ...

...dieser Teil ist mir nicht ganz klar, gibts da irgendwo ein kurzes tutorial?

354 Beiträge seit 2004
vor 15 Jahren

Ja, hier.

.NET GUI - Die Community für grafische Oberflächen unter .NET
Jetzt kostenlos besorgen: .NET BlogBook
Norbert Eder
DasBackup

C
CaptainIglo Themenstarter:in
366 Beiträge seit 2005
vor 15 Jahren

Hallo,

also das definieren im anderen File hab ich jetzt geschafft, aber das verweisen auf das Templte funktioniert nicht.
Ich habe zuerst das andere Projekt, in welchem das XAML mit dem template ist mittels xmlns:NAME referenziert, doch egal wie ich nacher das template setze (TEMPLATE, NAME:TEMPLATE, NAME:NAMEdesXAMLrootOBJECT:TEMPLATE,...), er findet es nicht...

P.S.: Mein Code ist hier einsehbar:
http://trac2.assembla.com/FreeBPM/browser
Das XAML mit dem template ist unter GlassComponents/GlassStyle.xaml und benutzt werden soll es in BPMPlayer/PlayerGUI.xaml...

354 Beiträge seit 2004
vor 15 Jahren

Du hast das ja alles in eine Page gegeben. Verwende eine Resource Dictionary. D.h. nicht "New Page", sondern "New Item" und dann "Resource Dictionary".

Solltest VS in deutscher Sprache haben, na dann viel Spaß. Gerade gesehen, dass das da ja fürchterlich klingt. Anbei ein Screenshot dessen, was du verwenden solltest.

.NET GUI - Die Community für grafische Oberflächen unter .NET
Jetzt kostenlos besorgen: .NET BlogBook
Norbert Eder
DasBackup

C
CaptainIglo Themenstarter:in
366 Beiträge seit 2005
vor 15 Jahren

Sorry, aber ich stehe gerade etwas auf der Leitung:
Wenn ich di Page druch ein Item ersetze bekomme ich nur ein "'Item' was not found" ausgegeben und wie genau muss ich jetzt das Template nacher setzen?

Edit: Hab dein Bild erst jetzt gesehen: Hab ein engl. VS aber bei mir gibts sowas nicht...

Edit2:
Habe jetzt das erstellen des ResourceDictionary's geschafft aber wenn ich es mit folgendem Code

    <UserControl.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="..\GlassComponents\GlassStyle.xaml" />
            </ResourceDictionary.MergedDictionaries>
        </ResourceDictionary>
    </UserControl.Resources>

einbinden will, kommt folgende Fehlermeldung: "The 'Build Action' property of the file '..\GlassComponents\GlassStyle.xaml' should be set as 'Resource' or 'Page'.", egal was ich da eingestellt habe...

.
332 Beiträge seit 2006
vor 15 Jahren

Bei mir stehen die Resource XAML auf Page.

Der Fehler kommt bei dir, obwohl der "Buildvorgang" bei dir von GlassStyle.xaml auf Page steht?

354 Beiträge seit 2004
vor 15 Jahren

Entferne mal das ..\ aus deiner Pfadangabe.

.NET GUI - Die Community für grafische Oberflächen unter .NET
Jetzt kostenlos besorgen: .NET BlogBook
Norbert Eder
DasBackup

C
CaptainIglo Themenstarter:in
366 Beiträge seit 2005
vor 15 Jahren

@.tim: Ja...

Entferne mal das ..\ aus deiner Pfadangabe.

Dann kommt: "Value 'GlassComponents\GlassStyle.xaml' cannot be assigned to property 'Source'. Value does not fall within the expected range."...

C
CaptainIglo Themenstarter:in
366 Beiträge seit 2005
vor 15 Jahren

Ich habe jetzt alles probiert, wasmir nur eingefallen ist, aber ich bekomme das ResourceDictionary nicht eingebunden, sobald es in einem anderen Projekt/Ordner ist...