रंग को हाइलाइट करें मुझे WP12 में Listbox
के SelectedItem
के HighlightBrushKey
को सेट करने में कोई समस्या है। मेरा इरादा कोड में झूठ बोलने वाले दिए गए बूलियन मान के आधार पर किसी आइटम का रंग सेट करना था।WPF बदलना ListboxItem चयनित जब
मैं कोशिश की है के लिए निम्न चरण:
, एक कनवर्टर को लागू करने बूलियन जाँच और सही रंग लौटने।
उदाहरण:
<ribbon:RibbonWindow.Resources> <l:WindowControl x:Key="ListBoxItemBackgroundConverter" /> <Style x:Key="listBoxStyle" TargetType="{x:Type ListBoxItem}"> <Style.Resources> <SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="{Binding Source={x:Static SystemColors.HighlightBrushKey}, Converter={StaticResource ListBoxItemBackgroundConverter}}"/> <SolidColorBrush x:Key="{x:Static SystemColors.ControlBrushKey}" Color="{Binding Source={x:Static SystemColors.ControlBrushKey}, Converter={StaticResource ListBoxItemBackgroundConverter}}"/> </Style.Resources> </Style> </ribbon:RibbonWindow.Resources>
समस्या यहीं पर Convert विधि केवल एक बार बुलाया गया था, लेकिन मैं कनवर्टर हर बार जब मैं एक आइटम और बूलियन जाँच का चयन कहा जा करने की जरूरत है। एक ट्रिगर की तरह, लेकिन "
HighlightBrushKey
" के साथ।कनवर्टर:
public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { if(currentField == null) return Brushes.Yellow; if (currentField.Save) return Brushes.LightGreen; else return Brushes.Yellow; }
मेरा अगला विचार "
HighlightBrushKey
" सेटिंग गया था करने के लिए "Transparent
" और कोड में मैन्युअलitem.Background
बदलते। समस्या यह है कि मेरे आइटम सफेद हो गया था और पृष्ठभूमि का रंगउदाहरण नहीं देखा जा सकता: अग्रिम में
<ListBox.Resources> <SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="Transparent" /> <SolidColorBrush x:Key="{x:Static SystemColors.HighlightTextBrushKey}" Color="Black" /> <SolidColorBrush x:Key="{x:Static SystemColors.ControlBrushKey}" Color="Transparent" /> </ListBox.Resources>
धन्यवाद! :)
अच्छा पहला सवाल एंडी, ठीक उसी तरह के सटीक उदाहरणों के साथ बनाया गया जो आप हाइलाइट करने की कोशिश कर रहे थे! +1 – ThePower
@ एंडी आपके कनवर्टर में वर्तमान फ़ील्ड 1 क्या है? आप इसे कनवर्टर में कैसे प्राप्त कर रहे हैं? क्या आप उपलब्ध अदृश्य शैली में 'currentField' (यानी YourViewModelProperty) को बाध्य करने का प्रयास कर सकते हैं। – akjoshi
वर्तमान फ़ील्ड एक वस्तु है। कक्षा का नाम फ़ील्ड है और इसमें "सहेजें" नामक एक बूलियन संपत्ति है। मैं एक्सएएमएल में इसे कैसे बांध सकता हूं? – Andy