可以使用自定义属性重新设置Button控件吗?

时间:2010-01-22 17:31:47

标签: wpf button styles datatemplate

我使自己成为TransparentButton样式,使Button部分按照我想要的方式运行(鼠标悬停,启用等),但我无法做到的是设置内容正确的风格。目前,我为每个按钮手动设置<Button.Content>中的所有内容,显然需要进入Style。我已将样式的ContentTemplate设置为仅包含StackPanelImage的{​​{1}}。问题是,我不知道如何在Label标记中指定<Button ...>的文本和Label的来源。我认为它不得不以某种方式与TemplateBinding有关,但我一直在疯狂搜索,似乎无法找到信息。

因此,总而言之,我只想要一个一致的按钮样式,其中按钮内容只是ImageStackPanel的{​​{1}},我希望能够创建它在我的GUI中有一些简单的东西:

Image

任何提示都将不胜感激!我希望我在这里走在正确的轨道上......

1 个答案:

答案 0 :(得分:1)

为了创建这样的自定义属性,您需要创建一个CustomControl而不是仅使用Button样式。

这很简单 - 只需创建一个自定义控件,即子类按钮,然后添加新属性(作为依赖项属性)。这将使其具有样式,但也使您能够使用您正在描述的语法强制执行这些属性始终可用(除了将<Button更改为<local:MyButton)。

有关详细信息,请参阅MSDN上的Control Authoring Overview