2017-01-19 1 views
-1

Ich bin mir nicht sicher, wie Sie den Gittersplitter verwenden.mit komplexen Gitter-Spliter auf WPF

Ich der Benutzer, um die Größe der Layouts in widnow zu ermöglichen. zum Beispiel in XAML Ich möchte der Benutzer die Warp-Panel, um die Größe genannt: gridDetails

Danke für die Antworten

Attching XAML:

<Window 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:local="clr-namespace:WpfApplication1" x:Name="Main" x:Class="WpfApplication1.MainWindow" 

    Title="P analyzer" Height="616.15" Width="1033" WindowState="Maximized" Closing="Main_Closing"> 
<Window.DataContext> 
    <local:DataGridViewModel/> 
</Window.DataContext> 
<Window.Resources> 
    <Style x:Key="ListViewItemStyle" TargetType="ListViewItem"> 
     <Setter Property="Margin" Value="3"/> 
     <Setter Property="Background" Value="Transparent"/> 
     <Setter Property="BorderThickness" Value="1"/> 
     <Setter Property="BorderBrush" Value="Transparent"/> 
     <Setter Property="Template"> 
      <Setter.Value> 
       <ControlTemplate TargetType="ListViewItem"> 
        <Border 
       Background="{TemplateBinding Background}" 
       BorderBrush="{TemplateBinding BorderBrush}" 
       BorderThickness="{TemplateBinding BorderThickness}" 
       Padding="{TemplateBinding Padding}"> 
         <ContentPresenter/> 
        </Border> 
       </ControlTemplate> 
      </Setter.Value> 
     </Setter> 
     <Style.Triggers> 
      <Trigger Property="IsSelected" Value="True"> 
       <Setter Property="BorderBrush" Value="Red"/> 
       <Setter Property="BorderThickness" Value="2"/> 
      </Trigger> 
      <Trigger Property="IsMouseOver" Value="True"> 
       <Setter Property="Background" Value="LightBlue"/> 
      </Trigger> 
     </Style.Triggers> 
    </Style> 


    <local:BackGroundConverter x:Key="converter"></local:BackGroundConverter> 


</Window.Resources> 





