4
두 개의 리소스 사전이 있습니다. 하나는 ResDictGlass.xaml이고 다른 하나는 ResDictNormal.xaml입니다. 둘 다 동일한 속성과 다른 값을가집니다.리소스 사전을 제거하고 WPF에 다른 리소스 사전 추가
<Style x:Key="StyleTitleText" TargetType="TextBlock">
<Setter Property="FontFamily" Value="Arial" />
<Setter Property="FontSize" Value="14"/>
<Setter Property="Foreground" Value="Green" />
</Style>
ResDictNormal.xaml에 같은 스타일은 다음과 같습니다 : 예를 들어
ResDictGlass.xaml는 다음과 같이 하나 개의 스타일을 가지고
: 나는대로 XAML에서 TextBlock을 설정<Style x:Key="StyleTitleText" TargetType="TextBlock">
<Setter Property="FontFamily" Value="Tahoma" />
<Setter Property="FontSize" Value="14"/>
<Setter Property="Foreground" Value="WhiteSmoke" />
</Style>
<TextBlock Style="{DynamicResource StyleTextblock}" Text="Prod.Code" VerticalAlignment="Top" />
런타임에 이러한 스타일 사이를 전환하고 싶습니다. 내가하는 일은 다음과 같습니다.
case "normal":
ResourceDictionary ResDict1 = new ResourceDictionary();
ResDict1.Source = new Uri("/ResDictNormal.xaml", UriKind.RelativeOrAbsolute);
Application.Current.Resources.MergedDictionaries.Add(ResDict1);
break;
case "flip":
ResourceDictionary ResDict2 = new ResourceDictionary();
ResDict2.Source = new Uri("/ResDictGlass.xaml", UriKind.RelativeOrAbsolute);
Application.Current.Resources.MergedDictionaries.Add(ResDict2);
break;
올바른 방법입니까? 현재 사전을 제거한 다음 사전을 추가해야합니까?
안녕하세요 천사, 답장을 보내 주셔서 감사합니다. 나는 두 개의 라디오 버튼을 가지고 있는데 하나는 정상적인 것이고 다른 하나는 뒤집기를위한 것이다. 라디오 버튼 선택에 따라 이러한 스타일을 교환하고 싶습니다. 그래서 하나를 제거하고 다른 하나를 추가해야합니까? – sony
예. 오래된 병합 된 사전을 제거하고 새 병합을 추가해야합니다. 또한'StaticResource'가 아니라'DynamicResource' 마크 업 참조를 사용해야합니다. –
C# 코드를 통해 그 코드를 제거하는 방법은 무엇입니까?, thanks – sony