2009-04-09 59 views
0

我正在使用WPFtoolkit中的Datagrid,并且遇到了RowDetailsTemplate的问题。WPF DataGridDetailsTemplate扩展bug

我的RowDetailsTemplate包含3个项目:2个Rich Text Boxes和一个按钮。我想要发生的是按钮停留在窗口的右边缘,两个富文本框展开以填充剩余的空间。我遇到的问题是,如果将按钮停靠在窗口的右侧,当我放大窗口时,按钮会正确移动并停留在外边缘,但如果我缩回窗口,它不会缩小并保持相同的间距。这导致它位于窗口之外并且不可见。这是预期的行为?如果有人知道一个解决方法或解决方案来设置整个详细信息模板,我会介绍,我将不胜感激一些建议。

相关代码:

<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> 

回答

0

原来发生的事情是DockPanel中的DetailsTemplate试图中心本身,而是中心被计算会去了,但不下来。通过设置Horizo​​ntalAlignment =“左”,它解决了问题。我仍然想要一种方法来使所有项目的大小与他们当前的大小成比例,以填充框,但目前还没有运气。