У меня есть пользовательский элемент управления WPF. Он имеет вложенный ContentControl, который связан со свойством Content шаблона, поэтому в качестве его содержимого может быть установлен любой объект.
Если содержимое является необработанной строкой, я хочу применить следующий стиль к TextBlock (я знаю, что когда визуальное дерево фактически визуализируется, ContentPresenter с TextBlock генерируется, если вы устанавливаете свойство ContentControl Content в строку) .
<Style x:Key="Label" TargetType="TextBlock">
<Setter Property="TextWrapping" Value="Wrap" />
<Setter Property="FontSize" Value="14" />
<Setter Property="Foreground">
<Setter.Value>
<SolidColorBrush>
<SolidColorBrush.Color>
<Color A="255" R="82" G="105" B="146" />
</SolidColorBrush.Color>
</SolidColorBrush>
</Setter.Value>
</Setter>
</Style>
Я бы подумал, что это можно сделать с помощью вложенных ресурсов (это часть моего пользовательского элемента управления):
<ContentControl x:Name="SomeText" Margin="10,10,10,0"
Content="{TemplateBinding Content}"
IsTabStop="False" Grid.Column="1">
<ContentControl.Resources>
<Style TargetType="TextBlock" BasedOn="{StaticResource Label}" />
</ContentControl.Resources>
</ContentControl>
Так что ... выше сказано (для меня), если ContentControl заканчивается вложенным TextBlock, мы должны применить стиль Label, верно? ... но нет, стиль Label не применяется в приведенном выше примере.
Как мне это сделать?
Спасибо.