簡體   English   中英

加載RTF文件后WPF RichTextBox不滾動

[英]WPF RichTextBox Not Scrolling After Loading RTF File

我正在嘗試將RTF格式文件(RTF)加載到WPF RichTextBox中。 當我執行加載時,似乎文件正被加載到RichTextBox中,但是顯示的滾動條沒有可見的滾動框來滾動下載。 滾動條沒有顯示底部箭頭,因此滾動條的底部顯示在RichTextBox的顯示區域下方。 這防止了用戶能夠向下滾動。 我相信我或者缺少RichTextBox的XAML屬性,或者我加載RTF文件的方式不正確。 請幫忙。 提前致謝。

   <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="*"/>
            <ColumnDefinition Width="*"/>
            <ColumnDefinition Width="*"/>
         </Grid.ColumnDefinitions>
        <Grid.RowDefinitions>
            <RowDefinition Height="*"/>
            <RowDefinition Height="*"/>
            <RowDefinition Height="*"/>
            <RowDefinition Height="*"/>
            <RowDefinition Height="*"/>
            <RowDefinition Height="*"/>
            <RowDefinition Height="*"/>
         </Grid.RowDefinitions>

        <StackPanel Grid.Row="0" Grid.RowSpan="5" 
                    Grid.Column="0" Grid.ColumnSpan="3" 
                    VerticalAlignment="Stretch" HorizontalAlignment="Stretch">

            <RichTextBox x:Name="LicenseRichTextBox" Margin="10"
                    VerticalAlignment="Stretch" HorizontalAlignment="Stretch"                 

                  IsReadOnly="True"  VerticalScrollBarVisibility="Visible">
            </RichTextBox>
        </StackPanel>
             <StackPanel Grid.Row="6"  Grid.Column="1" Grid.ColumnSpan="3" Margin="65,20,0,0" >
                <Button  x:Name="CloseButton" HorizontalAlignment="Left"
                      Width="90" Margin="-10,0,0,0"
                     Click="CloseButton_Click">
                    <StackPanel Orientation="Horizontal">
                        <Image Source="{StaticResource CloseButtonImageKey}" 
                           Margin="5,0,0,0" Height="20" Width="20" />
                        <TextBlock Padding="5,0,0,0" VerticalAlignment="Center"><Run Text="Close"/></TextBlock>
                    </StackPanel>
                </Button>
            </StackPanel>    
    </Grid>



   public  void LoadRTF()
    {
      const string EULA_Dir = @"Resources\EULA\EUlA.RTF";
      string currentDir = AppDomain.CurrentDomain.BaseDirectory;
      string PathToEULA = currentDir + EULA_Dir;

      if (File.Exists(PathToEULA))
      {
         LicenseRichTextBox.Selection.Load(new FileStream(PathToEULA, FileMode.Open), DataFormats.Rtf);
      }
      else
      {
        MessageBox.Show("Unable to locate the following file " + PathToEULA);
      }
    }

大膽的猜測-您的RichTextBox位於StackPanel 堆疊面板不限制其子代,而是具有無限的內部空間並根據其子代內容成長。 因此,您的文本框不會受到限制,因此它不需要顯示滾動條。

目前不在開發環境的前面,因此我無法確認這一點,但嘗試將其從StackPanel取出,看看能做什么。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM