문제

내가 하려고 했을 처리하 KeyDown 이벤트의 정렬(페이지)내 Silverlight 응용 프로그램이지만 이상한 행동에서의 일부 Silverlight 사용자 입력 기능이 있습니다.이벤트지 않을 받고 발생이 어떤 상황에서.나는 시도를 연결하는 이벤트 처리기 각 컨테이너 제어에 정렬하지만,여전히 행운과 함께.실제로,Silverlight 사용자 입력이"라우팅 이벤트"시스템은 매우는 소설과 같다는 오히려 이상한 나에게,그래서 아마도 그것은 오해 나의 부분에 불구하고 오히려 우둔하는 방법에 대해 계속 진행합니다.

다음 코드 템플릿의 특정 페이지에 있는 나는 테스트입니다.

<UserControl x:Class="MyNamespace.CreditsPage"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
             KeyDown="UserControl_KeyDown">
    <Grid x:Name="LayoutRoot">
        <Border>
            <StackPanel HorizontalAlignment="Center" VerticalAlignment="Center" Orientation="Vertical">
                <TextBlock TextAlignment="Center">
                A line of text.<LineBreak />
                <LineBreak />
                A line of text.<LineBreak />
                <LineBreak />
                A line of text.<LineBreak />
                <LineBreak />
                A line of text.<LineBreak />
                </TextBlock>
            </StackPanel>
        </Border>
    </Grid>
</UserControl>

WPF 에서 명백한 솔루션을 위한 이러한 문제는 것을 처리하 PreviewKeyDown 이벤트,그러나 불행하게도 이에서 사용할 수 없습 Silverlight2.어떤 아이디어를 환영 할 것이다(그리고 짧은 이유를 설명하는 Silverlight 이벤트 라우팅은 행동으로 그것입니다).

도움이 되었습니까?

해결책

을 관리할 수 있습니다 사용자 입력에서 주요 UIElement:응용 프로그램.현재 있습니다.Rootvisual 을

Application.Current.RootVisual.KeyDown += Application_KeyDown

한 다음을 처리할 수 있습에서 Application_KeyDown 방법을 모두 사용자 입력에서 키보드입니다.

도 볼 수 있습니다 이 문제는: 처리 KeyDown 이벤트 캔버스

다른 팁

나는 당신이 제공 한 XAML을 시도했지만 키 다운 이벤트를 건네주는 데 문제가 없었습니다.

원인이 될 수있는 한 가지 : Silverlight 플러그인은 입력 이벤트가 초점을 맞춘 경우에만 나타납니다. 따라서 브라우저의 Silverlight 콘텐츠를 클릭하여 키를 누르기 전에 입력 초점을 맞추십시오.

그것이 당신의 문제를 해결하는지 아닌지 알려주세요.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top