WPF:如何将内容控件包装在另一个内容中?

时间:2009-10-15 12:18:37

标签: wpf user-controls

我将以下内容作为UserControl的正文:

<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>

但这并没有给我带来我期望的效果。我在这里犯了任何明显的错误吗?

2 个答案:

答案 0 :(得分: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>

答案 1 :(得分:0)