如何将一种样式应用于另一种样式的模板内控件



control:

<Style x:Key="base style" TargetType="{x:Type cust:SomeCustomControl}">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="{x:Type cust:SomeCustomControl}">
                <DataGrid >
                    <!-- some content... -->
                </DataGrid >
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

我试图添加另一种风格,这应该是完全相同的,但与"粗体"字体的第一行在DataGrid:

<Style x:Key="bold row" TargetType="{x:Type cust:SomeCustomControl}" BasedOn="{StaticResource base style}">
??????????????
??????????????
</Style>

但是我不明白我怎么能改变一些属性在第一种风格没有复制整个代码的"基本风格"。我想我应该加上:

<Style TargetType="{x:Type DataGridCell}">
    <Style.Triggers>
        <DataTrigger Binding="{Binding RowIndex}" Value="0">
            <Setter Property="FontWeight" Value="Bold"/>
        </DataTrigger>
    </Style.Triggers>
</Style>

但是我的"bold row"样式适用于cust:SomeCustomControl。那么如何在不覆盖整个

的情况下,在"粗体行"样式中做到这一点呢?
<Setter Property="Template">

?

你不能把你的DataGridCell样式添加到继承的样式的资源吗?

<Style x:Key="bold row" TargetType="{x:Type cust:SomeCustomControl}" BasedOn="{StaticResource base style}">
    <Style.Resources>
        <Style TargetType="{x:Type DataGridCell}">
            <Style.Triggers>
               <DataTrigger Binding="{Binding RowIndex}" Value="0">
                    <Setter Property="FontWeight" Value="Bold"/>
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </Style.Resources>
</Style>

它应该使用相同的模板,但是继承的模板将对所有DataGridCell对象应用触发器

相关内容

  • 没有找到相关文章

最新更新