改变父类的样式



我有一个派生自userControl的自定义类,它描述了"服务窗口"应该具有的特性。它还应该描述这个"服务窗口"的实例应该是什么样子。我有一个样式叫做serviceStyle。现在,每当我创建服务窗口的新实例时,我必须手动在实例的XAML中设置样式,如果可能的话,我想避免这样做,基本上是通过强制服务窗口的所有子窗口的样式为serviceStyle。然后我想要能够做一个淡出动画的textBlock在serviceStyle。现在,由于这是"服务窗口"的子样式,因此似乎无法访问…

在此期间,我发现了一种方法来设置样式作为默认样式为所有的服务窗口,这可以通过在构造函数中添加这一行来完成:DefaultStyleKeyProperty.OverrideMetadata(typeof(NetcarityService), new FrameworkPropertyMetadata(typeof(NetcarityService)));

现在我需要能够从源到元素textBlock在ServiceWindowStyle的xaml ....

创建默认样式不需要这样做,只需要定义不带键的样式。例如,此样式适用于应用程序中的所有按钮(如果样式在app.xaml中定义)

        <Style TargetType="{x:Type Button}">
            <Style.Setters>
                <Setter Property="Margin" Value="6"></Setter>
                <Setter Property="Padding" Value="6,3,6,3"></Setter>
            </Style.Setters>
        </Style>

关于孩子,我认为你只需要写一些代码来检测当一个孩子被添加,并设置孩子的默认样式。我认为你可以重写OnVisualChildrenChanged.

p。设置DefaultStyleKeyProperty应该在静态构造函数

中完成

相关内容

  • 没有找到相关文章

最新更新