wpf 怎么使用Scrollteamviewer使用教程显示一张图片

2299人阅读
  Grid作为WPF及Silverlight中最常用的一个容器组件,类似web设计中的Table,可以让你一个多行和多列的表中排列子元素,并进行控制;
  要使用Grid先要向RowDefinitions和ColumnDefinitionis中添加一定数量的RowDefinition和ColumnDefinition,以定义行数和列数(如果没有显示设置则会隐式加入一个单元格)
&Grid x:Name=&gridRoot& Margin=&0&&
&Grid.RowDefinitions &
&RowDefinition Height=&25&/&
&RowDefinition /&
&/Grid.RowDefinitions&
&Grid.ColumnDefinitions&
&ColumnDefinition /&
&/Grid.ColumnDefinitions&
&Grid x:Name=&gridHeader& Grid.Row=&0&&
&Grid.Background&
&LinearGradientBrush EndPoint=&0.5,1& StartPoint=&0.5,0&&
&GradientStop Color=&#FF8EB7E5& Offset=&0&/&
&GradientStop Color=&#FF6EA2DE& Offset=&1&/&
&/LinearGradientBrush&
&/Grid.Background&
&ScrollViewer Grid.Row=&1& ScrollViewer.VerticalScrollBarVisibility=&Visible& ScrollViewer.HorizontalScrollBarVisibility=&Hidden& Padding=&0& Background=&#FF848EA3&&
&Grid x:Name=&gridData& Margin=&0& /&
&/ScrollViewer&
   通过设置元素 Grid.Row 及 Grid.Column属性指定元素所在单元格,设置Grid.RowSpan 及 Grid.ColumnSpan属性让元素跨多行或者多列(如综合示例中我们背景Rect的设置);
&   除了手动设置RowDefinitiont和ColumnDefinition的高度和宽度以改变行列宽高外还可以为Grid添加GridSplitter以支持用鼠标,键盘等交互改变列列尺寸;
& 其它扩展属性:
& ShowGridLines&&& :显示单元格边缘线(效果较差主要用于调试)
& Margin&&& :控制元素与单元格边缘间距
   综合示例(以下代码可直接迁移至Silverlight中使用):
   最终效果:
   XAML前台代码:
   &UserControl
xmlns=&/winfx/2006/xaml/presentation&
xmlns:x=&/winfx/2006/xaml&
xmlns:d=&/expression/blend/2008&
xmlns:mc=&http://schemas.openxmlformats.org/markup-compatibility/2006&
x:Class=&WPF_Test.UserControl1&
x:Name=&UserControl& Width=&600& Height=&480&&
&Grid x:Name=&gridRoot& Margin=&0&&
&Grid.RowDefinitions &
&RowDefinition Height=&25&/&
&RowDefinition /&
&/Grid.RowDefinitions&
&Grid.ColumnDefinitions&
&ColumnDefinition /&
&/Grid.ColumnDefinitions&
&Grid x:Name=&gridHeader& Grid.Row=&0&&
&Grid.Background&
&LinearGradientBrush EndPoint=&0.5,1& StartPoint=&0.5,0&&
&GradientStop Color=&#FF8EB7E5& Offset=&0&/&
&GradientStop Color=&#FF6EA2DE& Offset=&1&/&
&/LinearGradientBrush&
&/Grid.Background&
&ScrollViewer Grid.Row=&1& ScrollViewer.VerticalScrollBarVisibility=&Visible& ScrollViewer.HorizontalScrollBarVisibility=&Hidden& Padding=&0& Background=&#FF848EA3&&
&Grid x:Name=&gridData& Margin=&0& /&
&/ScrollViewer&
&/UserControl&
   C#后台代码:
   using S
