2015-12-16 15 views
11

में अक्षम है मैं WPF में रिबनकंट्रोलर का उपयोग कर एक एप्लिकेशन बना रहा हूं।रिबन गैलरी .NET 4.6

यह ठीक काम कर रहा है जब तक कि मैंने .NET 4.6 स्थापित नहीं किया। फिर मेरी "रिबन गैलरी" अक्षम राज्य है (व्यूपॉइंट्स ड्रॉप डाउन मेनू)। मैं भी कोड है, लेकिन कोई भाग्य के माध्यम से सक्षम करने के लिए कोशिश की,। (

<Custom:RibbonGallery SelectedValue="Entrancelobby" SelectedValuePath="Content" ScrollViewer.VerticalScrollBarVisibility="Visible" MaxHeight="500"> 
     <Custom:RibbonGalleryCategory Name="viewpointsList" FontFamily="Times New Roman" FontSize="14"> 
       <Custom:RibbonGalleryItem Content="Entrancelobby" Foreground="Black" /> 
       <Custom:RibbonGalleryItem Content="Entrancelobby 01" Foreground="Black"/> 
     <Custom:RibbonGalleryCategory> 
</Custom:RibbonGallery> 

संलग्नक कोई मुद्दा देखें साथ 4,5.Net 4.5 (Working)

नेट 4.6 (मुद्दे)enter image description here

अग्रिम धन्यवाद ...

उत्तर

17

यह वास्तव में रिबन गैलरी में एक बग है जो केवल नए तर्क से अवगत कराया जाता है 4.6.1। बग यह है कि आरजी अपने आंतरिक राज्य को सही ढंग से प्रारंभ नहीं करता है, ताकि अगर कोई CoerceValue (IsEnabledProperty) को कॉल करता है तो यह झूठी मान को जोड़ता है (यानी गैलरी को अक्षम करता है)। उदाहरण के लिए, ribbonGallery.IsEnabled = true; पर कॉल करने से वास्तव में आरजी (4.0 में भी) अक्षम हो जाएगा।

नेट 4.6.1 में वंश के लिए सक्षम है प्रचार करने के लिए बेहतर तर्क है। यह तर्क ribbonGallery.CoerceValue(IsEnabledProperty) पर कॉल करना समाप्त करता है, जो बग के कारण आरजी को अक्षम करता है।

कोई कामकाज है: आरजी के कमांड को बदलें। इससे आरजी अपने आंतरिक राज्य को सही तरीके से रीसेट कर देता है, ताकि भविष्य के दबाव सही काम कर सकें। उदाहरण के लिए: RibbonGallery में

ribbonGallery.Command = ApplicationCommands.Print; // arbitrary command 
ribbonGallery.Command = null;      // don't keep the command 
+1

यह पुष्टि करने के लिए धन्यवाद कि यह बग है। लेकिन मुझे समझ में नहीं आता कि इसे कैसे हल किया जाए। क्या आप कृपया – Satish

+0

बेंट कर सकते हैं, यह काम कर रहा है ... :) लेकिन फिर भी यह कैसे काम करता है मुझे समझ में नहीं आया ... – Satish

+1

@satish_srg - रिबन गैलरी कोर्सेस गलत है अगर उसके पास एक कमांड है जिसका CanExecute गलत है। यदि कोई आदेश नहीं है, तो वह दबाव नहीं होना चाहिए, लेकिन एक दोषपूर्ण प्रारंभिक कारण यह वैसे भी होता है। आदेश को गैर-शून्य मान पर सेट करना दोषपूर्ण स्थिति को साफ़ करता है। इसे वापस शून्य पर सेट करना उस कमांड को त्याग देता है जिसे आप वास्तव में नहीं चाहते थे, लेकिन अब आरजी एक ऐसे राज्य में है जहां यह सही ढंग से IsEnabled को सहारा देगा। –

2

विकलांग आइटम एक ही मुद्दा रहा हो रही है, एक बार IsEnabled गलत पर सेट है मैं फिर से सक्षम नहीं कर सकते। यह पहले काम कर रहा था और पीसी पर नेट 4.6 को अपडेट करने के बाद से देखा गया था। मैंने बिना किसी पुनर्मूल्यांकन के कुछ साल पहले एक पुराना कार्यक्रम चलाया है और यह उसी भाग्य से पीड़ित है। तो अगर नेट 4.5 लक्षित है तो यह उसी समस्या को प्रदर्शित करेगा क्योंकि यह पीसी से जुड़ा हुआ है। नेट स्थापित है। यदि पीसी विंडोज 10 का उपयोग करता है तो नेट फ्रेमवर्क को नेट 4.5 पर वापस नहीं लाया जा सकता है क्योंकि यह 4.6 न्यूनतम अधिकार का उपयोग करता है?

कमांड को कम करने की कोशिश की लेकिन यह असफल रहा। पीसी पर स्थापित नेट 4.6.1 और लक्षित विभिन्न संयोजन लक्षित लेकिन असफल। मेरे लिए मुझे लगता है कि मैं माइक्रोसॉफ्ट रिबन सामान को निकाल दूंगा जो हमेशा विकास के समय में मुझे एक छोटी गाड़ी के बाद लग रहा था।

+1

के साथ प्रतिस्थापित करें, मैं पुष्टि करना चाहता हूं, उस बग को पुन: उत्पन्न किया जाता है, जब 4।6 स्थापित है, भले ही परियोजना 4.5 को लक्षित कर रही हो। – Dennis

संबंधित मुद्दे