2009-07-13 16 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でそれをマージし、いくつかの他のリソースディクショナリgeneric.xamlにまたはでこのXAMLコードを定義していますか?

スタイルをデフォルトのスタイルにする必要があります。

また、手動で追加する場合は、VSがThemeInfo属性をAssemblyInfo.csに設定しているかどうかを確認してください。

これでうまくいかない場合は、使用するウィンドウを宣言するコードを投稿する必要があります(window.xamlの部分または使用する名前)。明確にするために

EDIT

、generic.xamlは、ソリューションのテーマフォルダ内にあり、(直接または間接的に)スタイルのためのコードを含まなければなりません。

+0

上記のxamlコードは、xamlファイルの内容全体です。私はGeneric.xamlを持っていません。私は既定のスタイルを既に持っていませんか? (