2016-04-05 3 views
0

Мы работаем с 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> 

Возможно ли это и кто-то знает пример для этого?

Спасибо заранее, Патрик

+0

Будет ли Ir работать на вас? – Gopichandar

+0

К сожалению, не совсем то, что мы хотели. Нам нужно реализовать TextBlock внутри флажка (на пример), чтобы мы могли установить свойство TextDecorations во время выполнения. –

+0

Вы не поняли. Вы будете обновлять свою точную цель. – Gopichandar

ответ

0

Просто добавьте TextDecorations="Underline" в вашем TextBlock на ControlTemplate

<TextBlock TextDecorations="Underline" x:Name="display" Grid.Row="1" Text="{Binding Content, RelativeSource={RelativeSource TemplatedParent}}" Margin="5,2,5,2"/> 
Смежные вопросы