using System.Collections.G
using System.T
using System.W
using System.Windows.C
using System.Windows.D
using System.Windows.D
using System.Windows.I
using System.Windows.M
using System.Windows.Media.I
using System.Windows.N
using System.Windows.S
using System.Text.RegularE
namespace WPF_Test
/// &summary&
/// Interaction logic for UserControl1.xaml
/// &/summary&
public partial class UserControl1 : UserControl
#region 测试准备数据真实环境应该动态获取
//测试数据准备
public String[] strRows = {&AA,90%以上,1.0,0.9&,
&BB,90%-80%,0.9,0.8&,
&CC,80%-70%,0.8,0.7&,
&DD,70%-60%,0.7,0.6&,
&EE,60%-50%,0.6,0.5&,
&FF,50%-40%,0.5,0.4&,
&GG,40%-30%,0.4,0.3&,
&HH,30%-20%,0.3,0.2&,
&II,20%-10%,0.2,0.1&,
&JJ,10%以下,0.1,0.0&
public String[] strHeader = { &列名&, &比例&, &开始范围&, &结束范围& };
double[] colWidthPercents = { 0.3, 0.4, 0.15, 0.15 };
/// &summary&
/// 交替行及背景颜色设置
/// &/summary&
SolidColorBrush[] SolidColors = {
new SolidColorBrush(Color.FromArgb(255, 132, 142, 163)), //交替行颜色
new SolidColorBrush(Color.FromArgb(255, 122, 150, 148)),
new SolidColorBrush(Color.FromArgb(255, 58, 115, 186)),//选中行颜色
new SolidColorBrush(Color.FromArgb(255,255,255,255)) //分隔符颜色
public double RowHeight = 25; //单行高度
Thickness tn = new Thickness(0, 0, 0, 0); //文本填充边距
#endregion
/// &summary&
/// 鼠标当前所在行下标
/// &/summary&
public int CurrIndex { }
/// &summary&
/// 控件宽度
/// &/summary&
public double CWidth { }
/// &summary&
/// 控件高度
/// &/summary&
public double CHeight { }
public UserControl1()
this.InitializeComponent();
this.Loaded += new RoutedEventHandler(UserControl1_Loaded);
public UserControl1(double cW,double cH)
this.InitializeComponent();
this.CWidth = cW;
this.CHeight = cH;
this.Loaded += new RoutedEventHandler(UserControl1_Loaded);
void UserControl1_Loaded(object sender, RoutedEventArgs e)
this.Height = gridRoot.Height = CH
this.Width = gridRoot.Width = CW
boundGrid();
//初始化并循环绑定数据到Grid中
void boundGrid()
int colCount = strHeader.L
int rowCount = strRows.L
CreateGridRowAndCol(rowCount, colCount, colWidthPercents,gridHeader,gridData,gridRoot);
for (int i = 0; i & strRows.L i++)
datas = strRows[i].Split(',');
for (int j = 0; j & datas.L j++)
tb = new TextBlock();
tb.Text = datas[j];
tb.Margin =
tb.VerticalAlignment = VerticalAlignment.C
tb.HorizontalAlignment = HorizontalAlignment.C
tb.SetValue(Grid.RowProperty, i);
tb.SetValue(Grid.ColumnProperty, j);
tb.Name = String.Format(&_{0}_{1}_TextBlock_Details&,i,j);
gridData.Children.Add(tb);
/// &summary&
/// 动态创建DataGrid行列
/// &/summary&
/// &param name=&rowCount&&行数&/param&
/// &param name=&colCount&&列数&/param&
/// &param name=&colPercents&&各列所占的比例&/param&
/// &param name=&headGrid&&表头Grid&/param&
/// &param name=&dataGrid&&数据Grid&/param&
/// &param name=&rootGrid&&顶层Grid(需要包含Width 和 Height属性)&/param&
void CreateGridRowAndCol(int rowCount, int colCount, double[] colPercents,Grid headGrid,Grid dataGrid,Grid rootGrid)
rectRowBG; // 背景
for (int j = 0; j & rowC j++) //创建Grid行
rd = new RowDefinition();
rd.Height = new GridLength(RowHeight);
dataGrid.RowDefinitions.Add(rd);
rectRowBG = new Rectangle();
rectRowBG.SetValue(Grid.RowProperty, j);
rectRowBG.SetValue(Grid.ColumnProperty, 0);
rectRowBG.SetValue(Grid.ColumnSpanProperty, colCount);
rectRowBG.Margin = new Thickness(0, 0, 0, 0);
rectRowBG.Cursor = Cursors.H
rectRowBG.Name = String.Format(&_{0}_0_Rect_BG_ROW&, j);
rectRowBG.MouseEnter += new MouseEventHandler(GridRowBG_MouseEnter);
rectRowBG.MouseLeave += new MouseEventHandler(GridRowBG_MouseLeave);
rectRowBG.MouseLeftButtonUp += new MouseButtonEventHandler(rectRowBG_MouseLeftButtonUp);
if (j % 2 == 0)
rectRowBG.Fill = SolidColors[0];
rectRowBG.Fill = SolidColors[1];
dataGrid.Children.Add(rectRowBG);
for (int i = 0; i & colC i++) //创建Grid列
cd = new ColumnDefinition();
cd.Width = new GridLength(colPercents[i] * CWidth);
headGrid.ColumnDefinitions.Add(cd);
//创建表头列分隔符
rectRowBG = new Rectangle();
rectRowBG.SetValue(Grid.RowProperty, 0);
rectRowBG.SetValue(Grid.ColumnProperty, i);
rectRowBG.Fill = SolidColors[3];
rectRowBG.Margin = new Thickness(CWidth * colWidthPercents[i] - 1, 0, 0, 0);
//创建表头文本
tb = new TextBlock();
tb.Text = strHeader[i];
tb.Margin =
tb.VerticalAlignment = VerticalAlignment.C
tb.HorizontalAlignment = HorizontalAlignment.C
tb.SetValue(Grid.ColumnProperty, i);
headGrid.Children.Add(rectRowBG);
headGrid.SetValue(Grid.ColumnProperty, i);
headGrid.Children.Add(tb);
//创建表数据列分隔符
cd = new ColumnDefinition();
cd.Width = new GridLength(colPercents[i] * CWidth);
dataGrid.ColumnDefinitions.Add(cd);
//创建数据列分隔符
rectRowBG = new Rectangle();
rectRowBG.SetValue(Grid.RowProperty, 0);
rectRowBG.SetValue(Grid.RowSpanProperty, rowCount);
rectRowBG.SetValue(Grid.ColumnProperty, i);
rectRowBG.Fill = SolidColors[3];
rectRowBG.Margin = new Thickness(CWidth * colWidthPercents[i] - 1, 0, 0, 0);
dataGrid.Children.Add(rectRowBG);
/// &summary&
/// 手动移除Grid指定行
/// &/summary&
/// &param name=&rowIndex&&&/param&
void RemoveGridChildrenByRowIndex(int rowIndex)
if (gridData.Children.Count & 0)
FrameworkElement dataGridC //循环子控件临时变量
String postionI
//检查获取行列信息
String[] rowAndC
//获取到的行列信息
for (int i = gridData.Children.Count-1; i &=0; i--)
dataGridChild = gridData.Children[i] as FrameworkE
if (dataGridChild != null && dataGridChild.Name != String.Empty)
postionInfo = ValidateName(dataGridChild.Name);
if (postionInfo != String.Empty)
rowAndCol = postionInfo.Split(',');
if (int.Parse(rowAndCol[0]) == rowIndex)
gridData.Children.RemoveAt(i);
else if (int.Parse(rowAndCol[0]) & rowIndex)
dataGridChild.SetValue(Grid.RowProperty, ((int)dataGridChild.GetValue(Grid.RowProperty)) - 1);
gridData.RowDefinitions.RemoveAt(gridData.RowDefinitions.Count-1); //移除最后行
//这里添加方法同步strRows数据源信息
#region 鼠标操作及相关事件响应
void rectRowBG_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
if(MessageBox.Show(&您确定要删除本行数据?操作将不可恢复&,&删除记录&,MessageBoxButton.YesNo) == MessageBoxResult.Yes)
Rectangle rect = sender as R
if (rect != null)
string postionInfo = ValidateName(rect.Name);
if (postionInfo != String.Empty)
int rowIndex = int.Parse(postionInfo.Substring(0, postionInfo.IndexOf(',')));
RemoveGridChildrenByRowIndex(rowIndex);
void GridRowBG_MouseLeave(object sender, MouseEventArgs e)
Rectangle rect = sender as R
if (rect != null)
string postionInfo = ValidateName(rect.Name);
if (postionInfo != String.Empty)
int rowIndex = int.Parse(postionInfo.Substring(0, postionInfo.IndexOf(',')));
if (rowIndex % 2 == 0)
rect.Fill = SolidColors[0];
rect.Fill = SolidColors[1];
void GridRowBG_MouseEnter(object sender, MouseEventArgs e)
Rectangle rect = sender as R
if (rect != null)
rect.Fill = SolidColors[2];
#endregion
Regex regex = new Regex(@&^_(/d{1,9})_(/d{1,9})_(/w{0,100})$&, piled);
ValidateName(String controlName) //检查组件名称是否包含行列信息
//组件名称如:&_5_0_Rect_BG&
if (regex.IsMatch(controlName))
return Regex.Match(controlName, @&^_(?&row&/d{1,9})_(?&Col&/d{1,9})_(/w{0,100})$&).Result(&${row},${Col}&);
return String.E
   源代码下载:
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:118533次
积分:1699
积分:1699
排名:第10316名
原创:36篇
评论:256条
(2)(3)(1)(2)(3)(1)(3)(4)(9)(2)(3)(3)[WPF,XAML,ScrollBar,ScrollViewer,Style] 自定义滚动条
自定义 ScrollViewer 的滚动条样式,如下图所示: ScrollBar 在滚动时会自动显示并隐藏,而且 ScrollBar 存在于 Viewport 的区域中。 ScrollViewer.xaml ResourceDictionary xmlns= /winfx/2006/xaml/presentation xmlns:x= /winfx/2006/xaml Style x:Key=
    自定义 ScrollViewer 的滚动条样式,如下图所示:
  ScrollBar 在滚动时会自动显示并隐藏,而且 ScrollBar 存在于 Viewport 的区域中。
  ScrollViewer.xaml
&ResourceDictionary
&&&&xmlns=&/winfx/2006/xaml/presentation&
&&&&xmlns:x=&/winfx/2006/xaml&&
&&&&&Style&x:Key=&ScrollBarThumb&
&&&&&&&&&&&TargetType=&{x:Type&Thumb}&&
&&&&&&&&&Setter&Property=&OverridesDefaultStyle&
&&&&&&&&&&&&&&&&Value=&true&/&
&&&&&&&&&Setter&Property=&IsTabStop&
&&&&&&&&&&&&&&&&Value=&false&/&
&&&&&&&&&Setter&Property=&Template&&
&&&&&&&&&&&&&Setter.Value&
&&&&&&&&&&&&&&&&&ControlTemplate&TargetType=&{x:Type&Thumb}&&
&&&&&&&&&&&&&&&&&&&&&Grid&
&&&&&&&&&&&&&&&&&&&&&&&&&Rectangle
&&&&&&&&&&&&&&&&&&&&&&&&&&&&Fill=&#&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&RadiusX=&3&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&RadiusY=&3&/&
&&&&&&&&&&&&&&&&&&&&&/Grid&
&&&&&&&&&&&&&&&&&/ControlTemplate&
&&&&&&&&&&&&&/Setter.Value&
&&&&&&&&&/Setter&
&&&&&/Style&
&&&&&Style&x:Key=&HorizontalScrollBarPageButton&
&&&&&&&&&&&TargetType=&{x:Type&RepeatButton}&&
&&&&&&&&&Setter&Property=&OverridesDefaultStyle&
&&&&&&&&&&&&&&&&Value=&true&/&
&&&&&&&&&Setter&Property=&Background&
&&&&&&&&&&&&&&&&Value=&Transparent&/&
&&&&&&&&&Setter&Property=&Focusable&
&&&&&&&&&&&&&&&&Value=&false&/&
&&&&&&&&&Setter&Property=&IsTabStop&
&&&&&&&&&&&&&&&&Value=&false&/&
&&&&&&&&&Setter&Property=&Opacity&
&&&&&&&&&&&&&&&&Value=&0&/&
&&&&&&&&&Setter&Property=&Template&&
&&&&&&&&&&&&&Setter.Value&
&&&&&&&&&&&&&&&&&ControlTemplate&TargetType=&{x:Type&RepeatButton}&&
&&&&&&&&&&&&&&&&&&&&&Rectangle&Fill=&{TemplateBinding&Background}&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&Width=&{TemplateBinding&Width}&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&Height=&{TemplateBinding&Height}&/&
&&&&&&&&&&&&&&&&&/ControlTemplate&
&&&&&&&&&&&&&/Setter.Value&
&&&&&&&&&/Setter&
&&&&&/Style&
&&&&&Style&x:Key=&VerticalScrollBarPageButton&
&&&&&&&&&&&TargetType=&{x:Type&RepeatButton}&&
&&&&&&&&&Setter&Property=&OverridesDefaultStyle&
&&&&&&&&&&&&&&&&Value=&true&/&
&&&&&&&&&Setter&Property=&Background&
&&&&&&&&&&&&&&&&Value=&Transparent&/&
&&&&&&&&&Setter&Property=&Focusable&
&&&&&&&&&&&&&&&&Value=&false&/&
&&&&&&&&&Setter&Property=&IsTabStop&
&&&&&&&&&&&&&&&&Value=&false&/&
&&&&&&&&&Setter&Property=&Opacity&
&&&&&&&&&&&&&&&&Value=&0&/&
&&&&&&&&&Setter&Property=&Template&&
&&&&&&&&&&&&&Setter.Value&
&&&&&&&&&&&&&&&&&ControlTemplate&TargetType=&{x:Type&RepeatButton}&&
&&&&&&&&&&&&&&&&&&&&&Rectangle&Fill=&{TemplateBinding&Background}&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&Width=&{TemplateBinding&Width}&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&Height=&{TemplateBinding&Height}&/&
&&&&&&&&&&&&&&&&&/ControlTemplate&
&&&&&&&&&&&&&/Setter.Value&
&&&&&&&&&/Setter&
&&&&&/Style&
&&&&&Style&x:Key=&for_scrollbar&
&&&&&&&&&&&TargetType=&{x:Type&ScrollBar}&&
&&&&&&&&&Setter&Property=&Stylus.IsPressAndHoldEnabled&
&&&&&&&&&&&&&&&&Value=&false&/&
&&&&&&&&&Setter&Property=&Stylus.IsFlicksEnabled&
&&&&&&&&&&&&&&&&Value=&false&/&
&&&&&&&&&Setter&Property=&Background&
&&&&&&&&&&&&&&&&Value=&Transparent&/&
&&&&&&&&&Setter&Property=&Margin&
&&&&&&&&&&&&&&&&Value=&0,1,1,6&/&
&&&&&&&&&Setter&Property=&Width&
&&&&&&&&&&&&&&&&Value=&5&/&
&&&&&&&&&Setter&Property=&MinWidth&
&&&&&&&&&&&&&&&&Value=&5&/&
&&&&&&&&&Setter&Property=&Opacity&
&&&&&&&&&&&&&&&&Value=&0&/&
&&&&&&&&&Setter&Property=&Template&&
&&&&&&&&&&&&&Setter.Value&
&&&&&&&&&&&&&&&&&ControlTemplate&TargetType=&{x:Type&ScrollBar}&&
&&&&&&&&&&&&&&&&&&&&&Grid&x:Name=&Bg&&SnapsToDevicePixels=&true&&
&&&&&&&&&&&&&&&&&&&&&&&&&Track&x:Name=&PART_Track&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&IsEnabled=&{TemplateBinding&IsMouseOver}&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&IsDirectionReversed=&true&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&Track.DecreaseRepeatButton&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&RepeatButton
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&Style=&{StaticResource&VerticalScrollBarPageButton}&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&Command=&{x:Static&ScrollBar.PageUpCommand}&/&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&/Track.DecreaseRepeatButton&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&Track.IncreaseRepeatButton&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&RepeatButton
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&Style=&{StaticResource&VerticalScrollBarPageButton}&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&Command=&{x:Static&ScrollBar.PageDownCommand}&/&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&/Track.IncreaseRepeatButton&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&Track.Thumb&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&Thumb&Style=&{StaticResource&ScrollBarThumb}&/&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&/Track.Thumb&
&&&&&&&&&&&&&&&&&&&&&&&&&/Track&
&&&&&&&&&&&&&&&&&&&&&/Grid&
&&&&&&&&&&&&&&&&&/ControlTemplate&
&&&&&&&&&&&&&/Setter.Value&
&&&&&&&&&/Setter&
&&&&&&&&&Style.Triggers&
&&&&&&&&&&&&&Trigger&Property=&Orientation&
&&&&&&&&&&&&&&&&&&&&&Value=&Horizontal&&
&&&&&&&&&&&&&&&&&Setter&Property=&Background&
&&&&&&&&&&&&&&&&&&&&&&&&Value=&Transparent&/&
&&&&&&&&&&&&&&&&&Setter&Property=&Margin&
&&&&&&&&&&&&&&&&&&&&&&&&Value=&1,0,6,1&/&
&&&&&&&&&&&&&&&&&Setter&Property=&Height&
&&&&&&&&&&&&&&&&&&&&&&&&Value=&5&/&
&&&&&&&&&&&&&&&&&Setter&Property=&MinHeight&
&&&&&&&&&&&&&&&&&&&&&&&&Value=&5&/&
&&&&&&&&&&&&&&&&&Setter&Property=&Width&
&&&&&&&&&&&&&&&&&&&&&&&&Value=&Auto&/&
&&&&&&&&&&&&&&&&&Setter&Property=&Opacity&
&&&&&&&&&&&&&&&&&&&&&&&&Value=&0&/&
&&&&&&&&&&&&&&&&&Setter&Property=&Template&&
&&&&&&&&&&&&&&&&&&&&&Setter.Value&
&&&&&&&&&&&&&&&&&&&&&&&&&ControlTemplate&TargetType=&{x:Type&ScrollBar}&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&Grid&x:Name=&Bg&&SnapsToDevicePixels=&true&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&Track&x:Name=&PART_Track&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&IsEnabled=&{TemplateBinding&IsMouseOver}&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&Track.DecreaseRepeatButton&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&RepeatButton&Style=&{StaticResource&HorizontalScrollBarPageButton}&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&Command=&{x:Static&ScrollBar.PageLeftCommand}&/&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&/Track.DecreaseRepeatButton&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&Track.IncreaseRepeatButton&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&RepeatButton&Style=&{StaticResource&HorizontalScrollBarPageButton}&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&Command=&{x:Static&ScrollBar.PageRightCommand}&/&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&/Track.IncreaseRepeatButton&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&Track.Thumb&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&Thumb&Style=&{StaticResource&ScrollBarThumb}&/&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&/Track.Thumb&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&/Track&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&/Grid&
&&&&&&&&&&&&&&&&&&&&&&&&&/ControlTemplate&
&&&&&&&&&&&&&&&&&&&&&/Setter.Value&
&&&&&&&&&&&&&&&&&/Setter&
&&&&&&&&&&&&&/Trigger&
&&&&&&&&&/Style.Triggers&
&&&&&/Style&
&&&&&!--&ScrollViewer&--&
&&&&&Style&x:Key=&for_scrollviewer&
&&&&&&&&&&&TargetType=&{x:Type&ScrollViewer}&&
&&&&&&&&&Setter&Property=&BorderBrush&
&&&&&&&&&&&&&&&&Value=&LightGray&/&
&&&&&&&&&Setter&Property=&BorderThickness&
&&&&&&&&&&&&&&&&Value=&0&/&
&&&&&&&&&Setter&Property=&HorizontalContentAlignment&
&&&&&&&&&&&&&&&&Value=&Left&/&
&&&&&&&&&Setter&Property=&HorizontalScrollBarVisibility&
&&&&&&&&&&&&&&&&Value=&Auto&/&
&&&&&&&&&Setter&Property=&VerticalContentAlignment&
&&&&&&&&&&&&&&&&Value=&Top&/&
&&&&&&&&&Setter&Property=&VerticalScrollBarVisibility&
&&&&&&&&&&&&&&&&Value=&Auto&/&
&&&&&&&&&Setter&Property=&Template&&
&&&&&&&&&&&&&Setter.Value&
&&&&&&&&&&&&&&&&&ControlTemplate&TargetType=&{x:Type&ScrollViewer}&&
&&&&&&&&&&&&&&&&&&&&&Border&BorderBrush=&{TemplateBinding&BorderBrush}&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&BorderThickness=&{TemplateBinding&BorderThickness}&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&SnapsToDevicePixels=&True&&
&&&&&&&&&&&&&&&&&&&&&&&&&Grid&Background=&{TemplateBinding&Background}&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&ScrollContentPresenter
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&Cursor=&{TemplateBinding&Cursor}&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&Margin=&{TemplateBinding&Padding}&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&ContentTemplate=&{TemplateBinding&ContentTemplate}&/&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&ScrollBar&x:Name=&PART_VerticalScrollBar&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&HorizontalAlignment=&Right&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&Maximum=&{TemplateBinding&ScrollableHeight}&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&Orientation=&Vertical&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&Style=&{StaticResource&for_scrollbar}&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&ViewportSize=&{TemplateBinding&ViewportHeight}&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&Value=&{TemplateBinding&VerticalOffset}&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&Visibility=&{TemplateBinding&ComputedVerticalScrollBarVisibility}&/&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&ScrollBar&x:Name=&PART_HorizontalScrollBar&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&Maximum=&{TemplateBinding&ScrollableWidth}&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&Orientation=&Horizontal&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&Style=&{StaticResource&for_scrollbar}&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&VerticalAlignment=&Bottom&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&Value=&{TemplateBinding&HorizontalOffset}&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&ViewportSize=&{TemplateBinding&ViewportWidth}&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&Visibility=&{TemplateBinding&ComputedHorizontalScrollBarVisibility}&/&
&&&&&&&&&&&&&&&&&&&&&&&&&/Grid&
&&&&&&&&&&&&&&&&&&&&&/Border&
&&&&&&&&&&&&&&&&&&&&&ControlTemplate.Triggers&
&&&&&&&&&&&&&&&&&&&&&&&&&EventTrigger&RoutedEvent=&ScrollChanged&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&BeginStoryboard&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&Storyboard&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&DoubleAnimation
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&Storyboard.TargetName=&PART_VerticalScrollBar&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&Storyboard.TargetProperty=&Opacity&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&To=&1&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&Duration=&0:0:1&/&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&DoubleAnimation
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&Storyboard.TargetName=&PART_VerticalScrollBar&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&Storyboard.TargetProperty=&Opacity&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&To=&0&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&Duration=&0:0:1&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&BeginTime=&0:0:1&/&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&DoubleAnimation
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&Storyboard.TargetName=&PART_HorizontalScrollBar&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&Storyboard.TargetProperty=&Opacity&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&To=&1&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&Duration=&0:0:1&/&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&DoubleAnimation
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&Storyboard.TargetName=&PART_HorizontalScrollBar&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&Storyboard.TargetProperty=&Opacity&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&To=&0&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&Duration=&0:0:1&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&BeginTime=&0:0:1&/&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&/Storyboard&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&/BeginStoryboard&
&&&&&&&&&&&&&&&&&&&&&&&&&/EventTrigger&
&&&&&&&&&&&&&&&&&&&&&&&&&EventTrigger&RoutedEvent=&MouseEnter&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&SourceName=&PART_VerticalScrollBar&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&BeginStoryboard&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&Storyboard&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&DoubleAnimation
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&Storyboard.TargetName=&PART_VerticalScrollBar&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&Storyboard.TargetProperty=&Opacity&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&To=&1&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&Duration=&0:0:1&/&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&/Storyboard&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&/BeginStoryboard&
&&&&&&&&&&&&&&&&&&&&&&&&&/EventTrigger&
&&&&&&&&&&&&&&&&&&&&&&&&&EventTrigger&RoutedEvent=&MouseLeave&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&SourceName=&PART_VerticalScrollBar&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&BeginStoryboard&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&Storyboard&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&DoubleAnimation
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&Storyboard.TargetName=&PART_VerticalScrollBar&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&Storyboard.TargetProperty=&Opacity&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&To=&0&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&Duration=&0:0:1&/&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&/Storyboard&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&/BeginStoryboard&
&&&&&&&&&&&&&&&&&&&&&&&&&/EventTrigger&
&&&&&&&&&&&&&&&&&&&&&&&&&EventTrigger&RoutedEvent=&MouseEnter&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&SourceName=&PART_HorizontalScrollBar&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&BeginStoryboard&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&Storyboard&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&DoubleAnimation
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&Storyboard.TargetName=&PART_HorizontalScrollBar&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&Storyboard.TargetProperty=&Opacity&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&To=&1&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&Duration=&0:0:1&/&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&/Storyboard&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&/BeginStoryboard&
&&&&&&&&&&&&&&&&&&&&&&&&&/EventTrigger&
&&&&&&&&&&&&&&&&&&&&&&&&&EventTrigger&RoutedEvent=&MouseLeave&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&SourceName=&PART_HorizontalScrollBar&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&BeginStoryboard&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&Storyboard&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&DoubleAnimation
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&Storyboard.TargetName=&PART_HorizontalScrollBar&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&Storyboard.TargetProperty=&Opacity&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&To=&0&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&Duration=&0:0:1&/&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&/Storyboard&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&/BeginStoryboard&
&&&&&&&&&&&&&&&&&&&&&&&&&/EventTrigger&
&&&&&&&&&&&&&&&&&&&&&/ControlTemplate.Triggers&
&&&&&&&&&&&&&&&&&/ControlTemplate&
&&&&&&&&&&&&&/Setter.Value&
&&&&&&&&&/Setter&
&&&&&/Style&
&/ResourceDictionary&
  MainWindow.xaml
&Window&x:Class=&WpfApplication1.MainWindow&
&&&&&&&&xmlns=&/winfx/2006/xaml/presentation&
&&&&&&&&xmlns:x=&/winfx/2006/xaml&
&&&&&&&&Title=&MainWindow&&Height=&300&&Width=&300&&
&&&&&Window.Resources&
&&&&&&&&&ResourceDictionary&
&&&&&&&&&&&&&ResourceDictionary.MergedDictionaries&
&&&&&&&&&&&&&&&&&ResourceDictionary&Source=&resources/scrollviewer.xaml&/&
&&&&&&&&&&&&&/ResourceDictionary.MergedDictionaries&
&&&&&&&&&/ResourceDictionary&
&&&&&/Window.Resources&
&&&&&Grid&
&&&&&&&&&ContentControl&Margin=&10&&
&&&&&&&&&&&&&ContentControl.Template&
&&&&&&&&&&&&&&&&&ControlTemplate&TargetType=&{x:Type&ContentControl}&&
&&&&&&&&&&&&&&&&&&&&&ScrollViewer&Style=&{StaticResource&for_scrollviewer}&&
&&&&&&&&&&&&&&&&&&&&&&&&&ContentPresenter/&
&&&&&&&&&&&&&&&&&&&&&/ScrollViewer&
&&&&&&&&&&&&&&&&&/ControlTemplate&
&&&&&&&&&&&&&/ContentControl.Template&
&&&&&&&&&&&&&Canvas&Height=&1600&&Width=&1600&&Background=&AliceBlue&&
&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&/Canvas&
&&&&&&&&&/ContentControl&
&&&&&/Grid&
  本文来自qqamoon的博客,原文地址:http://blog.csdn.net/qqamoon/article/details/7317891
------分隔线----------------------------
Tab Control in WPF The Tab control is a common UI element that has been around f...}

我要回帖

更多关于 teamviewer使用教程 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信