2009-07-13 6 views
2

여기서 용어가 잘못되었을 수 있지만 첨부 된 이벤트를 작성하려고합니다.WPF의 사용자 정의 첨부 이벤트

<Grid Background="{StaticResource WindowBackground}" x:Name="Foo" s:SurfaceFrameworkElement.ContactChanged="Foo_ContactChanged"/> 

내가 핸들러가 같은 방식으로 XAML에 추가 할 수있는 사용자 지정 이벤트를 만들려면,하지만 난 데 문제 : 서피스 SDK에서

, 당신은 같은 일을 할 수 있습니다.

사용자 지정 라우트 된 이벤트를 만들 수 있지만 XAML 인텔리 센스에서는이를 볼 수 없으며 정기적으로 이벤트를 입력하면 이벤트 처리기가 추가되지 않습니다. 내 이벤트 정의는 다음과 같습니다.

나는 완전히 잘못 생각하고 있습니까? 내가 본 "첨부 된 동작"예제는 첨부 된 속성을 추가 한 다음 해당 속성을 설정하는 요소로 작업하는 것에 대한 것입니다.

답변

0

Intellisense에서 연결된 이벤트를 표시하려면 위성 어셈블리 또는 .dll 라이브러리에있는 클래스에 있어야합니다. 라이브러리를 추가하는 가장 쉬운 방법은 솔루션에 "WPF Custom Control Library"프로젝트를 추가하는 것입니다. Wpf 컨트롤 라이브러리를 사용하면 C# 클래스 라이브러리가 아닌 모든 표준 참조가 자동으로 추가됩니다. 테마/일반에서 연관된 스타일을 삭제하는 한 CustomControl1.cs를 삭제할 수 있습니다. xaml.

0

네임 스페이스를 매핑하지 않거나 local:TagRectEvents.TagRectEnterEvent과 같은 이벤트를 첨부해야합니다. TagRectEnterEvent이 아니라 TagRectEnter을 사용해야합니다.

네임 스페이스 매핑 :

xmlns:local="clr-namespace:WpfInfrastructure.WpfAttachedEvents" 

사용법 :

<Button Content="Press" local:TagRectEvents.TagRectEnter="MyHandler" Margin="25,43,36,161" /> 

처리기 : 난 당신의 코드를 사용

public void MyHandler(object sender, RoutedEventArgs e) 
    { 
     System.Diagnostics.Debug.WriteLine("Hurray!"); 
    } 

, 제대로 여기에 작동합니다.

관련 문제