2012-03-09 4 views
0

인터페이스의 모든 컨트롤에서 선택된 상태 (효과)를 삭제해야합니다. 당신은 검은 점선을 알고 있습니다 ...모든 템플릿의 선택된 상태 제거하기 (글로벌 스타일)

어떻게 할 수 있습니까?

P. 완전히 사용자 지정된 XAML 페이지가 30MB RAM을 사용하는 것이 정상입니까?

미리 감사드립니다.

+2

당신의 태평양 표준시 별도의 질문으로 게시해야합니다. – CodeNaked

답변

0

이것은 관련된 컨트롤의 FocusVisualStyle에 의한 컨트롤입니다. 죄송 합니다만, 모든 컨트롤에 대해 단일 Style 또는 설정을 사용하여 해당 컨트롤을 전역 적으로 사용 중지 할 수는 없습니다. 대신, 모든 제어 유형에 대해 개별적으로 해제해야합니다. 당신이에 Style 속성을 사용하면 컨트롤의 일부 또는,

<Style TargetType="Button"> 
    <Setter Property="FocusVisualStyle" Value="{x:Null}" /> 
</Style> 
<Style TargetType="RepeatButton"> 
    <Setter Property="FocusVisualStyle" Value="{x:Null}" /> 
</Style> 
<Style TargetType="ToggleButton"> 
    <Setter Property="FocusVisualStyle" Value="{x:Null}" /> 
</Style> 
<Style TargetType="TreeViewItem"> 
    <Setter Property="FocusVisualStyle" Value="{x:Null}" /> 
</Style> 
<!-- ETC --> 

을하지만 명심 :

는 예를 들어, 지정된 컨트롤을 해제하기 위해 Application.Resources에 다음과 같은 스타일을 포함 할 수 있습니다 정의 된 다른 암시 적 스타일이있는 경우 위의 스타일이 적용되지 않습니다.

또는 레이첼과 같은

지적, 당신이 할 수 있습니다 :

<Style x:Key="FrameworkElementStyleKey" TargetType="FrameworkElement"> 
    <Setter Property="FocusVisualStyle" Value="{x:Null}" /> 
</Style> 
<Style TargetType="Button" BasedOn="{StaticResource FrameworkElementStyleKey}" /> 
<Style TargetType="RepeatButton" BasedOn="{StaticResource FrameworkElementStyleKey}" /> 
<Style TargetType="ToggleButton" BasedOn="{StaticResource FrameworkElementStyleKey}" /> 
<Style TargetType="TreeViewItem" BasedOn="{StaticResource FrameworkElementStyleKey}" /> 
<!-- ETC --> 

기능적으로, 두 가지 접근 방식은 위와 같은 효과가 있습니다.

+1

'FocusVisualStyle'을 포함하는'FrameworkElement'를위한 단일 기본 스타일을 만든 다음 기본 스타일을 상속 한 단일 라인 컨트롤 스타일을 사용하여 스타일을 더욱 단순화 할 수 있습니다. 좋은 예가있다 [here] (http://stackoverflow.com/a/7604656/302677) – Rachel

관련 문제