底部

时间:2015-09-05 01:49:14

标签: c# wpf richtextbox

我正在尝试创建一个聊天窗口,比如IRC,其中的内容从下到上显示,就像创建的任何聊天窗口一样。

这是我的xaml,没什么好看的

<Window
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:ee="http://schemas.microsoft.com/expression/2010/effects" xmlns:ed="http://schemas.microsoft.com/expression/2010/drawing" x:Class="TestChat.Chat"
    Title="Chat" Height="700" Width="400" WindowStyle="ThreeDBorderWindow" ResizeMode="CanMinimize">

    <Grid>
        <RichTextBox x:Name="txtChat" HorizontalAlignment="Left" Height="644" Margin="0,10,0,0" VerticalAlignment="Top" Width="388" VerticalScrollBarVisibility="Auto">
            <FlowDocument />
        </RichTextBox>
    </Grid>
</Window>

我有一个后台工作者在其中添加文字

private void SendWorkerComplete(object s, ProgressChangedEventArgs args)
{
    txtChat.AppendText(args.UserState.ToString());
    txtChat.ScrollToEnd();
}

private void SendWorker_DoWork(object sender, DoWorkEventArgs e)
{
    SendWorker.ReportProgress(0, (string)e.Argument);
}

设置为bottom的VerticalContentAlignment属性不会以这种方式呈现内容,如何做到这一点?它有属性还是必须以编程方式完成?

2 个答案:

答案 0 :(得分:0)

为什么要使用RichTextBox?只需使用常规TextBox。

<Grid>
    <TextBox x:Name="txtChat" VerticalScrollBarVisibility="Auto" Margin="10" Text="Hello" VerticalContentAlignment="Bottom" />
</Grid>

答案 1 :(得分:-1)

您已将margin-left设置为545,将富文本框设置为Window,将代码更改为显示您在窗口底部的控件:

<RichTextBox x:Name="txtChat" HorizontalAlignment="Stretch" Height="42" VerticalAlignment="Bottom" Width="auto" VerticalScrollBarVisibility="Auto" Background="Yellow">
        <FlowDocument />
</RichTextBox>