2013-08-26 7 views
5

यदि आपके पास:ओवरलैप पर डबल मोटाई सीमाओं को कैसे रोकें?

<Grid > 
    <Grid.RowDefinitions> 
    <RowDefinition Height="*"/> 
    <RowDefinition Height="2*"/> 
    <RowDefinition Height="*"/> 
    </Grid.RowDefinitions> 
</Grid> 

और प्रत्येक ग्रिड में मोटाई 1 के एक सीमा डाल दिया, आप ग्रिड पंक्तियों के बीच की सीमा पर डबल मोटाई मिल जाएगा। क्या सीमा के प्रत्येक किनारे पर मोटाई निर्दिष्ट करने के लिए इसका एकमात्र तरीका है या क्या कुछ नियंत्रण है जो प्रत्येक कॉलम के लिए डबल मोटाई के बिना ग्रिड के चारों ओर सीमा बना देगा?

वर्तमान में इस के साथ यह प्रयास कर रहा:

    <Border 
         BorderBrush="Black" 
         BorderThickness="1" 
         Margin="19,0,0,0" 
         Background="LightGray" 
         > 
         <Viewbox VerticalAlignment="Stretch" HorizontalAlignment="Stretch"> 
         <Grid> 
          <Grid.RowDefinitions> 
          <RowDefinition Height="*"/> 
          <RowDefinition Height="2*"/> 
          <RowDefinition Height="*"/> 
          </Grid.RowDefinitions> 
          <Grid.ColumnDefinitions> 
         <ColumnDefinition Width="*"/> 
         <ColumnDefinition Width="Auto"/> 
         <ColumnDefinition Width="Auto"/> 
         </Grid.ColumnDefinitions> 

         <TextBlock 
         Grid.Row="1" 
         Grid.Column="0" 
         x:Name="TreeViewHeaderTextBox" 
         VerticalAlignment="Center" 
         HorizontalAlignment="Center" 
         Text="Time" 
         Foreground="Black" 
         /> 


         <TextBlock 
         Grid.Row="1" 
         Grid.Column="1" 
         Text="X" 
         TextAlignment="Center" 
         HorizontalAlignment="Stretch" 
         VerticalAlignment="Center" 
         /> 

         <TextBlock 
         Grid.Row="1" 
         Grid.Column="2" 
         Text="O" 
         TextAlignment="Center" 
         HorizontalAlignment="Stretch" 
         VerticalAlignment="Center" 
         /> 

        </Grid> 
        </Viewbox> 
       </Border> 

हालांकि, मैं तो यह डबल सीमाओं की वास्तव में अच्छा उदाहरण isn'ta पुराने कोड में परिवर्तन करने शुरू कर दिया। हालांकि, मुझे इस टेम्पलेट से डबल सीमाएं भी मिल रही हैं।

   <Border Name="Bd" 
         Grid.Column="1" 
         Background="{TemplateBinding Background}" 
         BorderBrush="{TemplateBinding BorderBrush}" 
         BorderThickness="{TemplateBinding BorderThickness}" 
         Padding="{TemplateBinding Padding}" 
         SnapsToDevicePixels="true"> 
       <ContentPresenter x:Name="PART_Header" 
            ContentSource="Header" 
            HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" 
            SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/> 
       </Border> 

क्योंकि प्रत्येक आइटम डबल मोटाई सीमा के साथ समाप्त होता है जहां यह अगले आइटम को छूता है।

संपादित 2: टिप्पणियों को पढ़ने के बाद मुझे एहसास हुआ कि मुझे शायद नियंत्रण के लिए डेटामैप्लेट पर परिभाषित सीमा नहीं होनी चाहिए और इसके बजाय सीमा को नियंत्रण के माध्यम से सेट करें और टेम्पलेट को controltemplate पर बदलें। उस से डबल सीमाएं मिल रही हैं।

+1

कृपया पोस्ट करें कि आप वर्तमान में सीमा मोटाई कैसे सेट कर रहे हैं। – Paparazzi

+0

मेरे पास ग्रिड के अंदर सीमाएं थीं कि मैं सीमा की मोटाई बदल रहा था। शायद मुझे बाहरीतम ग्रिड के लिए केवल एक की आवश्यकता है और यह प्रत्येक आइटम को लपेट देगा। यह समझ आता है। वह या शायद एक ग्रिड सीमा मोटाई संपत्ति है। मैं इसे देखूंगा –

+1

क्या आपने कभी सुना है कि एक्सएएमएल हजारों शब्दों के लायक है? – Paparazzi

उत्तर

1

यदि आप सीमा तत्व में ग्रिड लपेटते हैं और मोटाई सेट करते हैं तो मेरा मानना ​​है कि प्रत्येक ग्रिड आइटम के बीच सीमा डालती है और आपकी दोगुनी सीमा से बचाती है - अब इसका परीक्षण करने की कोशिश कर रही है।

+0

यह समझ में आता है। मुझे इसके बारे में सोचना चाहिए था। मैंने बस इसे अजीब पाया और चले गए। मैं अब परीक्षण करूँगा –

+0

उम्मीद है कि यह मदद करता है - मुझे एक परियोजना नहीं मिल सका जो मैं जल्दी से परीक्षण कर सकता था और थोड़ी देर के लिए आगे बढ़ना पड़ा। यदि आपको अभी भी सफलता नहीं है तो मैं कुछ कोशिश करूँगा और खोदूँगा। मुझे पता है मैंने इसे एक ही सीमा सेटिंग के साथ देखा है। – Matthew

1

मोटाई = "बाएं, ऊपर, दाएं, नीचे" पर सेट किया जा सकता है, जिसका अर्थ है कि आप ओवरलैपिंग भागों को आधा तक सेट कर सकते हैं।

<Grid> 
    <Grid.RowDefinitions> 
     <RowDefinition Height="*"/> 
     <RowDefinition Height="2*"/> 
     <RowDefinition Height="*"/> 
    </Grid.RowDefinitions> 
    <Border BorderThickness="1,1,1,0.5" BorderBrush="Black"/> 
    <Border BorderThickness="1,0.5" BorderBrush="Black" Grid.Row="1" /> 
    <Border BorderThickness="1,0.5,1,1" BorderBrush="Black" Grid.Row="2" /> 
</Grid> 
संबंधित मुद्दे