2009-04-09 2 views
0

Я использую Datagrid из WPFtoolkit и сталкиваюсь с проблемой с RowDetailsTemplate.WPF DataGridDetailsTemplate ошибка расширения

My 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 пытается центрировать себя, но центр вычислял бы вверх, но не вниз. Установив HorizontalAlignment = «Влево», она устранила проблему. Мне все же хотелось бы, чтобы все элементы изменялись пропорционально их текущим размерам, чтобы заполнить поле, но пока не повезло.

Смежные вопросы