【问题标题】:Can't modify button content of a custom template无法修改自定义模板的按钮内容
【发布时间】:2012-07-08 01:04:04
【问题描述】:

我确信这是一个非常简单的解决方案,但我似乎无法弄清楚。 一般来说,我是 WP7 编程和 Expression Blend 修改的新手。

我在 Expression Blend 中创建了一个自定义按钮(模板),我在 Windows Phone 7 应用程序的多个地方使用它。我已经删除了自定义按钮的内容,但之后我无法再修改按钮的内容。

例如,如果我在同一页面上有多个相同类型(基于模板)的按钮,我不知道以后如何修改内容。

这是在 App.xaml 中处理按钮的方式:

<Application.Resources>
    <ControlTemplate x:Key="Main1StopButtons" TargetType="Button">
        <Border BorderThickness="3" CornerRadius="25">
            <Border.BorderBrush>
                <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
                    <GradientStop Color="#FF181616" Offset="0.01"/>
                    <GradientStop Color="#FF494444" Offset="0.684"/>
                </LinearGradientBrush>
            </Border.BorderBrush>
            <Border.Background>
                <LinearGradientBrush EndPoint="0.5,1" MappingMode="RelativeToBoundingBox" StartPoint="0.5,0">
                    <GradientStop Color="#FF0A0909" Offset="0.797"/>
                    <GradientStop Color="#FF272727" Offset="0.003"/>
                </LinearGradientBrush>
            </Border.Background>
            <TextBlock TextWrapping="Wrap" Text=""/>
        </Border>
    </ControlTemplate>
</Application.Resources>

如果我修改 TextBlock 的“文本”(改为“按钮”),那么所有使用该模板的按钮都具有“按钮”的文本。

感谢您的耐心等待:)

【问题讨论】:

    标签: windows-phone-7 templates expression-blend


    【解决方案1】:

    为此使用TemplateBinding。它说要从控件中获取属性并将其放到模板中:

    <TextBlock TextWrapping="Wrap" Text="{TemplateBinding Content}"/>
    

    或者更复杂的:

    <ContentControl Content="{TemplateBinding Content}" />
    

    【讨论】:

    • 谢谢!我知道这是一个快速解决方案,现在查看解决方案似乎太容易了:)
    猜你喜欢
    • 1970-01-01
    • 2015-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-08
    相关资源
    最近更新 更多