2016-04-17 7 views
1

私はこのような標準のTextBlockから継承したカスタムWPFコントロールを作成しようとしている中でカスタムWPFコントロールを参照する方法:generic.xaml

public class DynamicDateTextBlock : TextBlock 
{ 
    static DynamicDateTextBlock() 
    { 
     DefaultStyleKeyProperty.OverrideMetadata(typeof(DynamicDateTextBlock), new FrameworkPropertyMetadata(typeof(DynamicDateTextBlock))); 
    } 
} 

応じgeneric.xamlは次のようになります。

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
        xmlns:local="clr-namespace:Test"> 
    <Style TargetType="{x:Type local:DynamicDateTextBlock}"> 
     <Setter Property="Template"> 
      <Setter.Value> 
       <ControlTemplate TargetType="{x:Type local:DynamicDateTextBlock}"> 
        <Border Background="{TemplateBinding Background}" 
          BorderBrush="{TemplateBinding BorderBrush}" 
          BorderThickness="{TemplateBinding BorderThickness}" /> 
       </ControlTemplate> 
      </Setter.Value> 
     </Setter> 
    </Style> 
</ResourceDictionary> 

私がソリューションテストのルートにcontrol.csを置くと、すべて正常に動作します。 しかし、私はサブフォルダのテスト\コントロールに移動し、それに応じて名前空間を変更した場合、突然generic.xamlを与えているコンパイルエラー

名「DynamicDateTextBlockは、」名前空間「CLR名前空間に存在しません:テストを。コントロール」

は、CSの名前空間はTest.Controls

に変更されますし、XAMLで私はこのようにそれを使用しよう:xmlns:local="clr-namespace:Test.Controls"

です私は何か他に何かしなければなりませんか?

Resharperでコントロールをリファクタリングすると、同じ問題が発生します。

答えて

0

DynamicDateTextBlockControlsフォルダに移動し、変更した後にxmlns:local="clr-namespace:Test.Controls"エラーがあってもアプリケーションを再構築して実行しようとします。アプリケーションを開始する必要があります。あなたの行動はすべて正しいです。

更新: xaml xmlns:local="clr-namespace:Test.Controls"を変更した後、もう一度手で入力する必要があります。私は手で入力しましたが、エラーはありません。私が考えたものだが、私は与えコントロールに移動した後、それはもうコンパイルされていない

+0

: '実行しようとした後errors.' を構築ありましたが、エラーリストが示すものより: 'スタイルプロパティ」を見つけることができませんTemplate 'をタイプ' Test.Controls.DynamicDateTextBlock 'に設定します。 Line 5 Position 17.' – Mikk

+0

@Mikkお願いします。最新の回答をご覧ください。お気軽に質問してください。 – StepUp

+0

これは奇妙なことですが、私にとっては空でも新しい新しいソリューションで手作業でも動作しません。オートコンプリートはintellisenseではまったく同じことを示唆していますが、私は結果を構築して実行することはできません。 – Mikk

関連する問題