Scrollable TextBox Column

image_pdfimage_print


   
  
<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();
        }
    }
}