【发布时间】:2016-01-31 21:08:06
【问题描述】:
我正在尝试更改椭圆的填充画笔。它没有用,所以作为一个快速修复我做了一些体力劳动:
<Ellipse Height="55" Width="55" Grid.Column="1" Grid.Row="1" Fill="DarkGray"
Visibility="{Binding Model.TransitLow, Converter={StaticResource BoolToVisibilityConverter}}"/>
<Ellipse Height="55" Width="55" Grid.Column="1" Grid.Row="1" Fill="White"
Visibility="{Binding Model.IndicationHigh, Converter={StaticResource BoolToVisibilityConverter}}"/>
<Ellipse Height="55" Width="55" Grid.Column="1" Grid.Row="1" Fill="DarkGray"
Visibility="{Binding Model.IndicationLow, Converter={StaticResource BoolToVisibilityConverter}}"/>
<Ellipse Height="55" Width="55" Grid.Column="1" Grid.Row="1" Fill="White"
Visibility="{Binding Model.High, Converter={StaticResource BoolToVisibilityConverter}}"/>
<Ellipse Height="55" Width="55" Grid.Column="1" Grid.Row="1" Fill="DarkGray"
Visibility="{Binding Model.Low, Converter={StaticResource BoolToVisibilityConverter}}"/>
<Ellipse Height="55" Width="55" Grid.Column="1" Grid.Row="1" Fill="Red"
Visibility="{Binding Model.FeedbackError, Converter={StaticResource BoolToVisibilityConverter}}"/>
<Ellipse Height="55" Width="55" Grid.Column="1" Grid.Row="1" Fill="Red"
Visibility="{Binding Model.FunctionFailed, Converter={StaticResource BoolToVisibilityConverter}}"/>
<Ellipse Height="55" Width="55" Grid.Column="1" Grid.Row="1" Fill="Red"
Visibility="{Binding Model.LossOfXE, Converter={StaticResource BoolToVisibilityConverter}}"/>
如您所见,我基本上只是创建了图层,并使用了隐藏和显示算法。
理想情况下,所有这些绑定属性都将进入一个转换器执行逻辑并为一个椭圆返回一个画笔。
理想情况下,我想要的是这样的:
<Ellipse Height="55" Width="55" Grid.Column="1" Grid.Row="1" Fill="{Binding Model.LossOfXE,Model.FunctionFailed....... Converter={StaticResource attrsToBrushConverter}}"/>
【问题讨论】:
-
我对 WPF 的了解不是很深,但我认为您正在寻找的是 MulitValueConverter
-
fill brush of an ellipse是什么意思? -
我认为理想情况下你不想拥有图层并且你也不想向椭圆发送可用颜色的列表。您可能需要某种其他类型的控件来告诉背后的代码更改和更新椭圆
-
我没有代码,这就是重点。我的意思是填充画笔,用于填充椭圆的画笔。
-
不过你应该这样做。 mrsargent 为您提供了一个很好的线索
标签: c# wpf data-binding ivalueconverter