2016-12-16 9 views
7

मैं एक बटन में एक छवि/आइकन और पाठ कैसे प्रदर्शित कर सकता हूं?यूडब्ल्यूपी xaml: इसमें आइकन और टेक्स्ट वाला बटन कैसे प्रदर्शित करें?

<StackPanel Name="stackPanel" Orientation="Horizontal" Tapped="stackPanel_Tapped"> 
    <Button x:Name="button" FontFamily="Segoe MDL2 Assets" Content="&#xE779;" Width="50" Height="50" Background="Transparent" /> 
    <TextBlock Text="Grades" FontSize="18" VerticalAlignment="Center" /> 
</StackPanel> 

मैं StackPanel करने के लिए एक taplistener जोड़ सकते हैं, लेकिन यह StackPanel कोई वास्तविक बटन की तरह दृश्य प्रभाव है नहीं होगा।

मैं भी कोशिश की है:

<Button FontFamily="Segoe MDL2 Assets" Width="50" Height="50" x:Name="button" Content="test"> 
    <Image x:Name="button" Source="Assets/test.png" /> 
</Button> 

लेकिन मैं सामग्री दो बार निर्धारित नहीं कर सकते। मुझे एक बटन में टेक्स्ट और आइकन दोनों चाहिए, जब कोई उपयोगकर्ता उस पर क्लिक करता है, तो उसके पास बटन की तरह दृश्य प्रभाव होगा। क्या यह संभव है? या किसी और के पास यह हासिल करने के लिए एक और तरीका है?

पढ़ने के लिए धन्यवाद।

+4

'' –

+0

@ChrisW। धन्यवाद कि काम किया! पता नहीं था कि आप ऐसा कर सकते हैं। – Denny

+1

@ChrisW। इसे उत्तर के रूप में पोस्ट करें ताकि डेनी इसे स्वीकार कर सके। –

उत्तर

10

इसलिए चूंकि मुझे प्रत्यक्ष डुप्लिकेट नहीं मिला (जिसे मैं कसम खाता हूं कि यह पहले से पूछे जाने वाले प्रश्न का प्रकार है) मुझे लगता है कि मैं एक वैध उत्तर प्रदान करूंगा।

बटन के टेम्पलेट के केंद्र में ContentPresenter है जो आपको किसी भी सीएलआर ऑब्जेक्ट में पास करने की अनुमति देता है। हालांकि चेतावनी यह है कि केवल एक ही पारित किया जा सकता है। हालांकि, अगर वह ऑब्जेक्ट एक पैनल है जिसमें बच्चों को रखने में सक्षम है तो यह सामग्री के माध्यम से सबकुछ पास कर देगा।

तो इस उदाहरण में अगर हम इसे इस तरह से किया था:

<Button> 
    <Image/> 
    <TextBlock/> 
</Button> 

तो यह असफल और केवल एक ही वस्तु एक समय में अनुमति के बारे में शिकायत करेंगे।

छोड़कर जब आप उन बच्चों को धारण करने के लिए एक माता पिता के पैनल प्रदान करते हैं, यह सभी सामग्री के रूप में सम्मान करता है और उदाहरण के रूप में वांछित परिणाम प्रदान करेगा:

<Button> 
    <StackPanel> 
     <Image/> 
     <TextBlock/> 
    </StackPanel> 
</Button> 
StackPanel के बाद से

तो एक CLR उद्देश्य यह है कि बच्चों को होस्ट कर सकते हैं है, आप जाने के लिए अच्छे हैं। उम्मीद है कि यह मदद करता है, चीयर्स!

+0

मुझे भी सीधा जवाब नहीं मिला :( – Denny

+0

यह अपेक्षित धन्यवाद के रूप में काम करता है! – yehanny

+1

अच्छा उत्तर, बटन को पूरी तरह से लचीला बनाता है। – peterincumbria

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