gpt4 book ai didi

c# - 改变 parent 的风格

转载 作者:太空宇宙 更新时间:2023-11-03 16:43:28 25 4
gpt4 key购买 nike

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

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

现在我需要能够从源代码获取 ServiceWindowStyle 的 xaml 中的元素 textBlock....

提前致谢。

最佳答案

您不需要为了制作默认样式而这样做,您只需在没有键的情况下定义您的样式。例如,此样式适用于应用程序中的所有按钮(如果样式在 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。

附言。设置 DefaultStyleKeyProperty 应该在静态构造函数中完成

关于c# - 改变 parent 的风格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6695570/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com