2009-10-15 46 views
0

我有以下为UserControl的身体:WPF:如何将内容控件包装在另一个中?

<Label FontWeight="Bold" 
     x:Name="PaletteLabel" 
     HorizontalAlignment="Stretch" 
     BorderThickness="1" 
     > 
    <Label.Background> 
     <LinearGradientBrush EndPoint="0.5,1" 
          StartPoint="0.5,0"> 
      <GradientStop Color="#FFB6B5C3" 
          Offset="0" /> 
      <GradientStop Color="#FFF4F4F6" 
          Offset="1" /> 
     </LinearGradientBrush> 
    </Label.Background> 
    <ContentPresenter /> 
</Label> 

我希望能够利用这样的:

<uc:NiceLabel>Text Content</uc:NiceLabel> 

但是,这并没有给我我所期望的效果。我在这里犯了什么明显的错误?

回答

1

你可以用一个简单的风格做到这一点(如果我正确地得到你)。

<Window x:Class="WpfApplication1.Window1" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    Title="Window1" Height="300" Width="300"> 
    <Window.Resources> 
     <Style TargetType="{x:Type Label}" x:Key="NiceLabelStyle"> 
      <Setter Property="FontWeight" Value="Bold" /> 
      <Setter Property="BorderThickness" Value="1" /> 
      <Setter Property="HorizontalAlignment" Value="Stretch" /> 
      <Setter Property="Background"> 
       <Setter.Value> 
        <LinearGradientBrush EndPoint="0.5,1" 
          StartPoint="0.5,0"> 
         <GradientStop Color="#FFB6B5C3" 
          Offset="0" /> 
         <GradientStop Color="#FFF4F4F6" 
          Offset="1" /> 
        </LinearGradientBrush> 
       </Setter.Value> 
      </Setter> 
     </Style> 
    </Window.Resources> 
    <StackPanel> 
     <Label Style="{StaticResource NiceLabelStyle}">Test</Label> 
    </StackPanel> 
</Window> 
相关问题