2009-07-13 6 views
1

Ich versuche, ein benutzerdefiniertes Fenster in WPF zu erstellen. Ich dachte, ich hätte alle Startteile an Ort und Stelle, aber bisher habe ich nur ein normales Fenster mit schwarzem Inhalt. Ich nehme an, dies liegt daran, dass meine Vorlage nicht als Standard für das Steuerelement erkannt wird.
Können Sie mir bitte mitteilen, was ich vermisse? Hier ist mein Code:
WPF - Benutzerdefiniertes Fenster funktioniert nicht

namespace BaseWindowLibrary 
{ 
    public class BaseWindow: Window 
    { 
     public BaseWindow() 
     { 
      DefaultStyleKeyProperty.OverrideMetadata(typeof(BaseWindow), 
                new FrameworkPropertyMetadata(
                 typeof(BaseWindow))); 
     } 
    } 
} 


<ResourceDictionary 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:base="clr-namespace:BaseWindowLibrary"> 

    <ControlTemplate x:Key="BaseWindowTemplate" TargetType="{x:Type base:BaseWindow}"> 
     <Border BorderBrush="Blue" BorderThickness="3" Background="Coral" Width="100" Height="100"/> 
    </ControlTemplate> 

    <Style TargetType="{x:Type base:BaseWindow}"> 
     <Setter Property="Template" Value="{StaticResource BaseWindowTemplate}"/> 
    </Style> 

</ResourceDictionary> 

Antwort

3

Sie den XAML-Code in generic.xaml oder in einem anderen Ressourcenverzeichnis definieren und sie dann in generic.xaml verschmelzen?

Es ist eine Voraussetzung, dass der Stil der Standardstil ist.

Auch wenn Sie Dinge von Hand hinzugefügt haben, überprüfen Sie, ob VS das ThemeInfo Attribut in AssemblyInfo.cs added.

Und wenn das nicht funktioniert, sollten Sie den Code, wo Sie das von Ihnen verwendete Fenster (den Teil in window.xaml oder welchen Namen Sie verwenden) deklarieren.

EDIT

Um zu klären, generic.xaml muss im Ordner Themen Ihrer Lösung sein und enthält (direkt oder indirekt), um den Code für den Stil.

+0

Der obige XAML-Code ist der gesamte Inhalt der XAML-Datei. Ich habe keine Generic.xaml. Habe ich nicht schon den Standardstil? (