2009-11-03 17 views
18

मैं अपने ग्रिडस्प्लिटर को उस पर डॉट्स जोड़ने की तरह स्टाइल करना चाहता हूं (जैसा कि http://msdn.microsoft.com/en-us/library/aa970265.aspx पर पाया गया है)।स्टाइलिंग ग्रिडस्प्लिटर wpf सी #

मैं भी माउस पर ग्रिडप्लिटर रंग बदलना चाहता हूं, या एरो थीम लागू करना चाहता हूं।

<Style x:Key="GridSplitterStyle1" TargetType="{x:Type GridSplitter}"> 
    <Setter Property="Background" 
      Value="{DynamicResource {x:Static SystemColors.ControlBrushKey}}"/> 
    <Setter Property="PreviewStyle"> 
    <Setter.Value> 
     <Style> 
     <Setter Property="Control.Template"> 
      <Setter.Value> 
      <ControlTemplate> 
       <Rectangle Fill="#80000000"/> 
      </ControlTemplate> 
      </Setter.Value> 
     </Setter> 
     </Style> 
    </Setter.Value> 
    </Setter> 
    <Setter Property="Template"> 
    <Setter.Value> 
     <ControlTemplate TargetType="{x:Type GridSplitter}"> 
     <Border Background="{TemplateBinding Background}" 
       BorderBrush="{TemplateBinding BorderBrush}" 
       BorderThickness="{TemplateBinding BorderThickness}"/> 
     </ControlTemplate> 
    </Setter.Value> 
    </Setter> 
</Style> 

<!--Theme--> 
<ResourceDictionary.MergedDictionaries> 
    <ResourceDictionary 
    Source="/RibbonControlsLibrary;component/Themes/Office2007Blue.xaml" /> 
</ResourceDictionary.MergedDictionaries> 

<GridSplitter x:Name="gridSplitterTreeNodes" Width="10" 
       BorderThickness="1,0" Cursor="SizeWE" 
       RenderTransformOrigin="-1.2,0.507" ShowsPreview="True" 
       Style="{DynamicResource GridSplitterStyle1}"> 
    <GridSplitter.Background> 
    <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"> 
     <GradientStop Color="#FFE3EFFF" Offset="0"/> 
     <GradientStop Color="#FFAFD2FF" Offset=".45"/> 
    </LinearGradientBrush> 
    </GridSplitter.Background> 
</GridSplitter> 
+0

आपको नमूना कोड देना ... पूरे कोड को पोस्ट नहीं करना क्योंकि यह बहुत बड़ा है –

+1

मुझे वास्तव में ऐसा नहीं लगता कि नीचे मतदाताओं को इसके बारे में कुछ पता होना चाहिए। वे ज्ञान की कमी के कारण समझ में नहीं आते: पी –

उत्तर

16
<GridSplitter x:Name="gridSplitterTreeNodes" Width="5" BorderThickness="1,0" 
    Cursor="SizeWE" RenderTransformOrigin="-1.2,0.507" ShowsPreview="True" 
    Style="{DynamicResource GridSplitterStyle1}"> 
    <GridSplitter.Background> 
    <ImageBrush ImageSource="Images\gripDots.png" TileMode="FlipXY" 
       Stretch="UniformToFill"/> 
    </GridSplitter.Background> 
</GridSplitter> 

तुम भी एक ही प्रभाव प्राप्त करने के लिए Msnd Microsoft से छवि को बचा सकता है, More Info

+0

सुनिश्चित नहीं है कि "तस्वीर" क्या होना चाहिए .. टूटा हुआ छवि लिंक वास्तविक एमएसडीएन पृष्ठ पर इंगित कर रहा है। मुझे पता है कि यह एक पुराना जवाब है, लेकिन किसी भी तरह से लिंक को ठीक करने के लिए स्वतंत्र महसूस करें (stack.imgur अपलोडर के साथ?)। –

29

ज्यादातर अपने ही भविष्य में संदर्भ के लिए, यहाँ एक ऊर्ध्वाधर ग्रिड विभाजक एक बटन के गोल आकार है कि बटन के सामग्री के रूप में

<GridSplitter Grid.Column="1" VerticalAlignment="Stretch" HorizontalAlignment="Center" Width="8"> 
    <GridSplitter.Template> 
     <ControlTemplate TargetType="{x:Type GridSplitter}"> 
      <Grid> 
       <Button Content="⁞" /> 
       <Rectangle Fill="#00FFFFFF" /> 
      </Grid> 
     </ControlTemplate> 
    </GridSplitter.Template> 
</GridSplitter> 

एक क्षैतिज विभाजक सिर्फ इस्तेमाल कर सकते हैं "····": (लेकिन ठीक से अपना माउस ले करने के लिए प्रतिक्रिया नहीं करता है)।

+0

यह आसान और बहुत साफ दिखता है! – Enrico

+1

इसके लिए धन्यवाद। मैं एक क्षैतिज स्प्लिटर के लिए सामग्री के रूप में "▌▌▌▌▌▌" का उपयोग कर समाप्त हुआ, जो आईएमएचओ "····" से थोड़ा बेहतर दिखता है। –

1

माउस घटनाओं को खोए बिना, एक ग्रिडस्प्लिटर को 'ग्रिपर' बटन/ग्राफ़िक जोड़ने का एक और तरीका, स्प्लिटर के शीर्ष पर एक साधारण लेबल का उपयोग करना होगा।

<GridSplitter Grid.Column="1" Width="5" HorizontalAlignment="Stretch" Background="Gray"/> 

    <Label Grid.Column="1" Content="⁞" Foreground="White" VerticalAlignment="Center" FontSize="26" FontWeight="Bold" IsHitTestVisible="False"/> 

यकीन GridSplitter और लेबल एक ही कॉलम में हैं, और IsHitTestVisible = झूठी लेबल में सेट कर दिया जाता है कि बनाना।

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