Scrollable TextBox Column : TextBox « Windows Presentation Foundation « C# / CSharp Tutorial






<Window x:Class="Content.ScrollableTextBoxColumn"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="ScrollableTextBoxColumn" Height="181" Width="283" MinWidth="250">

  <DockPanel>
    <Border DockPanel.Dock="Top"  BorderBrush="SteelBlue" BorderThickness="2">
    <StackPanel Margin="5" Orientation="Horizontal">
      <Button Padding="3" Click="LineUp">Line Up</Button>
      <Button Padding="3" Click="LineDown">Line Down</Button>
      <Button Padding="3" Click="PageUp">Page Up</Button>
      <Button Padding="3" Click="PageDown">Page Down</Button>
    </StackPanel>
  </Border>
  <ScrollViewer Name="scroller">
    <Grid Margin="0,10,0,0" Focusable="False">
      <Grid.RowDefinitions>
        <RowDefinition Height="Auto"></RowDefinition>
        <RowDefinition Height="Auto"></RowDefinition>
        <RowDefinition Height="Auto"></RowDefinition>
        <RowDefinition Height="Auto"></RowDefinition>
        <RowDefinition Height="Auto"></RowDefinition>
        <RowDefinition Height="Auto"></RowDefinition>
        <RowDefinition Height="Auto"></RowDefinition>
        <RowDefinition Height="Auto"></RowDefinition>
      </Grid.RowDefinitions>
      <Grid.ColumnDefinitions>
        <ColumnDefinition Width="Auto"></ColumnDefinition>
        <ColumnDefinition Width="*" MinWidth="50" MaxWidth="800"></ColumnDefinition>
        <ColumnDefinition Width="Auto"></ColumnDefinition>
      </Grid.ColumnDefinitions>

      <Label Grid.Row="0" Grid.Column="0" Margin="3" VerticalAlignment="Center">A</Label>
      <TextBox Grid.Row="0" Grid.Column="1" Margin="3" Height="Auto" VerticalAlignment="Center"></TextBox>
      <Button Grid.Row="0" Grid.Column="2" Margin="3" Padding="2">A</Button>
      <Label Grid.Row="1" Grid.Column="0" Margin="3" VerticalAlignment="Center">A</Label>
      <TextBox Grid.Row="1" Grid.Column="1" Margin="3" Height="Auto"  VerticalAlignment="Center"></TextBox>
      <Button Grid.Row="1" Grid.Column="2" Margin="3" Padding="2">B</Button>
      <Label Grid.Row="2" Grid.Column="0" Margin="3" VerticalAlignment="Center">B</Label>
      <TextBox Grid.Row="2" Grid.Column="1" Margin="3" Height="Auto"  VerticalAlignment="Center"></TextBox>
      <Button Grid.Row="2" Grid.Column="2" Margin="3" Padding="2">B</Button>
      <Label Grid.Row="3" Grid.Column="0" Margin="3" VerticalAlignment="Center">C</Label>
      <TextBox Grid.Row="3" Grid.Column="1" Margin="3" Height="Auto" VerticalAlignment="Center"></TextBox>
      <Button Grid.Row="3" Grid.Column="2" Margin="3" Padding="2">C</Button>
      <Label Grid.Row="4" Grid.Column="0" Margin="3" VerticalAlignment="Center">D</Label>
      <TextBox Grid.Row="4" Grid.Column="1" Margin="3" Height="Auto"  VerticalAlignment="Center"></TextBox>
      <Button Grid.Row="4" Grid.Column="2" Margin="3" Padding="2">D</Button>
      <Label Grid.Row="5" Grid.Column="0" Margin="3" VerticalAlignment="Center">E</Label>
      <TextBox Grid.Row="5" Grid.Column="1" Margin="3" Height="Auto"  VerticalAlignment="Center"></TextBox>
      <Button Grid.Row="5" Grid.Column="2" Margin="3" Padding="2">E</Button>
      <Label Grid.Row="6" Grid.Column="0" Margin="3" VerticalAlignment="Center">F:</Label>
      <TextBox Grid.Row="6" Grid.Column="1" Margin="3" Height="Auto" VerticalAlignment="Center"></TextBox>
      <Button Grid.Row="6" Grid.Column="2" Margin="3" Padding="2">B</Button>
      <Label Grid.Row="7" Grid.Column="0" Margin="3" VerticalAlignment="Center">S</Label>
      <TextBox Grid.Row="7" Grid.Column="1" Margin="3" Height="Auto"  VerticalAlignment="Center"></TextBox>
      <Button Grid.Row="7" Grid.Column="2" Margin="3" Padding="2">B</Button>
    </Grid>
  </ScrollViewer>
  </DockPanel>
</Window>

//File:Window.xaml.cs

using System;
using System.Collections.Generic;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;

namespace Content
{
    public partial class ScrollableTextBoxColumn : System.Windows.Window
    {

        public ScrollableTextBoxColumn()
        {
            InitializeComponent();
        }

        private void LineUp(object sender, RoutedEventArgs e)
        {
            scroller.LineUp();
        }
        private void LineDown(object sender, RoutedEventArgs e)
        {
            scroller.LineDown();
        }
        private void PageUp(object sender, RoutedEventArgs e)
        {
            scroller.PageUp();
        }
        private void PageDown(object sender, RoutedEventArgs e)
        {
            scroller.PageDown();
        }
    }
}
WPF Scrollable Text Box Column








24.13.TextBox
24.13.1.Bind TextBlock to TextBoxBind TextBlock to TextBox
24.13.2.Assign your own class to DataContent and bind to TextBoxAssign your own class to DataContent and bind to TextBox
24.13.3.TextBox: set text, select all, clear, prepend, insert, append, cut, paste, undoTextBox: set text, select all, clear, prepend, insert, append, cut, paste, undo
24.13.4.Set TextBox to editableSet TextBox to editable
24.13.5.Scroll TextBoxScroll TextBox
24.13.6.Use Dictionary to record which textbox has been changed and not savedUse Dictionary to record which textbox has been changed and not saved
24.13.7.Set TextBox ContextMenu to nullSet TextBox ContextMenu to null
24.13.8.TextBox Selection start, end and selected textTextBox Selection start, end and selected text
24.13.9.Scrollable TextBox ColumnScrollable TextBox Column
24.13.10.Check Spelling ErrorCheck Spelling Error