这一节的讲解中,我将为大家介绍WPF装饰控件的用法,主要为大家讲解一下几个控件的用法.

ScrollViewer滚动条控件

Border边框控件

ViewBox自由缩放控件

1. ScrollViewer滚动条控件

大家知道在WPF中的一些布局控件中是不带滚动条的,如果里面的内容控件超过了外面布局控件的大小,就不能完全被显示出来,这个时候我们就可以使用滚动条控件,让它滚动显示.

效果图:

默认情况下ScrollViewer是显示垂直滚动条的。但是可以通过属性来控制滚动条的显示。

HorizontalScrollBarVisibility设置水平滚动条

VerticalScrollBarVisibility  设置垂直滚动条

通过以下属性可以设置滚动条的显示与否

Visible滚动条一直显示

Hidden隐藏滚动条

Auto 自动显示,当超过外面大小时显示,当没有超过外部容器大小时不显示。

Disabled 禁止显示滚动条

XMAL代码

<Window x:Class="WpfContentControl.WinScroll"

xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

Title="WinScroll" Height="283" Width="426">

<ScrollViewer Name="scrollViewer1" HorizontalScrollBarVisibility="Visible" VerticalScrollBarVisibility="Disabled">

<Grid Height="400" Width="400">

<Grid.RowDefinitions>

<RowDefinition></RowDefinition>

<RowDefinition Height="100"></RowDefinition>

<RowDefinition></RowDefinition>

</Grid.RowDefinitions>

<Rectangle Fill="Bisque"></Rectangle>

<Image Source="1.gif" Grid.Row="1"></Image>

<Rectangle Fill="Aqua" Grid.Row="2"></Rectangle>

</Grid>

</ScrollViewer>

</Window>

当然了,ScrollViewer控件还有很多属性,用户可以自己设置,也可以以编程方式去设置,这里我就不多说了。

2-Border边框控件

Border控件主要用于为其他控件设置一个漂亮的边框外观。

我们设计了一红色圆角的TextBox控件

效果图

Border控件的一些属性可以设置控件的外观样式

BorderThickness设置控件边框宽度

BorderBrush设置背景颜色

CornerRadius设置圆角角度

XMAL代码

<Grid>

<Border BorderBrush="Red" BorderThickness="2" HorizontalAlignment="Left" Margin="37,80,0,69" Name="border1"  Height="23" CornerRadius="5" >

<TextBox Height="23" Name="textBox1" Width="120"  />

</Border>

</Grid>

3. ViewBox自由缩放控件

ViewBox控件是一个可以自由缩放里面内容大小的控件,使控件随着外部窗体的大小比例进行变换。

效果图

ViewBox实现按比例缩放,可以使用Stretch属性设置缩放方式,有以下属性设置

None:保存原始大小,不进行缩放

Fill:内容大小填充目标尺寸

Uniform:在保留原始纵横比的基础上调整大小

UniformToFill:在保留原始纵横比的基础上调整大小,如果源矩形的纵横比不能满足目标矩形的纵横比,则对其剪切填充。

XMAL代码

<Window x:Class="WpfContentControl.WinViewBox"

xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

Title="WinViewBox" Height="300" Width="300">

<Grid>

<Viewbox Name="viewbox1" >

<StackPanel>

<Rectangle Width="50" Height="30" Fill="Black"></Rectangle>

<Image Source="1.gif" Height="45" Width="47"></Image>

</StackPanel>

</Viewbox>

</Grid>

</Window>

关于这几个控件的用法,就写到这里。WPF从我炫系列4---装饰控件的用法

