<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,我希望當屬性爲true時,點爲綠色。我假設我會用DataTrigger做到這一點,但我可以想到的唯一方法就是將其複製到每個橢圓上。這對我來說似乎很難受,並且懷疑他們是否是更好的解決方案。每個橢圓都基於一個屬性,但是它又像是很多重複的代碼。理想情況下,我想要的是這個視圖使用布爾值來反映「站」列表的狀態,以確定它們是否可用。每個視圖的狀態都是單向的,在視圖啓動時不會改變。根據布爾值更改橢圓的顏色
我對WPF和XAML的新手提出了一個優雅的解決方案。每次我嘗試一些東西時,我都會畏縮,因爲它看起來像是一個徹頭徹尾的黑客。
編輯: 感謝@ Alastair的回答,我已經得到它的工作。
那麼你會顯示這些電臺的列表?例如。彩色的圓圈又是他們的名字? – 2013-04-22 03:34:21
沒有。想象它更像一個地圖傳說。每個橢圓代表平面圖上的一個亭子。 – 2013-04-22 03:39:07
我看到你的內部用戶控件中有一個橢圓。你的外部UserControl的DataContext是否有一個IsAvailable屬性? – failedprogramming 2013-04-22 06:14:55