2

这段代码:

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

将 StackPanel 左侧某处的按钮显示到 RichTextBox 上,为什么?

编辑:哦,我刚看到它的宽度问题。RTB 几乎没有宽度,按钮在它的右手边。

编辑:似乎我遇到了这个错误:没有设置宽度的 WPF RichTextBox

解决方案对我不起作用!

4

3 回答 3

1

最好使用 RTB 的 Grid 和 Horizo​​ntalAlignment(和 VerticalAlignment)属性。

<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>
于 2010-10-08T15:43:26.120 回答
0

你的代码布局应该是这样的:

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

您必须单独调整每个元素(控件)的大小,否则您会得到与最初的布局相似的布局(所有这些都混杂在一起并被压在一起。)

于 2010-10-08T14:57:52.560 回答
0

对不起,我忘了提,如果你看一下“布局”面板(对于 RichTextBox),在它的底部,有一个向下箭头。单击它以打开“高级选项”。在那里,您想将“Horizo​​ntalContentAlignment 和 VertialContentAlignment”都设置为拉伸。(每个选项的最后 2 个选项)。

我很抱歉把它漏掉了。我的错。:)

截屏:

于 2010-10-08T15:26:43.663 回答