Мы работаем с WPF в VS 2015 и хотите реализовать TextDecorations-свойство в следующие элементы управления: - Кнопка - Checkbox - Этикетка - RadioButtonЯвляется ли реализация TextBlock для использования свойства TextDecorations через стиль?
Один из способов заключается в реализации TextBlock-контроль как Содержание так:
<CheckBox x:Name="checkbox">
<TextBlock>
CheckBox<Run TextDecorations="Underline"></Run>
</TextBlock>
</CheckBox>
Тогда - в коде - можно было бы настроить свойство:
FrameworkElement fe = this.checkbox;
if (fe.GetType().GetProperty("Content") != null && fe.GetType().GetProperty("Content").GetValue(fe).GetType() == typeof(TextBlock))
{
FrameworkElement tbb = (FrameworkElement)fe.GetType().GetProperty("Content").GetValue(fe);
tbb.GetType().GetProperty("TextDecorations").SetValue(tbb, TextDecorations.Underline);
}
Но то, что мы действительно хотим, реализация через стиль, как этот пример:
<Style x:Key="checkboxStyle" TargetType="{x:Type CheckBox}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<Grid x:Name="container">
<Grid.RowDefinitions>
<RowDefinition Height="2*"/>
<RowDefinition/>
</Grid.RowDefinitions>
<TextBlock x:Name="display"
Grid.Row="1"
Text="{Binding Content, RelativeSource={RelativeSource TemplatedParent}}"
Margin="5,2,5,2"/>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
Возможно ли это и кто-то знает пример для этого?
Спасибо заранее, Патрик
Будет ли Ir работать на вас? – Gopichandar
К сожалению, не совсем то, что мы хотели. Нам нужно реализовать TextBlock внутри флажка (на пример), чтобы мы могли установить свойство TextDecorations во время выполнения. –
Вы не поняли. Вы будете обновлять свою точную цель. – Gopichandar