스타일의 우선 순위

6859 단어 style
Dependency Property(DP라고 약칭)는 WPF의 핵심이고 스타일은 Dependency Property를 바탕으로 하는 것으로 DP의 내막에 대해서는 WPF-종속 속성 드릴다운를 참고하십시오.스타일의 Setter는 DP에 작용합니다. 컨트롤에 CLR 속성을 정의하면 스타일은 설정할 수 없습니다.Dependency Property 디자인의 정수는 필드의 액세스와 대상(Dependency Object)을 벗기고 하나의 속성 값 내부에 여러 필드로 저장하며 값 추출 조건의 우선순위에 따라 현재 속성이 어떤 필드를 취해야 하는지를 결정하는 것이다.
Dependency Property 평가 기준의 우선 순위는 (위에서 아래로 우선 순위가 낮음에서 높음)입니다.
   1: public enum BaseValueSource
   2: {
   3:     Unknown,
   4:     Default,
   5:     Inherited,
   6:     DefaultStyle,
   7:     DefaultStyleTrigger,
   8:     Style,
   9:     TemplateTrigger,
  10:     StyleTrigger,
  11:     ImplicitStyleReference,
  12:     ParentTemplate,
  13:     ParentTemplateTrigger,
  14:     Local
  15: }

구체적인 예를 들면 다음과 같다.
   1: <Window>
   2:     <Window.Resources>
   3:         <Style TargetType="{x:Type Button}" x:Key="ButtonStyle">
   4:             <Setter Property="Width" Value="60"/>
   5:             <Style.Triggers>
   6:                 <Trigger Property="IsMouseOver" Value="True">
   7:                     <Setter Property="Width" Value="80"/>
   8:                 </Trigger>
   9:             </Style.Triggers>
  10:         </Style>
  11:     </Window.Resources>
  12:     <Grid>
  13:         <Button x:Name="button1" Style="{StaticResource ButtonStyle}" Background="{DynamicResource brush}" Width="20"/>
  14:     </Grid>
  15: </Window>

4행은 Style의 Setter로 Width=60을 설정합니다. 이 우선순위는 Style입니다.6행은 IsMouseOver가 True일 때 Width=80을 설정하고 이 우선순위는StyleTrigger입니다.13 행에서는 Style의 Button을 사용하여 Width=20을 정의합니다. 이 우선 순위는 Local입니다.Local은 가장 높은 우선순위를 가지기 때문에 마우스를 Button으로 옮겨도 여섯 번째 줄의 Trigger는 우선순위가 높지 않아 작동하지 않습니다.13행에서 Width=20을 제거하면 Button으로 마우스를 이동하면 Width는 80이 되고 마우스를 이동하면 4행에서 설정한 60이 됩니다.

좋은 웹페이지 즐겨찾기