1
我有一個WPF應用程序與一個組合框,我想要樣式的項目,但得到一個意外的行爲取決於選擇哪個項目。爲什麼WPF組合框樣式與預期不符?
下面的XAML代碼片段演示了此問題:
<Page
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Page.Resources>
<Style x:Key="ItemStyle" TargetType="{x:Type ComboBoxItem}">
<Style.Triggers>
<Trigger Property="Content" Value="ABC">
<Setter Property="FontStyle" Value="Oblique"/>
<Setter Property="Foreground" Value="Red"/>
</Trigger>
</Style.Triggers>
</Style>
<Style x:Key="BoxStyle" TargetType="{x:Type ComboBox}">
<Style.Triggers>
<Trigger Property="Text" Value="ABC">
<Setter Property="FontStyle" Value="Italic"/>
<Setter Property="Foreground" Value="Red"/>
</Trigger>
</Style.Triggers>
</Style>
</Page.Resources>
<Border Width="200">
<ComboBox Style="{StaticResource BoxStyle}"
ItemContainerStyle="{StaticResource ItemStyle}"
Height="20">
<ComboBoxItem>ABC</ComboBoxItem>
<ComboBoxItem>DEF</ComboBoxItem>
<ComboBoxItem>GHI</ComboBoxItem>
</ComboBox>
</Border>
</Page>
這將顯示一個簡單的組合框有三個項目; ABC,DEF和GHI。請注意,ABC在下拉菜單中顯示爲傾斜的紅色文字,選中時也顯示在選擇框中。
但是,如果我再次打開下拉菜單,所有3個項目都顯示爲斜向和紅色。
如果選擇了DEF或GHI項目,則這些項目顯示爲正常字體,黑色,並且再次打開下拉菜單時再次顯示正確 - ABC仍顯示爲斜向,紅色。
我在做什麼錯?
大,即解決了這一問題。感謝您的解釋。 –