<Grid Grid.Row="1" Width="500" Height="500">
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Ellipse Fill="Red" HorizontalAlignment="Center" Height="25" Margin="0,0,0,0" Stroke="Black" VerticalAlignment="Center" Width="25"/>
<Ellipse Fill="Red" HorizontalAlignment="Center" Height="25" Margin="0,0,0,0" Stroke="Black" VerticalAlignment="Center" Width="25" Grid.Row="1"/>
<Ellipse Fill="Red" HorizontalAlignment="Center" Height="25" Margin="0,0,0,0" Stroke="Black" VerticalAlignment="Center" Width="25" Grid.Row="3"/>
<Ellipse Fill="Red" HorizontalAlignment="Center" Height="25" Margin="0,0,0,0" Stroke="Black" VerticalAlignment="Center" Width="25" Grid.Column="4"/>
<Ellipse Fill="Red" HorizontalAlignment="Center" Height="25" Margin="0,0,0,0" Stroke="Black" VerticalAlignment="Center" Width="25" Grid.Column="4" Grid.Row="4"/>
</Grid>
鉴于上述 XAML,我希望当属性为真时点为绿色。我假设我会用 DataTrigger 来做,但我能想到的唯一方法是为每个椭圆复制它。对我来说这似乎很骇人听闻,并且想知道他们是否是更好的解决方案。每个椭圆都基于一个属性,但这似乎又是很多重复的代码。理想情况下,我想要的是这个视图来反映“站”列表的状态,使用布尔值来确定它们是否可用。每个状态都是单向的,并且在视图启动时不会改变。
我对 WPF 和 XAML 很陌生,无法提出一个优雅的解决方案。每次我尝试某事时我都会畏缩,因为它看起来像是一个完整的黑客攻击。
编辑:感谢@Alastair 的回答,我已经开始工作了。