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