2009-07-13 151 views
1

我想在WPF中開始構建自定義窗口。我認爲我已經有了所有的起始部分,但到目前爲止,我所得到的只是一個黑色內容的常規窗口。我認爲這是因爲它不會將我的模板識別爲控件的默認模板。
你能讓我知道我錯過了什麼嗎?這裏是我的代碼:
WPF - 自定義窗口不工作

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> 

回答

3

你在generic.xaml或其他一些資源字典定義此XAML代碼,然後在generic.xaml合併呢?

將樣式設置爲默認樣式是必需的。

此外,如果您已經手動添加東西,請檢查是否與AssemblyInfo.cs中的ThemeInfo屬性相關聯。

如果這不起作用,您應該在聲明您使用的窗口(window.xaml中的部分或您使用的任何名稱)的位置發佈代碼。

EDIT

爲了澄清,generic.xaml必須是在解決方案的主題文件夾,幷包含(直接或間接)樣式的代碼。

+0

上面的xaml代碼是xaml文件的全部內容。我沒有Generic.xaml。我沒有默認的樣式了嗎? (