728x90
반응형
같은 Resource Dictionary 안에 존재하는 다른 Style을 c# 코드로 변경하는 방법입니다.
기본적으로 ResourceDictionary가 필요합니다.
ResourceDictionary : Dictionary1.xaml |
<Style x:Key="TB_Style1" TargetType="TextBlock"> <Setter Property="Foreground" Value="Black"/> <Setter Property="Text" Value="스타일 변경 전"/> <Setter Property="FontSize" Value="20"/> </Style> <Style x:Key="TB_Style2" TargetType="TextBlock"> <Setter Property="Foreground" Value="Violet"/> <Setter Property="Text" Value="스타일 변경 후"/> <Setter Property="FontSize" Value="25"/> </Style> |
앞에서 만든 ResourceDictionary를 App.xaml에 등록합니다.
App.xaml |
<Application.Resources> <ResourceDictionary Source="/StyleTest;component/Dictionary1.xaml"/> </Application.Resources> |
그 후 xaml이나 c#에서 사용합니다. c# 코드에서 Application.Current 부분은 사용하지 않으셔도 상관없습니다.
xaml |
<Grid> <StackPanel HorizontalAlignment="Center" VerticalAlignment="Center"> <TextBlock x:Name="test_TB" Style="{DynamicResource TB_Style1}"/> <Button Content="스타일 변경" Click="Button_Click"/> </StackPanel> </Grid> |
c# |
private void Button_Click(object sender, RoutedEventArgs e){ Style s1 = Application.Current.FindResource("TB_Style1") as Style; Style s2 = FindResource("TB_Style2") as Style; if(test_TB.Style == s1){ test_TB.Style = s2; }else{ test_TB.Style = s1; } } |
반응형
'프로그램 개발 > C#' 카테고리의 다른 글
[wpf] c# 코드로 작업 끝내기 (0) | 2021.04.14 |
---|---|
[wpf] c# 코드로 Style 설정하기 - 2 : 다른 Resource Dictionary 사용 (0) | 2021.03.02 |
[wpf] c# 코드로 Label 색 변경하기 (0) | 2021.01.10 |
[wpf] Button 안의 Button 클릭 이벤트 (0) | 2021.01.03 |
[wpf] Dictionary 합과 정렬 (0) | 2020.12.26 |