更改样式中按钮的内容?

我正在尝试做类似的事情:

      

但是,我得到一个运行时XamlParseException,其消息为:

无法将“System.Windows.Controls.CheckBox”类型的内容添加到“System.Object”类型的对象中。 对象’System.Windows.Controls.CheckBox出错

我实际上是在尝试根据外部条件为按钮的内容绘制不同的图标。 所以我实际上是在尝试使用DataTrigger,但上面的例子简化了问题。 有任何想法吗?

发生实际错误是因为Visuals不能直接设置为Setter值。 您可以通过使用DataTemplate设置ContentTemplate,或者将内容创建为资源(可以是特定于按钮或位于其他位置)来获取您正在寻找的行为。

   

备注! 确切地说,您的示例适用于.NET Framework 4,无需任何更改!

   

如果要在应用程序周围使用按钮使用通用样式,则会使用图像为资源的方法获得可视树冲突。 因此,在这种情况下,模板是您唯一的选择。

警告:这可能不是最好或最正确的方法。 请务必阅读此页面上的其他答案。

很确定你想在这种情况下使用控件模板。 就像是:


 

并在触发器中添加控件模板以进行hover。

这是一个很好的链接