2010-08-10 3 views
1

Silverlight 응용 프로그램 (ButtonBase에서 분명히 상속)의 모든 컨트롤에서 ClickMode = "누른 상태"로 설정하는 쉬운 방법을 찾고 있습니다.Silverlight의 모든 버튼과 비슷한 컨트롤에 대해 ClickMode 설정

솔루션은 SilverlightToolkit의 ComboBox와 같은 controltemplate의 일부인 ButtonBase-Control에도 액세스해야합니다.

이 경우 사용자 지정 테마를 만들어야합니까? 그렇다면 어떻게 기존 테마를 재사용하고이 속성을 재정의합니까?

미리 감사드립니다.

답변

0

당신은 실제로 당신 자신의 질문에 대답했습니다. 예, 기존 스타일을 사용하여 앱의 모든 ButtonBase 컨트롤에 ClickMode 속성이 설정되도록 할 수 있습니다. 여기 당신을 가게 할 스타일이 있습니다. ButtonBase로부터 확장 된 컨트롤이이 스타일을 상속한다는 것을 보장하는 이름이 지정되지 않은 스타일입니다.

<Style TargetType="ButtonBase"> 
     <Setter Property="ClickMode" Value="Pressed"/> 
</Style> 

이 정보가 도움이되기를 바랍니다. 암시 적 스타일에서

+0

답변 해 주셔서 감사합니다. 이걸 어디에 두 시나요? 나는 전에 이것을 태그에서 시도했지만 작동하지 않았다. btw : 나는 단지 모드가 실제로 "프레스"라고 불리는 것을 알아 챘습니다. – Chris

+0

태그에 넣을 수 있지만 스타일을 특정 사용자 컨트롤뿐만 아니라 응용 프로그램의 모든 컨트롤에 적용하려면 리소스 사전을 사용하고 App.xaml 파일에서 참조하십시오. 이 게시물은 실버 라이트의 스타일에 대한 질문을 명확히해야합니다. http://www.silverlightshow.net/items/Merged-Resource-Dictionaries-in-Silverlight-3.aspx – dparker

+0

응용 프로그램 시작시로드되지만 TargetType = ButtonBase가 작동하지 않는 외부 ressource 사전을 사용했습니다. . 내가 TargetType = Button을위한 스타일을 가지고있을 때, 이상하게 작동합니다. ClickMode가 buttonbase의 모든 하위 클래스의 기본 스타일로 대체 될 수 있습니까? – Chris

1

http://msdn.microsoft.com/en-us/library/system.windows.style%28v=VS.95%29.aspx :

실버 라이트 4, 당신은 암시 적 스타일을 설정할 수 있습니다. 즉, 특정 유형의 모든 요소에 특정 스타일을 적용 할 수 있습니다. x : Key 값없이 자원이 선언되면 x : Key 값은 TargetType 등록 정보의 값으로 간주됩니다. 스타일을 내재적으로 설정하면 스타일은 TargetType과 정확히 일치하는 유형에만 적용되고 TargetType 값에서 파생 된 요소에는 적용되지 않습니다. 예를 들어 응용 프로그램의 모든 ToggleButton 컨트롤에 대해 암시 적으로 스타일을 만들고 응용 프로그램에 ToggleButton 및 CheckBox 컨트롤이있는 경우 (CheckBox는 ToggleButton에서 파생 됨) 스타일은 ToggleButton 컨트롤에만 적용됩니다.

따라서 ButtonBase 및 해당 하위 클래스의 스타일을 만들 수있는 방법이없는 것처럼 보입니다.

관련 문제