है आप Z सूचकांक संपत्ति का उपयोग करने के लिए है, और कोई बनाया देखते हैं क्योंकि जो काम आप चाहते हैं उसे करने के लिए, मैंने अपना खुद का बना दिया। जेड मान जितना अधिक होगा, नियंत्रण के सामने 'करीब' है। तो आप मनमाने ढंग से उच्च जेड मान सेट किए बिना अपना नियंत्रण शीर्ष पर रखना चाहते हैं।
तो यहां एक छोटा सा कार्य है जिसे मैंने स्वयं ठीक करने के लिए लिखा है। नोट: यह मान लें कि आप कैनवास और उपयोगकर्ता नियंत्रण का उपयोग कर रहे हैं। तो यदि आपको अपना मामला नहीं है तो आपको इसे थोड़ा सा अनुकूलित करने की आवश्यकता हो सकती है।
असल में इसे नियंत्रण के सूचकांक को स्थानांतरित करने के लिए मिल जाएगा, तो वर्तमान में इसके ऊपर कोई भी नियंत्रण 1 से नीचे जाएगा और स्थानांतरित करने के लिए नियंत्रण शीर्ष पर रखा जाएगा (पदानुक्रम बनाए रखने के लिए)।
static public void BringToFront(Canvas pParent, UserControl pToMove)
{
try
{
int currentIndex = Canvas.GetZIndex(pToMove);
int zIndex = 0;
int maxZ = 0;
UserControl child;
for (int i = 0; i < pParent.Children.Count; i++)
{
if (pParent.Children[i] is UserControl &&
pParent.Children[i] != pToMove)
{
child = pParent.Children[i] as UserControl;
zIndex = Canvas.GetZIndex(child);
maxZ = Math.Max(maxZ, zIndex);
if (zIndex > currentIndex)
{
Canvas.SetZIndex(child, zIndex - 1);
}
}
}
Canvas.SetZIndex(pToMove, maxZ);
}
catch (Exception ex)
{
}
}
स्रोत
2014-06-09 13:07:22
प्रश्न ऑर्डर बदलने के बारे में नहीं था, लेकिन सामने लाया गया, निश्चित रूप से, मौजूदा maxOrder को स्थापित करने में, और इस आदेश को बड़ा स्थापित करने में शामिल है ... – serhio