2013-05-29 1 views
2

Windows 8, VS2012, C# 및 XAML을 사용하여이 테스트 Metro 응용 프로그램을 만듭니다. 응용 프로그램 페이지의 TextBoxStackPanel에 배열되어 있습니다. 응용 프로그램이 시작되면 초점은 첫 번째 TextBox입니다.메트로 응용 프로그램이 내 첫 번째 필드에 직접 초점을 맞추고 있습니다.

나는 이것을 "비활성화"하는 방법을 궁금해하고있었습니다.

첫 번째 필드가 초점을 맞추고 있습니다 (색상이 변경되고 툴팁이 표시됨). 이것에 대한

enter image description here

답변

0

하나의 간단한 수정은 약간 해키하지만 내가 알고있는 유일한 방법입니다 0 OpacityIsTabStop="True" 먼저 그것을 잡을 수있는 장소 일이다. 이렇게 무언가 같이; 당신의 UI는 당신이 다른 컨트롤에 프로그래밍 포커스 상태를 적용하여 TextBox에서 포커스를 제거 할 수로드

<TextBox IsTabStop="True" Opacity="0" Height="1" Width="1"/> 
<!-- Then the rest of your content like your other TextBox stuff --> 
+0

감사합니다. 이 "해킹"으로 해결되었습니다. – enibundo

1

.

myButton이 있다고 가정 해보십시오. 당신은 할 수 있습니다

myButton.Focus(FocusState.Programmatic); 

당신은, 그러나 그것은이 허용되지 않기 때문에 TextBlock의에서 포커스를 제거하는 FocusState.Unfocused 상태를 사용할 수 없으며 예외가 발생합니다.

+0

고맙습니다. :) .xaml.cs 파일을 수정해야하는 대신이 프로젝트 대신 XAML 쪽을 수정해야하므로 Chris W.의 대답을 수락했습니다. – enibundo

+0

@enibundo 저는 구현이 빠르기 때문에 Chris W. hack을 좋아하지만 확실히 집중할 다른 요소가 있기 때문에 XAML을 변경할 필요가 없습니다 (XAML에서 myButton을 만들 필요가 없습니다) – letiagoalves

관련 문제