2011-08-09 5 views
1

メインアセンブリ(WPFアプリケーション)でカスタムコントロールを作成し、テストしました。すべて正常でした。次に、このコントロールを別のアセンブリ(EB.Controls)に置き換えました。ContentControlが別のアセンブリでレンダリングされない

<ResourceDictionary 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> 
    <ResourceDictionary.MergedDictionaries> 
     <ResourceDictionary Source="/EB.Controls;component/HeadButton.xaml" /> 
    </ResourceDictionary.MergedDictionaries> 
</ResourceDictionary> 

しかし、コントロールがレンダリングされません。

が起動アセンブリ(WPFアプリケーション)で私は私のカスタムコントロールをインポートする/Themes/generic.xamlファイルを追加しました。

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

    <ControlTemplate TargetType="Controls:HeadButton" x:Key="HeadButtonTemplate"> 
     <Border Background="{TemplateBinding Background}" 
       CornerRadius="0.2" 
       BorderBrush="White" BorderThickness="1"> 
      <Grid> 
       <ContentPresenter/> 
      </Grid> 
     </Border> 
    </ControlTemplate > 

    <Style TargetType="Controls:HeadButton"> 
     <Setter Property="Template" Value="{StaticResource HeadButtonTemplate}"/> 
    </Style> 
</ResourceDictionary> 

そして、.csファイル:私は間違いをやった

namespace EB.Controls 
{ 
    [TemplateVisualState(Name = VisualStates.MouseOver, GroupName = VisualStates.CommonStates)] 
    [TemplateVisualState(Name = VisualStates.Normal, GroupName = VisualStates.CommonStates)] 
    public class HeadButton : Button 
    {  
     public HeadButton() 
     { 
      DefaultStyleKey = typeof (HeadButton); 
     } 

     public override void OnApplyTemplate() 
     { 
      base.OnApplyTemplate(); 
     } 
    } 

ここに私の制御XAMLのですか?

答えて

0

別のアセンブリに移動したので、Uriを同様のものに変更する必要があります。 パック://アプリケーション:,,,/ReferencedAssembly;コンポーネント/ ResourceFile.xaml

は詳細

ため MSDNを参照してください。
関連する問題