2009-07-13 123 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。我没有默认的样式了吗? (