반응형
코드에서 동적 리소스 스타일을 할당하는 방법은 무엇입니까?
XAML에서 이와 동등한 코드를 생성하고 싶습니다.
<TextBlock
Text="Title:"
Width="{Binding FormLabelColumnWidth}"
Style="{DynamicResource FormLabelStyle}"/>
텍스트와 너비를 할 수 있지만 동적 리소스를 스타일에 할당하려면 어떻게해야합니까?
TextBlock tb = new TextBlock();
tb.Text = "Title:";
tb.Width = FormLabelColumnWidth;
tb.Style = ???
당신은 시도 할 수 있습니다:
tb.Style = (Style)FindResource("FormLabelStyle");
즐겨!
True DynamicResource 동작을 원하면 FrameworkElement.SetResourceReference를 사용해야합니다 ( 예 : 리소스 변경시 대상 요소 업데이트).
tb.SetResourceReference(Control.StyleProperty, "FormLabelStyle")
이것은 작동합니다.
tb.SetValue(Control.StyleProperty, "FormLabelStyle");
원래의 질문은 어떻게 동적으로 만드는지였습니다. 즉, 리소스가 변경되면 컨트롤이 업데이트됩니다. 위의 베스트 답변은 SetResourceReference를 사용했습니다. Xamarin 프레임 워크의 경우 사용할 수 없지만 SetDynamicResource는 원래 포스터가 요청한대로 정확히 수행합니다. 간단한 예
Label title = new Label();
title.Text = "Title";
title.SetDynamicResource(Label.TextColorProperty, "textColor");
title.SetDynamicResource(Label.BackgroundColorProperty, "backgroundColor");
지금 전화 :
App.Current.Resources["textColor"] = Color.AliceBlue;
App.Current.Resources["backgroundColor"] = Color.BlueViolet;
이러한 방식으로 리소스를 사용하는 모든 컨트롤에 대한 속성이 변경되도록합니다. 이것은 모든 속성에서 작동합니다.
참조 URL : https://stackoverflow.com/questions/1754615/how-to-assign-a-dynamic-resource-style-in-code
반응형
'IT박스' 카테고리의 다른 글
화면 키보드를 닫으려면 어떻게합니까? (0) | 2021.01.09 |
---|---|
C #의 메모리 누수 (0) | 2021.01.09 |
최대 너비를 사용하여 CSS에서 비례 적으로 이미지 크기 조정 (0) | 2021.01.09 |
NSString이 null인지 감지하는 방법은 무엇입니까? (0) | 2021.01.09 |
일반 텍스트 출력을위한 Python 기술 또는 간단한 템플릿 시스템 (0) | 2021.01.09 |