2008-12-03 13 views
21

मुझे एक कार्टून भाषण बबल की तरह पाठ के साथ गोलाकार कोनों के साथ एक आयताकार बबल बनाने की आवश्यकता है। मुझे उस पाठ के आकार के आधार पर क्षैतिज और लंबवत विस्तार करने के लिए बबल की आवश्यकता है। मैं भाषण तीर और गोलाकार कोनों के त्रिज्या निरंतर बने रहना चाहूंगा।मैं निरंतर कोनों के साथ एक कार्टून बबल की तरह एक कस्टम WPF नियंत्रण कैसे बना सकता हूं

मैं बस अपने बुलबुले को बनाने के लिए पथ का उपयोग कर सकता हूं, लेकिन मैं बुलबुला का आकार बदल नहीं सकता और कोनों को त्रिज्या और तीर स्थिर रख सकता हूं ... यह पूरे पथ का आकार बदल जाएगा।

मुझे लगता है कि कुछ भी मुझे सही दिशा में बात कर सकता है की सराहना करेंगे।

हटाया मृत ImageShack लिंक

यहाँ कार्टून बुलबुला उपयोगकर्ता के नियंत्रण के अंतिम संस्करण है। मैंने आयत के साथ फ्लश करने की कोशिश करने के बजाय, पथ रेखाओं के अंत को छिपाने के लिए जॉबी जॉय के संस्करण में स्ट्रोक के बिना एक आयताकार जोड़ा है।

<Grid> 
    <Grid.RowDefinitions> 
     <RowDefinition Height="*"/> 
     <RowDefinition Height="40"/> 
    </Grid.RowDefinitions> 
    <Rectangle Fill="#FF686868" Stroke="#FF000000" RadiusX="10" RadiusY="10"/> 
    <Path Fill="#FF686868" Stretch="Fill" Stroke="#FF000000" HorizontalAlignment="Left" Margin="30,-5.597,0,-0.003" Width="25" Grid.Row="1" Data="M22.166642,154.45381 L29.999666,187.66699 40.791059,154.54395"/>     
    <Rectangle Fill="#FF686868" RadiusX="10" RadiusY="10" Margin="1"/> 
    <TextBlock HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="25" Text="Hello World" TextWrapping="Wrap"/>      
</Grid> 

उत्तर

25

का प्रयोग करें, यदि आपके पास पॉपअप या एक ContentControl बना सकते हैं और एक सुसंगत देखो नियंत्रण टेम्पलेट के रूप में ग्रिड

<Grid x:Name="grid"> 
    <Grid.RowDefinitions> 
     <RowDefinition Height="*"/> 
     <RowDefinition Height="40"/> 
    </Grid.RowDefinitions> 
    <Rectangle Fill="#FF686868" Stroke="#FF000000" RadiusX="10" RadiusY="10"/> 
    <Path Fill="#FF686868" Stretch="Fill" Stroke="#FF000000" HorizontalAlignment="Left" Margin="30,-1.6,0,0" Width="25" Grid.Row="1" 
     Data="M22.166642,154.45381 L29.999666,187.66699 40.791059,154.54395"/>   
    <TextBlock HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="25" Text="Hello World" TextWrapping="Wrap"/>   
</Grid> 

हटाया मृत ImageShack लिंक

मैं दे पर इसे पाने के लिए कर सकते हैं blog post on this

बनाया है
1

गोलाकार कोनों को कॉर्नर एलिसिंग सेट के साथ एक सीमा हो सकती है।

लगातार/भाषण तीर एक रास्ता है कि सीमा के साथ एक ग्रिड में रखा जाता है हो सकता है।

ग्रुपबॉक्स के लिए नियंत्रण टेम्पलेट पर नज़र डालें और देखें कि "हेडर" सामग्री समूह बॉक्स के सीमा पर तैरने के लिए कैसे स्थित है।

आप को छोड़कर आप शीर्ष के बजाय नीचे एक पथ स्थिति होगा एक ही बात करना होगा। इस XAML