Saya punya tombol dengan gambar latar belakang tetap dan ingin menampilkan gambar overlay kecil di atasnya. Gambar hamparan mana yang akan dipilih bergantung pada properti ketergantungan ( LapCounterPingStatus) dari viewmodel yang sesuai.
Inilah yang saya dapatkan sejauh ini:
<Button>
<Grid>
<Image Stretch="None"> <!-- Background Image -->
<Image.Style>
<Style TargetType="{x:Type Image}">
<Setter Property="Source" Value="/Images/Pingn.png"/>
</Style>
</Image.Style>
</Image>
<Image Stretch="None" Panel.ZIndex="1"> <!-- Small Overlay Image -->
<Image.Style>
<Style TargetType="{x:Type Image}">
<Style.Triggers>
<DataTrigger Binding="{Binding Path=LapCounterPingStatus}" Value="PingStatus.PING_UNKNOWN">
<Setter Property="Source" Value="/Images/RefreshOverlayn.png"/>
</DataTrigger>
<DataTrigger Binding="{Binding Path=LapCounterPingStatus}" Value="PingStatus.PING_FAILURE">
<Setter Property="Source" Value="/Images/ErrorOverlayn.png"/>
</DataTrigger>
<DataTrigger Binding="{Binding Path=LapCounterPingStatus}" Value="PingStatus.PING_SUCCESS">
<Setter Property="Source" Value="/Images/CheckmarkOverlayn.png"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Image.Style>
</Image>
</Grid>
</Button>
Bagian yang relevan dari model tampilan saya
public class ConfigurationViewModel
{
public enum PingStatus { PING_UNKNOWN, PING_SUCCESS, PING_FAILURE };
public PingStatus LapCounterPingStatus
{
get { return _lapCounterPingStatus; }
set
{
_lapCounterPingStatus = value;
RaisePropertyChanged(LapCounterPingStatusPropertyName);
}
}
}
Saat ini, tidak ada gambar overlay sama sekali yang ditampilkan. Apa yang salah?
MEMPERBARUI
Jendela jejak IDE saya ditampilkan System.ArgumentExceptiondan System.FormatException. Mungkinkah sumber masalah adalah jenis enumerasi yang tidak diketahui PingStatusdi XAML?