프로그래밍/WPF, Silverlight

[WPF/Silverlight] 동적으로 스타일 지정하기

당근천국 2011. 2. 17. 01:46
보통 실버라이트나 WPF의 스타일은 디자이너가 App에 넣어서 이렇게 주지요.
 
<Style x:Key="S_Top" TargetType="RadioButton">
      <Setter Property="Background" Value="{x:Null}"/>
      <Setter Property="Foreground" Value="{x:Null}"/>
      <Setter Property="HorizontalContentAlignment" Value="Center"/>
      <Setter Property="VerticalContentAlignment" Value="Center"/>
      <Setter Property="Padding" Value="25,0"/>
      <Setter Property="FontSize" Value="12"/>
      <Setter Property="Height" Value="29"/>
      <Setter Property="Cursor" Value="Hand"/>
      <Setter Property="Template">
      <Setter.Value>
        <ControlTemplate TargetType="RadioButton">
         <Grid>
          <VisualStateManager.VisualStateGroups>
           <VisualStateGroup x:Name="CheckStates">
            <VisualStateGroup.Transitions>
             <VisualTransition GeneratedDuration="0:0:0.3">
              <VisualTransition.GeneratedEasingFunction>
               <QuarticEase EasingMode="EaseOut"/>
              </VisualTransition.GeneratedEasingFunction>
             </VisualTransition>
            </VisualStateGroup.Transitions>
            </Grid>
        </ControlTemplate>
       </Setter.Value>
      </Setter>
</Style>

문제는 보통때야 블랜드나 속성에서 그냥 지정하면되는데 동적으로 생성되는 컨트롤에서는 어떻게 스타일을 지정하지? ㅡ.-;;

네 이렇게 하면 됩니다.
 rbButton.Style = App.Current.Resources["S_Top"] as Style;

차~~~암 쉽조?
ㅎㅎㅎ
이거몰라서 삽질을 얼마나 햇던지-_-;;;;;;;

app는 없다는 에러가 난다면 메인의 인스턴스를 받아서 점찍고 사용하시면 됩니다. App는 메인에 있으니까요.