बिना भरे हुए हैं दिखाने के लिए WrapPanel बनाने के लिए। इसलिए, मैं वर्टिकल स्क्रॉलबार दिखाना चाहता हूं जब रैपपैनल बटन (बच्चों) से भरा होता है ताकि वे लगातार बटन जोड़ सकें।कैसे खड़ी स्क्रॉलबार जब बच्चे मैं एक WrapPanel और बटन प्रोग्राम के रूप में बनाई गई हैं और WrapPanel के बच्चों के रूप में जोड़ा है के साथ या ScrollViewer
हम एक स्क्रॉलबार से पता चला की जरूरत है, हम ScrollViewer लाने के लिए है? स्क्रॉलव्यूयर के बिना कोई रास्ता नहीं है? क्या मैं प्राप्त करना चाहते हैं क्योंकि WrapPanel छोटे आकार की है, मैं एक स्क्रॉलबार केवल आवश्यकता (बच्चों का पूरा) की तरह प्रदर्शित करना चाहते हैं है।
मेरे कोड के नीचे के रूप में सरल है (ग्रिड के अंदर WrapPanel और ग्रिड TabControl के अंदर है) अपने उत्कृष्ट प्रदर्शन के लिए
बहुत धन्यवाद हमेशा।
अद्यतन: मैंने कई दिनों तक इंटरनेट पर समाधान खोजने में संघर्ष किया। और मैंने ScrollViewer के अंदर WrapPanel डालने की कोशिश की। हालांकि, हालांकि मैं ऑटो के लिए VerticalScroll सेट, ऊर्ध्वाधर स्क्रॉलबार हमेशा दिखाई देता है WrapPanel किसी भी बच्चों को नहीं है, तब भी जब।
इसके अलावा, जब मैं जानबूझकर WrapPanel बच्चों (बटन) से भरा बनाने के लिए, ScrollViewer के ऊर्ध्वाधर स्क्रॉलबार scrolldown उपलब्धता प्रदान नहीं करता है। और WrapPanel का लब्बोलुआब पर बटन कटौती दिखाया गया है और अधिक, मैं जमीनी स्तर पर बटन से आगे देखने के लिए नीचे स्क्रॉल नहीं कर सकते। मैंने बटन को जानबूझकर रैपपनेल की निचली पंक्ति से परे रखा था।
या बिना, मैं केवल लंबवत स्क्रॉलबार को दिखाना चाहता हूं जब केवल आवश्यक (बच्चों से भरा)। ऐसा करना बहुत आसान लगता है। लेकिन इसे ठीक से काम करना मुश्किल है।
समाधान: श्री हेंक Holterman द्वारा प्रदान किया गया
<DropShadowEffect/>
</Button.Effect>
</Button>
<WrapPanel x:Name="WrapPanelGreen" HorizontalAlignment="Left" Height="180" VerticalAlignment="Top" Width="232" UseLayoutRounding="True" ScrollViewer.CanContentScroll="True" ScrollViewer.VerticalScrollBarVisibility="Auto"/>
</Grid>
</TabItem>
</TabControl>
और नीचे मेरी सरल कोड है जो प्रोग्राम के रूप में बटन बनाने के लिए और WrapPanel के एक बच्चे के रूप में जोड़ सकते हैं।
for (int k = 0; k < Overviews.Length; k++)
{
Button btnoverviewcontent = new Button();
ToolTip tt = new ToolTip();
tt.Content = "Press this button if you want to modify or delete.";
btnoverviewcontent.ToolTip = tt;
btnoverviewcontent.Cursor = Cursors.Hand;
SolidColorBrush mySolidColorBrush = new SolidColorBrush();
mySolidColorBrush.Color = Color.FromArgb(255, 101, 173, 241);
btnoverviewcontent.Background = mySolidColorBrush;
btnoverviewcontent.Effect = new DropShadowEffect
{
Color = new Color { A = 255, R = 0, G = 0, B = 0 },
Direction = 315,
ShadowDepth = 5,
Opacity = 1
};
btnoverviewcontent.Padding = new Thickness(3, 3, 3, 3);
btnoverviewcontent.HorizontalContentAlignment = System.Windows.HorizontalAlignment.Stretch;
TextBlock textBlock = new TextBlock()
{
Text = Overviews[k],
TextAlignment = TextAlignment.Left,
TextWrapping = TextWrapping.Wrap,
};
btnoverviewcontent.Content = textBlock;
btnoverviewcontent.BorderThickness = new Thickness(0, 0, 0, 0);
btnoverviewcontent.FontStretch = FontStretches.UltraExpanded;
btnoverviewcontent.Margin = new Thickness(5, 5, 5, 5);
WrapPanelGreen.Children.Add(btnoverviewcontent);
btnoverviewcontent.Click += new RoutedEventHandler(OnOverviewClick);
मैं तुम्हें करने के लिए प्रत्यक्ष जाएगा: http://stackoverflow.com/a
तत्वों की एक गतिशील संख्या के साथ यह पूरा उदाहरण देखें/2119243/1723823 यह स्क्रैपिंग को कार्यान्वित करने के तरीके पर कुछ टिप्पणियों के साथ WrapPanel के मूल कार्य का एक अच्छा टूटना है। – TernaryTopiary
@ हेनकहोल्टरमैन, कृपया मेरा अद्यतन प्रश्न देखें। आपकी बहुमूल्य टिप्पणी के लिए धन्यवाद। –
@ टर्नरी टोपीरी, आपकी दिशा के लिए बहुत धन्यवाद। हालांकि, मैंने लिंक किए गए पृष्ठ का मूल्यांकन किया और इस समय पूरी तरह से फिर से। मेरी समस्या है बच्चे (बटन) प्रोग्रामेटिक रूप से बनाए जाते हैं और बच्चों की आकार उनकी टेक्स्ट सामग्री के अनुसार अलग होती है। इसलिए, मैं दूसरा समाधान अपनाने नहीं कर सकता .. कृपया मेरा अद्यतन प्रश्न देखें। –