gpt4 book ai didi

c# - 枚举上的数据触发以更改图像

转载 作者:IT王子 更新时间:2023-10-29 03:37:18 24 4
gpt4 key购买 nike

我有一个带有固定背景图像的按钮,我想在它上面显示一个小的叠加图像。选择哪个覆盖图像取决于相应 View 模型的依赖属性 (LapCounterPingStatus)。

这是我到目前为止得到的:

<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>

我的 View 模型的相关部分

public class ConfigurationViewModel
{
public enum PingStatus { PING_UNKNOWN, PING_SUCCESS, PING_FAILURE };

public PingStatus LapCounterPingStatus
{
get { return _lapCounterPingStatus; }
set
{
_lapCounterPingStatus = value;
RaisePropertyChanged(LapCounterPingStatusPropertyName);
}
}
}

现在,根本没有显示叠加图像。可能出了什么问题?


更新

我的 IDE 的跟踪窗口显示 System.ArgumentExceptionSystem.FormatException。问题来源可能是 XAML 中未知类型的枚举 PingStatus 吗?

最佳答案

你需要两件事来让它工作:

1 - 在 XAML 文件的根元素中将 xmlns 引用添加到定义 Enum 的命名空间:

<UserControl ...
xmlns:my="clr-namespace:YourEnumNamespace;assembly=YourAssembly">

2 - 在 DataTriggerValue 属性中,使用 {x:Static} 形式:

 <DataTrigger Binding="{Binding Path=LapCounterPingStatus}" Value="{x:Static my:PingStatus.PING_UNKNOWN}">

请注意,Enum 类型必须以您在上面定义的 xmlns 前缀为前缀。

编辑:

如果您的枚举是在一个类中声明的,您需要使用以下语法:

{x:静态命名空间:ClassName+EnumName.EnumValue}

例如:

{x:Static my:ConfigurationViewModel+PingStatus.PING_UNKNOWN}

关于c# - 枚举上的数据触发以更改图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13917033/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com