2009-04-09 5 views
0

J'utilise une Datagrid de WPFtoolkit et je rencontre un problème avec RowDetailsTemplate.Bogue d'extension WPG DataGridDetailsTemplate

Mon RowDetailsTemplate contient 3 éléments: 2 zones de texte enrichi et un bouton. Ce que je voudrais avoir, c'est que le bouton reste ancré sur le bord droit de la fenêtre et que les deux zones de texte enrichies se développent pour remplir le reste de l'espace. Le problème que j'ai est que si j'attache le bouton à la droite de la fenêtre, quand j'ouvre la fenêtre le bouton bouge correctement et reste sur le bord extérieur, mais si je rétrécis la fenêtre il ne rétrécit pas et garde le même espacement. Cela le fait être situé en dehors de la fenêtre et non visible. Est-ce le comportement attendu? Si quelqu'un connaît une solution de contournement ou une solution pour configurer l'ensemble du modèle de détails comme je l'ai décrit, j'apprécierais quelques conseils.

Code pertinent:

<toolkit:DataGrid.RowDetailsTemplate> 
    <DataTemplate> 
<DockPanel Width="Auto"> 
    <DockPanel DockPanel.Dock="Right"> 
     <Button Height="50" Width="75" Margin="5 5 0 5" DockPanel.Dock="Right"> 
      <Image Source="Resources/ArrowOutOfBox.bmp" /> 
     </Button> 
    </DockPanel> 
    <StackPanel Margin="20 0 20 0" Orientation="Horizontal" HorizontalAlignment="Left" DockPanel.Dock="Left"> 
     <StackPanel> 
      <ToolBar> 
       <ToggleButton MinWidth="20" Command="EditingCommands.ToggleBold" CommandTarget="{Binding ElementName=rtbNewComment}" TextBlock.FontWeight="Bold" Content="B" /> 
       <ToggleButton MinWidth="20" Command="EditingCommands.ToggleItalic" CommandTarget="{Binding ElementName=rtbNewComment}" TextBlock.FontStyle="Italic" Content="I" /> 
       <ToggleButton MinWidth="20" Command="EditingCommands.ToggleUnderline" CommandTarget="{Binding ElementName=rtbNewComment}"> 
        <TextBlock TextDecorations="Underline">U</TextBlock> 
       </ToggleButton> 
      </ToolBar> 
      <RichTextBox 
            x:Name="rtbNewComment" 
            Height="100" 
            Margin="5 5 0 5" 
            FlowDirection="LeftToRight" 
            VerticalScrollBarVisibility="Auto" 
            IsReadOnly="False" 
            SpellCheck.IsEnabled="true" 
            > 
      </RichTextBox> 
     </StackPanel> 
     <StackPanel> 
      <RichTextBox 
            x:Name="rtbCommentHistory" 
            Height="125" 
            Margin="5 5 0 5" 
            FlowDirection="LeftToRight" 
            VerticalScrollBarVisibility="Auto" 
            IsReadOnly="True" 
            SpellCheck.IsEnabled="true" 
            > 
       <RichTextBox.Resources> 
        <Style TargetType="{x:Type Paragraph}"> 
         <Setter Property="Margin" Value="0" /> 
        </Style> 
       </RichTextBox.Resources> 
      </RichTextBox> 
     </StackPanel> 
    </StackPanel> 

</DockPanel> 
</DataTemplate> 
</toolkit:DataGrid.RowDetailsTemplate> 

Répondre

0

Transforme ce qui se passe est le DockPanel dans le DetailsTemplate cherchait à se centrer, mais le centre est calculait monterait mais pas vers le bas. En définissant HorizontalAlignment = "Left", le problème a été résolu. Je voudrais toujours un moyen de rendre tous les éléments de taille proportionnelle à leurs tailles actuelles pour remplir la case, mais pas de chance jusqu'à présent.