WPF RichTextBox + кнопка в StackPanel => что за беспорядок? - PullRequest
2 голосов
/ 08 октября 2010

Этот код:

<StackPanel Orientation="Horizontal">
                <RichTextBox />
                <Button Content="Dialog" />  
            </StackPanel>

показывает кнопку где-то на левой стороне StackPanel ПО RichTextBox, ПОЧЕМУ?

edit: О, я только что увидел проблему с шириной.RTB почти не имеет ширины, и кнопка справа от него.

edit: кажется, я столкнулся с этой ошибкой: WPF RichTextBox без установленной ширины

решение не позволяетработа для меня!

Ответы [ 3 ]

1 голос
/ 08 октября 2010

Вам лучше использовать свойства Grid и HorizontalAlignment (и VerticalAlignment) RTB.

<Grid HorizontalAlignment="Stretch"
      VerticalAlignment="Stretch">
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="*" />
        <ColumnDefinition Width="Auto" />
    </Grid.ColumnDefinitions>
    <RichTextBox HorizontalAlignment="Stretch" VerticalAlignment="Stretch" />
    <Button Grid.Column="1" 
            Content="Dialog" 
            HorizontalAlignment="Right" 
            VerticalAlignment="Bottom" />
</Grid>
0 голосов
/ 08 октября 2010

Извините, я забыл упомянуть, если вы посмотрите на панель «Макет» (для RichTextBox), внизу есть стрелка вниз.щелкните по нему, чтобы открыть «дополнительные параметры».Там вы хотите установить «HorizontalContentAlignment» и «VertialContentAlignment» для растяжения.(Последние 2 варианта для каждого).

Я прошу прощения за то, что пропустил это.моя вина.:)

ScreenShot:

0 голосов
/ 08 октября 2010

Ваш код должен выглядеть примерно так:

<StackPanel Margin="105,73,124,54" Orientation="Horizontal">
                <RichTextBox Width="312" />
                <Button Content="Dialog" VerticalAlignment="Bottom" Height="56" />  
            </StackPanel>

Вы должны настроить каждый элемент (элемент управления) по отдельности, в противном случае вы получите макет, аналогичный тому, который был у вас изначально (все перемешано и разбито вместе).

...