WPF:窗口外的RichTextBox

时间:2015-03-01 07:31:08

标签: wpf user-controls

有RichTextBox的Usercontrol。 当用户添加文本时,RTB的底部移动到窗口之外。 如何将RTB安装到窗口并进行垂直滚动条?

<UserControl xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:controls="clr-namespace:ServiceProcess.Helpers.Controls"
             x:Class="ServiceProcess.Helpers.Views.ServiceView"
             x:ClassModifier="internal"
             Height="Auto" Width="Auto" HorizontalAlignment="Stretch" VerticalAlignment="Stretch">

  <UserControl.Resources>
    <BooleanToVisibilityConverter x:Key="boolToVis" />
  </UserControl.Resources>
    <StackPanel  VerticalAlignment="Stretch" HorizontalAlignment="Stretch" >
        <Grid HorizontalAlignment="Stretch" 
              VerticalAlignment="Stretch" >
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="*" />
        <ColumnDefinition Width="100" />
        <ColumnDefinition Width="100" />
        <ColumnDefinition Width="20" />
    </Grid.ColumnDefinitions>
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto" />
            <RowDefinition Height="*" />
        </Grid.RowDefinitions>
        <TextBlock Margin="2"
            Grid.Row="0" Grid.Column="0"
            Text="{Binding Name}" />
    <TextBlock Margin="2"
            Grid.Row="0" Grid.Column="1"
            Text="{Binding CurrentState}" HorizontalAlignment="Left"/>
        <controls:GifImage  Grid.Row="0" Grid.Column="2"
                    AnimationSource="pack://application:,,,/ServiceProcess.Helpers;component/Images/spinner.gif"
                    Stretch="None"
                    Visibility="{Binding Path=IsBusy, Converter={StaticResource boolToVis}}" />
    </Grid>
        <RichTextBox Name="rtb" 
                     Height="Auto" Width="Auto"
                         HorizontalAlignment="Stretch" 
                         Margin="6,6,0,0"
                         VerticalAlignment="Stretch"
                         VerticalScrollBarVisibility="Auto" 
                         HorizontalScrollBarVisibility="Auto" >
            <FlowDocument Name="rtbFlowDoc" PageWidth="{Binding ElementName=rtb, Path=ActualWidth}" >
                <Paragraph FontSize="14">Hello, world!</Paragraph>
                <Paragraph FontStyle="Italic" TextAlignment="Left" FontSize="12" Foreground="Gray">Thanks to the RichTextBox control, this FlowDocument is completely editable!</Paragraph>
            </FlowDocument>
        </RichTextBox>
    </StackPanel>
</UserControl>

我正在尝试将RTB添加到此窗口的可用空间以显示日志消息 http://windowsservicehelper.codeplex.com/

1 个答案:

答案 0 :(得分:0)

如果我从您的代码中正确理解它,那么它就在ListView项目的模板中。

在ServicesControllerView.xaml中,将ScrollViewer.CanContentScroll =“False”添加到ListView。