2009-09-30 6 views
4

Я только начал работать со стилями и шаблонами управления и создал следующие стили для отображения кнопки в виде текста в сетке. Я хотел бы встроить Font Styling в стили для подчеркивания, но не понял.Можно ли встроить форматирование текста в Silverlight ContentPresenter?

<Style x:Key="TextButtonStyle" TargetType="Button"> 
    <Setter Property="Background" Value="LightGray" /> 
    <Setter Property="Template"> 
     <Setter.Value> 
      <ControlTemplate TargetType="ContentControl"> 
       <ContentPresenter Content="{TemplateBinding Content}" /> 
      </ControlTemplate> 
     </Setter.Value> 
    </Setter> 
</Style> 

<Style x:Key="TextButtonInGridStyle" TargetType="Button" BasedOn="{StaticResource TextButtonStyle}"> 
    <Setter Property="VerticalAlignment" Value="Center" /> 
    <Setter Property="Margin" Value="4,4,4,4" /> 
</Style> 

Я хотел бы, чтобы встроить шрифт Styling в стили для подчеркивания, но не понял. Есть ли способ сделать это без вставки TextBlock в ControlTemplate или вложения TextBlock в объявлении элемента Button?

Благодаря

ответ

0

Вы определенно можете, или, возможно, я не понимаю эту проблему, но увидеть, если этот пример, что вы после:

<UserControl 
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d" 
x:Class="SilverlightApplication1.MainPage" 
Width="640" Height="480"> 
<UserControl.Resources> 
    <Style x:Key="TextButtonStyle" TargetType="Button"> 
     <Setter Property="Background" Value="LightGray" /> 
     <Setter Property="Template"> 
      <Setter.Value> 
        <ControlTemplate TargetType="ContentControl"> 
          <ContentPresenter Content="{TemplateBinding Content}" /> 
        </ControlTemplate> 
      </Setter.Value> 
     </Setter> 
    </Style> 
    <Style x:Key="TextButtonInGridStyle" TargetType="Button" BasedOn="{StaticResource TextButtonStyle}"> 
     <Setter Property="VerticalAlignment" Value="Center" /> 
     <Setter Property="Margin" Value="4,4,4,4" /> 
     <Setter Property="FontFamily" Value="Arial"/> 
     <Setter Property="FontWeight" Value="Bold"/> 
     <Setter Property="Foreground" Value="Red"/> 
    </Style> 
</UserControl.Resources> 

<StackPanel x:Name="LayoutRoot" Background="White"> 
    <Button Content="Button" Style="{StaticResource TextButtonStyle}"/> 
    <Button HorizontalAlignment="Left" VerticalAlignment="Stretch" Width="75" Style="{StaticResource TextButtonInGridStyle}" Margin="4,0,0,0"> 
     Button 
    </Button> 
    <Button HorizontalAlignment="Left" VerticalAlignment="Stretch" Width="75" Style="{StaticResource TextButtonInGridStyle}" Margin="4,0,0,0"> 
     <Rectangle Fill="#FFF4F4F5" Height="10" Stroke="Black"/> 
    </Button> 
</StackPanel> 

Вы можете видеть, что в Button нет TextBlock, и если контент представляет собой прямоугольник, он будет показан вместо текста.

 Смежные вопросы

  • Нет связанных вопросов^_^