<Grid> 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition Width="1*"/> 
     <!--start--> 
     <ColumnDefinition Width="1*"/> 
     <ColumnDefinition Width="1*"/> 
     <!--space for putting progress bar in the middle--> 
     <ColumnDefinition Width="1"/> 
     <!--the end of the data grid data--> 
     <ColumnDefinition Width="0.05*"/> 
     <!--space betweeen datagrid data and filter--> 
     <ColumnDefinition Width="3*"/> 
     <!--filter--> 

    </Grid.ColumnDefinitions> 
    <Grid.RowDefinitions> 
     <RowDefinition Height="21*"/> 
     <!--Menu Bar--> 
     <RowDefinition Height="4*"/> 
     <!--Space--> 
     <RowDefinition Height="21*"/> 
     <!--progress Bar--> 
     <RowDefinition Height="4*"/> 
     <!--space--> 
     <RowDefinition Height="413*"/> 
     <!-- grid contain progress bar and datagrid data--> 
     <RowDefinition Height="60*"/> 
     <!-- Space--> 
     <RowDefinition Height="63*"/> 
     <!--grid which contain all of the translated fileds--> 
    </Grid.RowDefinitions> 

    <Menu Grid.Column="0" Grid.ColumnSpan="6" Grid.Row="0"> 
     <MenuItem Header="File" > 
      <MenuItem Header="Load" Click="btnBrowse_Click"></MenuItem> 
     </MenuItem> 

     <MenuItem Header="About" ></MenuItem> 
    </Menu> 


    <ProgressBar x:Name="progressBarFile" Grid.Row="2" Grid.Column="1" /> 
    <CheckBox x:Name="CB2Lines" Grid.Row="2" Grid.Column="0" HorizontalAlignment="Center" VerticalAlignment="Center" Content="2 Lines" Checked="CB2Lines_Checked" Unchecked="CB2Lines_Unchecked" ></CheckBox> 

    <Grid Grid.Row="4" Grid.Column="0" Grid.ColumnSpan="3"> 
     <Grid.ColumnDefinitions> 
      <ColumnDefinition Width="85*"/> 
      <ColumnDefinition Width="423*"/> 
     </Grid.ColumnDefinitions> 
     <Grid Grid.Column="0" Grid.ColumnSpan="5" Background="Aqua" > 

      <ListView x:Name="LV" ItemsSource= "{Binding Lggv}" SelectionChanged="dataGridData_SelectionChanged" ItemContainerStyle="{StaticResource ListViewItemStyle}" > 
       <ListView.ItemTemplate> 
        <DataTemplate> 
         <StackPanel > 
          <Border BorderThickness="1" BorderBrush="Black"> 

           <Grid> 
            <Grid.ColumnDefinitions> 
             <ColumnDefinition Width="150"></ColumnDefinition> 
             <ColumnDefinition Width="55"></ColumnDefinition> 
             <ColumnDefinition Width="1*"></ColumnDefinition> 
            </Grid.ColumnDefinitions> 
            <TextBlock x:Name="tbHeader" Text="{Binding Info }" AllowDrop="True" FontWeight="Bold" Grid.Column="2" Visibility="{Binding Visibility_Header}" > 

             <TextBlock.Style> 
              <Style TargetType="TextBlock"> 
               <Setter Property="Background"> 
                <Setter.Value> 
                 <!-- this is the default background--> 
                 <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"> 
                  <GradientStop Color="#FFCEE6C6" Offset="0.008"/> 
                  <GradientStop Color="#FF9ECF8C" Offset="0.987"/> 
                 </LinearGradientBrush> 
                </Setter.Value> 
               </Setter>              
              </Style> 
             </TextBlock.Style> 





            </TextBlock> 
           </Grid> 
          </Border> 
          <Grid x:Name="GridData">         
           <Grid.Background> 
            <MultiBinding Converter="{StaticResource converter }"> 
             <Binding Path="Type"></Binding> 
             <Binding Path="NodeID"></Binding> 
             <Binding Path="TLV"></Binding>            
            </MultiBinding> 
           </Grid.Background> 
           <Grid.ColumnDefinitions> 
            <ColumnDefinition Width="150"></ColumnDefinition> 
            <ColumnDefinition Width="55"></ColumnDefinition> 
            <ColumnDefinition Width="1*"></ColumnDefinition> 
           </Grid.ColumnDefinitions> 
           <Border Grid.Column="0" BorderThickness="1" BorderBrush="Black"> 
            <TextBlock Text="{Binding DateTime}" ></TextBlock> 
           </Border> 
           <Border Grid.Column="1" BorderThickness="1" BorderBrush="Black"> 
            <TextBlock Text="{Binding ComPort}"></TextBlock> 
           </Border> 
           <Border Grid.Column="2" BorderThickness="1" BorderBrush="Black"> 
            <TextBlock Text="{Binding Data}" ></TextBlock> 
           </Border> 
          </Grid> 
         </StackPanel> 
        </DataTemplate> 
       </ListView.ItemTemplate> 

      </ListView> 

     </Grid> 
    </Grid> 

    <Grid Grid.Column="5" Grid.Row="4" > 

     <Grid.ColumnDefinitions> 
      <ColumnDefinition Width="1*"/> 
      <ColumnDefinition Width="1*"/> 
      <ColumnDefinition Width="1*"/> 
     </Grid.ColumnDefinitions> 
     <Grid.RowDefinitions> 
      <RowDefinition Height="1*"/> 
      <RowDefinition Height="1*"/> 
     </Grid.RowDefinitions> 


     <local:ItemFilter x:Name="TypeFilter" Grid.Column="0" Grid.Row="0" ></local:ItemFilter> 
     <local:ItemFilter x:Name="NodeIDFilter" Grid.Column="1" Grid.Row="0" ></local:ItemFilter> 
     <local:ItemFilter x:Name="TLVFilter" Grid.Column="2" Grid.Row="0"></local:ItemFilter> 

     <!--contain filter pet type--> 
    </Grid> 



    <ScrollViewer Grid.Column="0" Grid.Row="5" Grid.RowSpan="2" Grid.ColumnSpan="6"> 
     <WrapPanel x:Name="gridDetails" UseLayoutRounding="True" > 
     </WrapPanel> 
    </ScrollViewer> 

</Grid> 

Antwort

0

Bitte nicht nur Dump Hunderte von Codezeilen, von denen der größte Teil irrelevant ist. Wenn du kein Beispiel machst, schneide wenigstens die Teile heraus, die nicht wichtig sind.

Sie müssen eine Startreihe hinzuzufügen, um die Gitterteiler zu halten:

... 
<Grid.RowDefinitions> 
    ... 
    <!-- grid contain progress bar and datagrid data--> 
    <RowDefinition Height="60*"/> 

    <!-- A grid space for the gridsplitter--> 
    <RowDefinition Height="5"/> 

    <!-- Space--> 
    <RowDefinition Height="63*"/> 
    <!--grid which contain all of the translated fileds--> 
</Grid.RowDefinitions> 
... 

dann ein Raster Slitter zu der genannten Reihe hinzuzufügen:

... 
<GridSplitter Grid.Row="5" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"/> 

<ScrollViewer Grid.Column="0" Grid.Row="6" Grid.RowSpan="2" Grid.ColumnSpan="6"> 
    <WrapPanel x:Name="gridDetails" UseLayoutRounding="True" > 
    </WrapPanel> 
</ScrollViewer> 

+0

HALLO aber es ist ein solches Gitterhalter im Anfang der Zeile –

+0

Entschuldigung nur verstanden, was Sie geschrieben vielen Dank –

Verwandte Themen