WPF 自定义控件中模板部件的样式

本文关键字:样式 板部 自定义控件 WPF | 更新日期: 2023-09-27 18:36:53

我们如何为作为WPF中自定义控件一部分的控件设置样式?

WPF 自定义控件中模板部件的样式

您的示例代码正在尝试设置CustomControl本身的 Template 属性,而不是CustomControl中包含的TextBox的属性。当你没有显示你说要更改其ControlTemplateTextBox的 XAML 时,很难回答这样的问题。事实上,我只能"指导"您如何在任何TextBox上执行此操作:

<Style TargetType="MyCustomControl">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="{x:Type CustomControl}">
                <Grid>
                    ...
                    <TextBox Background="{Binding SomeBrushProperty}">
                        <TextBox.Template>
                            <ControlTemplate TargetType="{x:Type TextBox}">
                                <!--Define your TextBox ControlTemplate here-->
                            </ControlTemplate>
                        </TextBox.Template>
                    </TextBox>
                    ...
                </Grid>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

以后请提供所有相关代码,以帮助您快速准确地获得答案。


更新

>>>

好的,在您的问题编辑之后,我想我现在理解您的问题。但是,如果不更改CustomControl的代码或为其提供新ControlTemplate(类似于我的第一个示例),则无法执行此操作。

如果可以更改代码,则首先需要将NewTextValue DependencyProperty创建为要使用的正确类型,例如Brush。然后,必须更改CustomControl的 XAML 定义以包含以下内容:

<TextBox Background="{Binding NewTextValue}">