样式未通过 Style 属性 绑定应用于内部元素

Style not being applied to inner element via Style property binding

我有一个由很多部分组成的自定义控件。 其中一个部分是 Border.

我需要从控件外部设置边框的样式,所以我创建了一个 Style 类型的依赖项 属性 并将其绑定到边框,如下所示:

<ControlTemplate TargetType="{x:Type cc:DrawingLayer}" >
 ...
   <Grid x:Name="grid" DataContext="{Binding RelativeSource={RelativeSource TemplatedParent}}" >
       <Border x:Name="PART_AreaSelector" Style="{Binding AreaSelectorStyle}" BorderBrush="#FF3399FF" BorderThickness="1" Background="#55ADD8E6"  />
   </Grid>
</ControlTemplate>

在我使用控件的 window 中,我尝试以这种方式定义其样式:

<cc:DrawingLayer.AreaSelectorStyle>
    <Style TargetType="{x:Type Border}">
        <Setter Property="BorderBrush" Value="Black" />
        <Setter Property="BorderThickness" Value="10" />
        <Setter Property="Background" Value="Red"/>          
    </Style>
</cc:DrawingLayer.AreaSelectorStyle>

但是好像没有应用样式。否 属性 反映样式中的值。

有人能指出我遗漏了什么吗?

"local" 属性 中分配的值

<Border ... BorderBrush="#FF3399FF" BorderThickness="1" Background="#55ADD8E6" />

优先级高于 Style Setters 设置的值。

您需要为这些值设置默认样式。

请参阅 MSDN 上的 Dependency Property Value Precedence