将ContentPresenter添加到Control的样式

时间:2010-10-15 07:31:40

标签: wpf xaml

我正在尝试在WPF中设置一个元素样式,该元素在其中的任何内容周围显示黄色边框,并在光标位于其上时显示工具提示。问题是我不知道如何做到这一点,我尝试过的任何东西似乎都不起作用。

以下是我现在所拥有的:

<Style x:Key="HistoryElementStyle"
       TargetType="{x:Type Control}">
    <Setter Property="BorderBrush"
            Value="Yellow"/>
    <Setter Property="BorderThickness"
            Value="1.5" />
    <Setter Property="CornerRadius"
            Value="2" />
    <Setter Property="ToolTip">
        <Setter.Value>
            <ToolTip Template="{StaticResource HistoryTooltipTemplate}" />
        </Setter.Value>
    </Setter>
    <Setter Property="Template">
        <Setter.Value>
            <ContentPresenter x:Name="PART_Content"
                              Width="Auto"
                              HorizontalAlignment="Stretch"
                              ContentSource="Content"
                              IsEnabled="{TemplateBinding IsEnabled}" />
        </Setter.Value>
    </Setter>
</Style>

Visual Studio抱怨ContentPresenter是无效类型。

干杯

AC

2 个答案:

答案 0 :(得分:2)

您必须将ContentPresenter包裹在<ControlTemplate TargetType="Control" />周围,以匹配Control.Template属性的类型。

答案 1 :(得分:0)

我会尝试在ContentPresenter周围添加DataTempalte标记(抱歉,我无法测试我写这个的地方)。