我正在尝试做类似于这个的事情:
<Window x:Class="WpfApplication1.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Grid>
<Button>
<Button.Style>
<Style TargetType="{x:Type Button}">
<Setter Property="Content"
Value="No mouse over" />
<Style.Triggers>
<Trigger Property="IsMouseOver"
Value="True">
<Setter Property="Content">
<Setter.Value>
<CheckBox Content="Mouse is over" />
</Setter.Value>
</Setter>
</Trigger>
</Style.Triggers>
</Style>
</Button.Style>
</Button>
</Grid>
</Window>
但是,我遇到了一个运行时的XamlParseException,错误信息如下:
无法将内容类型为'System.Windows.Controls.CheckBox'的内容添加到类型为'System.Object'的对象中。对象错误为'System.Windows.Controls.CheckBox'。
我实际上正在尝试根据外部条件为按钮的内容绘制不同的图标。因此,我正在尝试使用DataTrigger,但上面的示例简化了问题。有什么想法吗?
Button.Content
属性时,它就不起作用了。例如:<Button Content="initial content" Style="{StaticResource StyleChangeContentOnMouseOver}" />
只会显示"initial content"
。 - FlyingFoX