gpt4 book ai didi

wpf - 根据 bool 值更改边框颜色

转载 作者:行者123 更新时间:2023-12-04 22:37:26 24 4
gpt4 key购买 nike

我有一个边框,我想根据 bool 变量更改它的颜色。我用了link here实现一个 BooleanColor 转换器。

代码如下所示:

xaml:

<Border Width="45" 
Height="45" CornerRadius="5"
Background="{Binding Path=LivenessActive, Converter={StaticResource BrushColorConverter}}" />

后台的LivenessActive变量:

public bool LivenessActive
{
get { return _livenessActive; }
set
{
_livenessActive = value;
OnPropertyChanged("LivenessActive");
}
}

该类继承了 INotifyPropertyChanged 并实现了 OnPropertyChanged 事件。

BrushColorConverter.cs:

public class BrushColorConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if ((bool)value)
{
{
return new SolidColorBrush(Colors.GreenYellow);
}
}
return new SolidColorBrush(Colors.DarkGray);
}

public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}

}

但我什至无法触发 BrushColorConverter。我做错了什么?

第二:如果我想从另一个窗口使用它怎么办?

<Border Width="45" Height="45" CornerRadius="5" 
Background="{Binding Path=LivenessActive, Converter={StaticResource BrushColorConverter},
RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type view:MyWindowName}}}" />

我使用了相同的代码,但没有找到。

最佳答案

总结一下评论,因为上面的代码似乎没有任何问题,这表明

的绑定(bind)上下文存在问题
Background="{Binding Path=LivenessActive, Converter={StaticResource BrushColorConverter}}"

您不能从另一个 Window 引用一个 Window。如果你有 2 个独立的 Window,每个都有 Border 应该触发相同的属性更改,那么你将两个窗口的 DataContext 设置为相同的实例查看模型。

关于wpf - 根据 bool 值更改边框颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26713533/

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