2009-11-17 2 views

답변

13

정적 리소스는 코드 또는 XAML에 그것을 할 수 있는지 여부를 업데이트하지 않습니다 응답. 이를 위해 동적 리소스가 필요합니다. XAML에서

:

코드에서
<Grid x:Name="grid" Background="{DynamicResource Brush}"/> 

:

grid.SetResourceReference(Grid.BackgroundProperty, "Brush"); 
+0

잘못된 것은 아닙니다. 다른 자원에 의해 리소스가 변경되면 정적 리소스가 대상을 업데이트합니다. 리소스의 속성이 변경되면 StaticResource가 업데이트되지 않습니다. –

+0

죄송하지만 잘못된 것입니다. 정적 리소스의 핵심은 컴파일 타임에 해결된다는 것입니다. 이것을 증명하는 간단한 테스트를 할 수 있습니다. –

+0

안돼, 나 자신의 확신, 어떻게 믿을 수 있었는지 !!! 죄송합니다. 어쩌면 올바른 질문은 "뒤에 나오는 코드에서 DynamicResource를 사용하는 방법입니다." –

1

하는 DynamicResource 실버 라이트에서 사용할 수 없음을주의하십시오; 그것은 WPF에서만 존재합니다 (Silverlight는 StaticResource 만 가지고 있습니다).

질문에 Silverlight와 WPF 태그가 붙어 있기 때문에 두 가지 모두에서 작동하는 솔루션을 찾고 있을지도 모릅니다. 이 경우 변경 사항에 대한 응답으로 속성을 업데이트해야하므로 리소스 대신 데이터 바인딩을 사용하려고 할 것입니다.

+0

예, DynamicResource가 SL에서 사용할 수 없다는 것을 알지 못했습니다. 태그를 업데이트합니다. WPF에 대한 아이디어가 있습니까? –

+0

Nicolas, 따라 가지 않습니다. WPF에 대한 귀하의 질문에 대답하지 않았습니까? –

+0

당신은 리소스 대신 데이터 바인딩을 사용하라고 말했지만, 어떻게 코드 뒤에 데이터 바인딩을 사용하여 리소스에 종속성 속성을 바인딩 할 수 있습니까? (리소스가 새로운 리소스로 대체 될 때 내 DP가 업데이트됩니다.) 바인딩으로 어떻게 할 수 있는지 알지 못합니다. –

관련 문제