2009-09-30 65 views
4

我刚刚开始使用样式和控件模板,并创建了以下样式以将按钮显示为网格中的文本。我想将字体样式嵌入到用于下划线的样式中,但还没有弄清楚。是否可以在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> 

我想将字体样式嵌入到下划线的样式中,但还没有弄清楚。如果没有将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,如果内容是一个矩形,它会很好地显示而不是文本。

相关问题