Ошибка расширения WPF DataGridDetailsTemplate - PullRequest
0 голосов
/ 09 апреля 2009

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

My RowDetailsTemplate содержит 3 элемента: 2 многофункциональных текстовых поля и кнопку. Я хотел бы, чтобы кнопка оставалась пристыкованной к правому краю окна, и два расширенных текстовых поля расширяются, чтобы заполнить оставшееся пространство. У меня проблема в том, что, если я закрепляю кнопку справа от окна, когда я увеличиваю окно, кнопка перемещается правильно и остается на внешнем крае, но если я сжимаю окно назад, оно не сжимается и сохраняет такой же интервал. Это приводит к тому, что он находится за окном и не виден. Это ожидаемое поведение? Если кто-нибудь знает обходной путь или решение для настройки всего шаблона сведений, как я описал, я был бы признателен за несколько советов.

Соответствующий код:

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

1 Ответ

0 голосов
/ 09 апреля 2009

Оказывается, что происходит, если DockPanel в DetailsTemplate пытался центрировать себя, но вычисление центра будет расти, но не вниз. Установив HorizontalAlignment = "Left", это решило проблему. Мне все еще хотелось бы, чтобы размер всех элементов был пропорциональным их текущему размеру, чтобы заполнить коробку, но пока не повезло.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...