2010-11-22 2 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을 사용해야합니다. BTW

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

XamlReader.Load(resource.Stream); 

, 나는 XAML이 간단하고 난 그냥 코드에서 Style을 삽입 할 수 있지만, 이것은 안녕하세요 세계 XAML 것을 깨닫게; 저는 여기에 현재 XAML을로드하기 위해 사용하고있는 코드는 그것은 훨씬 더 복잡해지고, 애니메이션 등을 포함하게 될 것입니다.

P. 또 다른 솔루션은 Panel에서 파생 된 사용자 지정 컨트롤에 XAML 파일을 첨부하거나 (Visual Studio 2008을 손상시키지 않는) XAML 파일을 첨부하거나 트리거, 데이터 트리거, 입력 작업 및 종료 작업을 쉽게 첨부 할 수있는 방법입니다. 사용자 정의 컨트롤.

답변

4

어머나, 알아 냈어. 네임 스페이스에 어셈블리 이름을 지정해야했습니다. like :

<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 일 이내에 질문. 이 모든 상황이 조금 젖어있는 것 같아서 대안에 정말로 관심이 있습니다.

고마워요 :)

관련 문제