我试图让按钮中的背景图像根据MVVM链接对象中的值进行更改。
按钮的默认样式是image1,
当对象处理成功后,该属性设置为"成功"并且按钮图像应更改为image2
但是当对象没有成功处理时,该属性设置为"错误:"并且按钮图像应更改为image3
我尝试绑定到表示文件位置的字符串(直接在Button.Background标记中的ImageBrush属性ImageSource上输入相同的字符串。
还将Uri返回到该文件是不是
尝试将Setter标记与触发器一起使用,XAML在使用
时中断尝试使用对象中的附加属性从中创建一个BitmapImage。或者
这是应用程序中唯一剩下的东西。有人有一些建议
答案 0 :(得分:0)
我现在找到了一个可行的解决方案。通过从按钮中删除背景,并将以下内容添加到内容:
<Button.Content>
<StackPanel Orientation="Vertical">
<Image Source="{Binding Path=Background}" Stretch="Fill" Height="100" Width="400" />
<TextBlock Margin="0,-130,0,0" Height="30" Width="400" HorizontalAlignment="Center"
TextAlignment="Center" VerticalAlignment="Center" Text="{Binding Path=Title}"
Foreground="White" FontFamily="/Assets/futura-md.ttf#Futura Md BT"/>
</StackPanel>
</Button.Content>
将背景定义如下:
public BitmapImage Background
{
get
{
return new BitmapImage(new Uri(string.Format( "/Assets/knop_{0}.png",buttoncolor), UriKind.Relative));
}
}
public string ButtonImage
{
get { return buttonimage; }
set
{
buttonimage = value;
RaisePropertyChanged("ButtonImage");
RaisePropertyChanged("Background");
}
}
现在,当ButtonImage的值发生变化时,按钮'background'将会改变。
这不完全是我所希望的,但它正在发挥作用。