可以显示多个文本字符串的按钮样式?

时间:2011-06-28 22:53:01

标签: silverlight button coding-style

我需要一个按钮样式,它将显示绑定叮咬的3种不同文本。现在,我可以轻松地将一个文本字符串传递给Content Presenter,其中Content =“{TemplateBinding Content}”。我需要能够以类似的方式将3个字符串传递给按钮样式中的3个texblock或使用多个内容呈现器。我想知道我怎么能做到这一点。任何想法都受到高度赞赏?

1 个答案:

答案 0 :(得分:2)

您可以使用自定义DataTemplate:

<Button>
    <Button.ContentTemplate>
        <DataTemplate>
            <StackPanel>
                <TextBlock Text="1" />
                <TextBlock Text="2" />
                <TextBlock Text="3" />
            </StackPanel>
        </DataTemplate>
    </Button.ContentTemplate>
</Button>

您可以通过更改StackPanel来换出或更改布局。

如果需要是Style,您可以使用:

<Style TargetType="Button">
    <Setter Property="ContentTemplate">
        <Setter.Value>
            <DataTemplate>
                <StackPanel>
                    <TextBlock Text="{Binding One}" />
                    <TextBlock Text="{Binding Two}" />
                    <TextBlock Text="{Binding Three}" />
                </StackPanel>
            </DataTemplate>
        </Setter.Value>
    </Setter>
</Style>

然后你需要定义一个自定义类来传递这三个值:

public class MyClass {
    public string One { get; set; }
    public string Two { get; set; }
    public string Three { get; set; }
}

然后像这样使用它:

<Button>
    <local:MyClass One="1" Two="2" Three="3" />
</Button>

其中local指的是MyClass的命名空间。