2010-11-22 7 views
1

...は、私は、実行時にロードすることを...私が緩んでXAMLファイルを持っている

<Style 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:local="clr-namespace:MyNamespace" 
    TargetType="{x:Type local:CustomControl}"> 
    <Setter Property="HoverOpacity" Value="1.0"/> 
</Style> 

を制御します。私は、「タイプリファレンスは、 'CustomControl'という名前のパブリックタイプを見つけることができません」という例外が表示されます。どのようにして、XAMLが自分の名前空間を認識できるようにすることができますか?

CustomControlの依存関係プロパティHoverOpacityを使用する必要があります。ここで私は現在、XAMLをロードするために使用していたコードは次のとおりです。

var resource = Application.GetResourceStream(new Uri("pack://application:,,,/Assets/HoverStyle.xaml")); 

XamlReader.Load(resource.Stream); 

ところで、私は、XAMLは単純であることを認識し、私はコードでStyleを挿入することもできますが、これはハロー世界XAMLです。アニメーションなどを含むもっと複雑なものになるでしょう。

P.S.もう1つの解決策は、Panelから派生したカスタムコントロール(Visual Studio 2008をクラッシュさせないカスタムコントロール)にXAMLファイルを添付する方法、またはトリガー、データトリガー、入力アクション、および終了アクションを簡単にアタッチする方法ですカスタムコントロール。

答えて

4

私はそれを理解しました。名前空間でアセンブリ名を指定する必要がありました。ように:

<Style 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:local="clr-namespace:MyNamespace;assembly=MyAssembly" 
    TargetType="{x:Type local:CustomControl}"> 
    <Setter Property="HoverOpacity" Value="1.0"/> 
</Style> 

私は "P.S."次の2日以内に質問してください。この全体的な状況は少し濡れているようですので、私は本当に選択肢に興味があります。

ありがとう:)

関連する問題