2012-01-03 82 views
0

我是一位WPF和XAML新手的平面設計師。我想創建一個ComboBox,其中選擇的項目保持選中狀態,直到選擇一個新項目。同時,當用戶想要將鼠標懸停在其他項目上時,我想爲高亮顯示不同的顏色。我正在使用混合和C#。組合框Hightlight項目並突出顯示瀏覽的項目

如果這有點令人困惑,我做了一個快速插圖。謝謝!!

這是我的圖片的鏈接: http://www.flickr.com/photos/jeddahbalgame/6633558209/

+0

WTH,我不打算加入G +只是爲了看看這個形象,請在別處上傳,並使用所提供的上傳機制,如果可能的話... – 2012-01-04 00:17:32

+0

對此深感抱歉。自google +以來,除非他們加入,否則我不能讓人看我的照片。這是另一個鏈接到我的flickr與圖像:http://www.flickr.com/photos/jeddahbalgame/6633558209/ – Farnsworth 2012-01-04 08:23:38

回答

2

您可以使用觸發器來指定應該是什麼顏色的項目

<Style TargetType="{x:Type ComboBoxItem}"> 
    <Setter Property="Background" Value="White" /> 
    <Style.Triggers> 
     <Trigger Property="IsSelected" Value="True"> 
      <Setter Property="Background" Value="Green" /> 
     </Trigger> 
    </Style.Triggers> 
</Style> 

要更改鼠標移動的項目顏色,實際上必須覆蓋組合框的HighlightBrush,因爲它是系統顏色。你也可以做到這一點在你的風格

<Style TargetType="{x:Type ComboBoxItem}"> 
    <Style.Resources> 
     <SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="Yellow"/> 
    </Style.Resources> 

    <Setter Property="Background" Value="White" /> 
    <Style.Triggers> 
     <Trigger Property="IsSelected" Value="True"> 
      <Setter Property="Background" Value="Red" /> 
     </Trigger> 
    </Style.Triggers> 
</Style> 
+0

謝謝!我會試試這個! – Farnsworth 2012-01-04 08:39:56

+0

謝謝你的工作出色! – Farnsworth 2012-01-05 18:08:25

0

有多種方法可以做到這一點,無論是使用代碼隱藏在SelectionChanged事件或通過使用綁定和OnPropertyChanged事件從項目或有你的詳細資料將視圖綁定到組合框的SelectedItem。

綁定是首選方法,非常有用,但需要一些時間來學習。我建議使用MVVM模式搜索WPF綁定教程。

MVVM:http://mark-dot-net.blogspot.com/2009/03/binding-combo-boxes-in-wpf-with-mvvm.html

如果僅僅是指具有在組合框本身而不是其他的換頁不同的背景/高亮顏色,那麼你會希望你的風格化組合框。

您可能需要使用DataTriggers,具體取決於您想要的內容,因爲無法查看您的圖像,所以無法確定。

風格化:http://www.uxpassion.com/2008/09/styling-wpf-listbox-highlight-color/(是它的醜陋,但基本是有)

DataTriggers:被選中時How do you highlight an item in a combobox using WPF?

+0

感謝您的答覆。我會檢查出來的! – Farnsworth 2012-01-04 08:39:30