StackPanel中的WPF RichTextBox +按钮=>真是一团糟?

时间:2010-10-08 14:41:26

标签: wpf richtextbox width stackpanel

此代码:

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

在StackPanel左侧的某个位置显示RichTextBox上的按钮,为什么?

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

编辑:似乎我遇到了这个错误:WPF RichTextBox with no width set

解决方案对我不起作用!

3 个答案:

答案 0 :(得分:1)

最好使用Grid和RTB的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>

答案 1 :(得分:0)

您的代码布局应该是:

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

你必须单独调整每个元素(控件)的大小,否则你会得到一个类似于你原来的布局(所有布局都混乱并且压碎在一起。)

答案 2 :(得分:0)

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

我很抱歉将其遗弃。我的错。 :)

ScreenShot: