WP8에서 TextBlock의 전경색을 제 바인딩의 부울 속성을 기반으로 다른 색상으로 설정하고 싶습니다. 또한 색상에 StaticResource를 사용하고 싶습니다.Windows Phone 8의 조건부 StaticResource
하나의 가능성은 이것에 대해 ValueConverter를 사용하고 있지만 StaticResources로는 지금까지 작동하지 못했습니다.
<TextBlock Foreground="{Binding IsBlue, Converter={StaticResource BoolToColorConverter}}" />
그리고 내 컨버터 (I 문자열을 반환하는 작업을 것이라고 생각하지만, 어쨌든 그것을 테스트하기로 결정하지 않았다) : 내가 노력 코드는 같은했다 또한
public class BoolToColorConverter : IValueConverter{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return (value is bool && (bool)value) ? "{StaticResource PhoneAccentBrush}" : "{StaticResource PhoneSubtleBrush}";
}
}
을, I DataTriggers를 사용하여 보았지만 WP8이 직접 지원하지 않는다는 것을 알았습니다.
먼저 종속성 속성을 시도하지 않았습니다. 먼저이를 해결하기위한 더 간단하고 분명한 방법이 누락되지 않았 음을 확인하고 싶습니다.
가장 좋은 방법은 무엇입니까?
에서 브러쉬를 복구하는 것입니다? 또는 하드 코딩 된 것으로 생각되면 TrueBrush 및 FalseBrush 속성을 변환기에 추가하고 리소스 정의에서 특정 브러시로 설정 한 다음 x : 적절하게 이름을 지정합니다 (예 : SubtleConverter)? – Will
@ 윌, 귀하의 의견을 보내 주셔서 감사합니다. 정적 리소스 (예 : PhoneAccentColor)를 사용하고 싶습니다. 지금은 브러시 자체를 반환하는 것이 바람직하지 않습니다. 또는 리소스가있는 브러시를 초기화 할 수 있습니다. TrueBrush, FalseBrush 아이디어가 아주 좋은 것으로 나타났습니다. 당신은 그 모범을 보았습니까? – sTodorov
@ 윌, nvm, 나는 고쳤다. 당신의 아이디어에 감사드립니다. 내가 그걸 표시 할 수 있도록 대답 할 수 있니? – sTodorov