2009-11-13 9 views
2

코드로 WPF에서 DynamicResource 바인딩을 얻는 데 도움이 될 수 있습니까? 내가 좋아하는가에 따라 바인딩을 설정 한WPF에서 DynamicResource 바인딩 가져 오기

, XAML에서

TextBlock의 배경 = {DynamicResource의 원주} 이름 = "TB".

그리고 TB의 배경을 "ColorA"에 바인딩해야합니다. 어떻게하면이 DynamicResource 바인딩 식 WPF 코드로 액세스 할 수 있습니다. 내가 TB.Background를 얻으려고 할 때 흰색 (#FFFFF ..)이거나 이미 값을 부여한 경우 Resorce 키 "ColorA"가 제공됩니다. 하지만이 바인딩 식을 가져오고 싶습니다. 도움을 미리 보내 주셔서 감사합니다.


내 질문이 명확하지 않다고 생각합니다. 코드에서 Xaml의 "TB"에 대해 Reource Binding이 수행 된 작업을 얻으려고합니다. 그러나 TB.GetResourceReference는 없습니다. 나는 그런 생각을하고 싶다. 여기서 바인딩 식은 WPF에 보관됩니다. TB의 BackgroundProperty를 가져와야합니다. Binded to (ColorA 대답) 키? 갑자기 응답 해 주셔서 감사합니다.

MSDN :

답변

3

당신은 FrameworkElement.SetResourceReference 방법을 사용할 수 있습니다 http://msdn.microsoft.com/en-us/library/system.windows.frameworkelement.setresourcereference.aspx

당신의 XAML이가 가지고 제공 :

TB.SetResourceReference(BackgroundProperty, "ColorA"); 
:

<TextBlock x:Name="TB"> 

당신은 뒤에 코드에서 이것을 쓸 수 있습니다

+1

이것은 코드에서 DynamicResource 바인딩을 만드는 방법에 대한 훌륭한 답입니다. OP의 질문에 대한 대답이 아니라, 불행히도, 잘 쓰여졌 고 &이 대답을 찾고있는 다른 사람들을 도울 수 있습니다. +1 –

1

다음과 같이 사용할 수 있습니다.

YourControl.Style = this.FindResource(NameOfYourStyleForThisControl) as Style;