मैं WPF के लिए बिल्कुल नया हूं लेकिन .NET (Winforms) में अनुभव किया है। मैं चयनित आइटम के केंद्रित और फ़ोकस किए गए रंग को नियंत्रित करने के लिए सूचीबॉक्स की हाइलाइट शैली में हेरफेर करने की कोशिश कर रहा हूं। इस पर मैंने पाया है कि प्रत्येक एकल ट्यूटोरियल सिस्टमकॉलर्स के लिए एक नया मान असाइन करने के लिए एक कस्टम शैली का उपयोग करता है। हाइलाइटब्रशकी और सिस्टमकॉलर्स। कंट्रोलब्रशकी। लेकिन यह काम नहीं कर रहा है। काम करने के लिए अनगिनत घंटों के बाद, यह मेरे लिए हुआ कि शायद यह ओएस से संबंधित था। मैं इसे विंडोज 10 सिस्टम पर कोशिश कर रहा था। मैंने विंडोज 7 सेटअप पर एक ही कोड चलाया, और देखो और देखो, यह काम किया!विंडोज़ में डब्ल्यूपीएफ लिस्टबॉक्स हाइलाइट 10
तो स्पष्ट रूप से पुरानी विधि विंडोज 10 में काम नहीं करती है (कम से कम यह मेरे जैसा दिखता है)। क्या किसी को कोई विकल्प मिला है? दिन के अंत में, मैं सिर्फ सूची बॉक्स को चमकदार हाइलाइट बनाए रखना चाहता हूं, भले ही इसमें फोकस न हो। डिफ़ॉल्ट ग्रे हाइलाइट देखना मुश्किल है, और कुछ उपयोगों में उचित प्रतीत नहीं होता है। मेरे पास असली दुनिया परिदृश्य है जहां फोकसबॉक्स से फोकस दूर होने पर मूल रूप से गायब होने के लिए हाइलाइट के लिए यह बहुत ही अप्राकृतिक लगता है।
नीचे एक्सएएमएल कोड है जो मैंने विंडोज 7 पर काम किया लेकिन विंडोज 10 पर नहीं किया। (वैसे, मैंने SystemColors.ControlBrushKey को SystemColors.InactiveSelectionHighlightBrushKey के साथ बदलने की भी कोशिश की है - परिणाम समान थे)।
<Window x:Class="TestApp.TestWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:TestApp"
mc:Ignorable="d"
Title="TestWindow" Height="300" Width="300" Loaded="Window_Loaded">
<Window.Resources>
<Style x:Key="myListboxStyle">
<Style.Resources>
<!-- Background of selected item when focused -->
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="Red" />
<!-- Background of selected item when not focused -->
<SolidColorBrush x:Key="{x:Static SystemColors.ControlBrushKey}" Color="Green" />
</Style.Resources>
</Style>
</Window.Resources>
<Grid>
<ListBox x:Name="listBox" Style="{StaticResource myListboxStyle}" HorizontalAlignment="Left" Height="100" Margin="22,18,0,0" VerticalAlignment="Top" Width="237">
<ListBoxItem>Test 1</ListBoxItem>
<ListBoxItem>Test 2</ListBoxItem>
<ListBoxItem>Test 3</ListBoxItem>
</ListBox>
<TextBox x:Name="textBox" HorizontalAlignment="Left" Height="23" Margin="50,165,0,0" TextWrapping="Wrap" Text="TextBox" VerticalAlignment="Top" Width="120"/>
</Grid>
</Window>
धन्यवाद कोरी। मैं पहले से ही आपके जैसे समाधान के साथ खेल रहा था (मैंने पहले ट्री व्यू की उपस्थिति को अनुकूलित करने के लिए ऐसा कुछ इस्तेमाल किया था), लेकिन आपके दिशानिर्देशों ने मुझे वांछित टुकड़े दिए जो वास्तव में चाहते थे। – Cosmicjive
यह मेरे लिए काम करता है, निराशाजनक है कि यह काम करने के लिए विंडोज 10 में बहुत कुछ लेता है ... – 00jt