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

时间:2013-10-24 12:08:57

标签: c# wpf textbox

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

1 个答案:

答案 0 :(得分:0)

您的示例代码正在尝试设置Template本身的CustomControl属性以及而不是 TextBox中包含的CustomControl属性。如果您没有显示TextBox的XAML,而您表示要更改ControlTemplate,则很难回答这样的问题。事实上,我只能“指导”您如何在任何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>

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


UPDATE&GT;&GT;&GT;

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

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

<TextBox Background="{Binding NewTextValue}">