WPF从我炫系列4---装饰控件的用法的更多相关文章

  1. WPF编游戏系列 之四 用户控件

    原文:WPF编游戏系列 之四 用户控件        在上一篇<WPF编游戏系列 之三 物品清单>中,对物品清单进行了演示,其中反复用到了同一组控件(如下图),而且 颜昌钢也指出在3.2. ...

  2. WPF 模仿 UltraEdit 文件查看器系列一 用户控件

    WPF 模仿 UltraEdit 文件查看器系列一 用户控件 运行环境:Win10 x64, NetFrameWork 4.8, 作者:乌龙哈里,日期:2019-05-10 章节: 起步 添加用户控件 ...

  3. WPF自定义控件(二)の重写原生控件样式模板

    话外篇: 要写一个圆形控件,用Clip,重写模板,去除样式引用圆形图片可以有这三种方式. 开发过程中,我们有时候用WPF原生的控件就能实现自己的需求,但是样式.风格并不能满足我们的需求,那么我们该怎么 ...

  4. 《Programming WPF》翻译 第5章 7.控件模板

    原文:<Programming WPF>翻译 第5章 7.控件模板 如果仔细的看我们当前的TTT游戏,会发现Button对象并没有完全为我们工作.哪些TTT面板有内圆角? 图5-14 这里 ...

  5. C#控件系列--文本类控件

    C#控件系列--文本类控件         文本类控件主要包含Label.LinkLabel.Button.TextBox以及RichTextBox. Label 功能         Label用来 ...

  6. WPF中嵌入WinForm中的webbrowser控件

    原文:WPF中嵌入WinForm中的webbrowser控件 使用VS2008创建WPF应用程序,需使用webbrowser.从工具箱中添加WPF组件中的webbrowser发现其中有很多属性事件不能 ...

  7. WPF编程,通过KeyFrame 类型制作控件线性动画的一种方法。

    原文:WPF编程,通过KeyFrame 类型制作控件线性动画的一种方法. 版权声明:我不生产代码,我只是代码的搬运工. https://blog.csdn.net/qq_43307934/articl ...

  8. WPF 构建无外观(Lookless)控件

    原文:WPF 构建无外观(Lookless)控件 构建一个用户可以使用Template属性设置外观的WPF控件需要以下几步 1.继承自System.Windows.Controls.Control 2 ...

  9. WPF 实现跑马灯效果的Label控件,数据绑定方式实现

    原文:WPF 实现跑马灯效果的Label控件,数据绑定方式实现 项目中需要使用数据绑定的方式实现跑马灯效果的Label,故重构了Label控件:具体代码如下 using System; using S ...

随机推荐

  1. Linq使用方法

    int pollid = poll.Where(f => f.PollID < CurrentId).OrderByDescending(o => o.PollID).FirstOr ...

  2. deepin2014.1快捷键

    初试deepin2014.1,发现windows很多快捷键在deepin中也完美支持,举例如下: ctrl+shift+n : 新建文件夹 窗口键+E:打开文件系统 窗口键+TAB:3D切换桌面 al ...

  3. ebtables使用的协议

    ebtables的参数中: -p:指明使用的协议类型,ipv4,arp等可选(使用时必选)详情见/etc/ethertypes --ip-proto:IP包的类型,1为ICMP包,6为TCP包,17为 ...

  4. C++primer第三章标准库类型

    除第二章介绍的基本数据类型外,C++ 还定义了一个内容丰富的抽象数据类型标准库. 本章将介绍标准库中的 vector.string 和 bitset 类型. string 类型支持长度可变的字符串 v ...

  5. genymotion模拟器配置Genymotion-ARM-Translation 兼容包

    前提是你的adb的环境已经配置正确,不知道怎么配置的可参考http://jingyan.baidu.com/article/17bd8e52f514d985ab2bb800.html 如果还不成功的话 ...

  6. iphone下元素放在了一个position: fixed的div中无法点击

    网上的说法是这样的: iphone的浏览器有这么一个bug, 当你使用锚定或滚动页面后, 你会发现某些东西不能点击了! 如果你的这个“东西”放在了一个position: fixed的div中, 那么你 ...

  7. 【java学习】Servlet简单的表单程序(一)

    此文用于java学习,在此小记. 在此小Demo中使用到了Servlet,所以有必要了解一下Servlet的相关知识.(Servlet的相关知识摘抄自http://blog.csdn.net/jiuq ...

  8. shell小脚本工具合集

    1.将指定内容写入文件 echo "hello world" > file.txt echo "hello world" >> file.tx ...

  9. Linux下wps字体问题

    1.安装symbol-fonts_1.2_all.deb,自行搜索 2.卸载xfonts-mathml字体 sudo apt-get remove xfonts-mathml

  10. VB postmessage发送后台Tab

    键盘是我们使用计算机的一个很重要的输入设备了,即使在鼠标大行其道的今天,很多程序依然离不开键盘来操作.但是有时候,一些重复性的,很繁琐的键盘操作总会让人疲惫,于是就有了用程序来代替人们按键的方法,这样 ...