좋아요, 제가 잘못하고 있다는 것을 받아 들일 준비가되었습니다. 그러나 이것은 제가 지금까지 생각 해낸 것입니다.색상을 업데이트하여 다음 번에 사용할 수 있도록 저장하는 방법은 무엇입니까?
나는 몇 개의 ListView가 있습니다. FileSystemInfo 항목이 있습니다. 리소스 사전의 스타일은 항목의 개체 유형에 따라 적용됩니다 (How to set the Style of a ListViewItem based on the class of the item 기준).
사용자에게 적용되는 색상을 변경하는 기능을 제공하고 싶습니다. 그 목적을 위해 여기 (http://svetoslavsavov.blogspot.com/2009/07/switching-wpf-interface-themes-at.html)에서 제안한 방법을 사용하여 ResourceDictionary를 편집 한 후 (현재는 Notepad ++로) 다시로드합니다.
이 ListView 항목을 다시 그리기 발생하지 않으며 색이 변경되지 않습니다. 간단히 두 개의 Resource xaml 파일을 사용하려고 시도했지만 색상을 업데이트하지 않습니다.
그렇다면 다음에 사용자가 응용 프로그램을 실행할 때 사용할 수 있도록 컨트롤의 색상을 업데이트하고 저장하는 것이 가장 좋습니다.
< - EDIT가 ->
는 구체적으로, 제가 한 일은이었다
1) 내가있는 ResourceDictionary에서 색상을 사용하는 스타일을했다. 이렇게 :
<Color x:Key="DirItemBkgdColor1" />
<Color x:Key="DirItemBkgdColor2" />
<Style x:Key="DirListViewItem" TargetType="ListViewItem">
<Setter Property="Background">
<Setter.Value>
<LinearGradientBrush>
<GradientStop Color="{DynamicResource DirItemBkgdColor1}" Offset="0"/>
<GradientStop Color="{DynamicResource DirItemBkgdColor2}" Offset="1"/>
</LinearGradientBrush>
</Setter.Value>
</Setter>
</Style>
2) 변경하고 싶은 각 색상에 대한 설정을했습니다. 3) 나는 다른과 하나 수정 :
this.Resources["DirItemBkgdColor1"] = FileTrackerWPF.Properties.Settings.Default.DirectoryBackColor1;
this.Resources["DirItemBkgdColor2"] = FileTrackerWPF.Properties.Settings.Default.DirectoryBackColor2;
나는 응용 프로그램과 내 응용 프로그램의 구성 창에서 OnStartup()에 코드의 그 라인을 넣어하고 그것이 마치 마법처럼 작동합니다. 이제 수십개로 확장하십시오 (무거운 UI입니다). 여기
그래서 ResourceDictionary는 설정에서 색상을로드합니까? RD를 외부화 할 필요가 없습니다. 이것이 내가 뜻하는 바를 알게 될 것이다. 도와 주셔서 감사합니다. –
예, 사용자가 이런 식으로 더 쉬울 수도 있습니다. –
고마워, 내가 실제로하고 싶었던 것을 알아 낸 후에, 이것은 큰 도움이되었다. WPF에서 내가 가진 가장 큰 문제점은 새로운 XAML 컨텍스트에서 실제로 수행하고자하는 작업을 찾는 것입니다. 감사합니다. –