- Silverlight 教程
- Silverlight - 主页
- Silverlight - 概述
- Silverlight - 环境设置
- Silverlight - 入门
- Silverlight - XAML 概述
- Silverlight - 项目类型
- Silverlight - 固定布局
- Silverlight - 动态布局
- 受约束与无约束
- Silverlight-CSS
- Silverlight - 控件
- Silverlight - 按钮
- Silverlight - 内容模型
- Silverlight - 列表框
- Silverlight - 模板
- Silverlight - 视觉状态
- Silverlight - 数据绑定
- Silverlight - 浏览器集成
- Silverlight - 浏览器外
- Silverlight - 应用程序、资源
- Silverlight - 文件访问
- Silverlight - 查看模型
- Silverlight - 输入处理
- Silverlight - 独立存储
- Silverlight - 文本
- Silverlight - 动画
- Silverlight - 视频和音频
- Silverlight - 打印
- Silverlight 有用资源
- Silverlight - 快速指南
- Silverlight - 有用的资源
- Silverlight - 讨论
Silverlight - 内容模型
这些按钮为模型内容提供了一种形式的内容。模型在控件中大量出现。这个想法很简单。它将接受任何内容而不仅仅是文本。如果您想创建一个真正奇特的按钮,您甚至可以在其中放置其他内容控件,例如文本框和按钮(并在其中嵌套静态元素)。这样的界面是否有意义值得怀疑,但它是可能的。
让我们看一个带有按钮的简单示例,按钮内有其他内容控件。
<UserControl x:Class = "ContentModel.MainPage" xmlns = "http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x = "http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d = "http://schemas.microsoft.com/expression/blend/2008" xmlns:mc = "http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable = "d" d:DesignHeight = "300" d:DesignWidth = "400"> <Grid x:Name = "LayoutRoot" Background = "White"> <Button Margin = "3" Height = "70" Width = "215"> <Grid Margin = "5"> <Polygon Points = "100,25 125,0 200,25 125,50" Fill = "LightSteelBlue" /> <Polygon Points = "100,25 75,0 0,25 75,50" Fill = "LightGray"/> </Grid> </Button> </Grid> </UserControl>
当上面的代码编译并执行后,您将看到以下按钮。
范围控制
滚动条和滑块控件密切相关。它们都允许用户从特定范围中选择输入值。按照惯例,这些控件代表不同的事物。滚动条通常用于将位置设置到阴囊区域,而滑块用于指定某些值或设置。这些只是惯例;这些控件具有类似的Behave和 API。
范围控制使用起来很简单。您指定最小值和最大值来指示您希望滑块表示的值的范围。Value属性会随着拖动的使用的不同而变化。
Slider类的层次继承如下 -
下面给出了Slider的常用属性。
先生。没有。 | 属性及描述 |
---|---|
1 | 标头 获取或设置控件标头的内容。 |
2 | 标头属性 标识标头依赖属性。 |
3 | 标题模板 获取或设置用于显示控件标头内容的 DataTemplate。 |
4 | 标题模板属性 标识 HeaderTemplate 依赖项属性。 |
5 | 中间值 在用户与滑块交互时,在该值捕捉到刻度值或步长值之前,获取或设置滑块的值。SnapsTo 属性指定滑块的值。 |
6 | 中间值属性 标识 IntermediateValue 依赖属性。 |
7 | 方向是否反转 获取或设置一个指示值增加方向的值。 |
8 | IsDirectionReversed 属性 标识 IsDirectionReversed 依赖属性。 |
9 | 是否启用 ThumbToolTip 获取或设置一个值,该值确定滑块值是否显示在 Slider 的 Thumb 组件的工具提示中。 |
10 | IsThumbToolTipEnabled 属性 标识 IsThumbToolTipEnabled 依赖项属性。 |
11 | 方向 获取或设置 Slider 的方向。 |
12 | 定向属性 标识方向依赖属性。 |
13 | 步进频率 获取或设置应为其创建步骤的值范围的值部分。 |
14 | 步频属性 标识 StepFrequency 依赖属性。 |
15 | ThumbToolTipValueConverter 获取或设置将 Slider 的范围值转换为工具提示内容的转换器逻辑。 |
16 | ThumbToolTipValueConverter属性 标识 ThumbToolTipValueConverter 依赖项属性。 |
17 号 | 滴答频率 获取或设置应为其创建刻度的值范围的增量。 |
18 | 刻度频率属性 标识 TickFrequency 依赖属性。 |
19 | 勾选位置 获取或设置一个值,该值指示在何处绘制与轨道相关的刻度线。 |
20 | 勾选放置属性 标识 TickPlacement 依赖属性。 |
下面给出了Slider类中常用的事件。
先生。没有。 | 活动及描述 |
---|---|
1 | 操作完成 当对 UIElement 的操作完成时发生。(继承自UIElement) |
2 | 操纵三角洲 当输入设备在操作期间改变位置时发生。(继承自UIElement) |
3 | 操纵惯性启动 当输入设备在操作期间失去与 UIElement 对象的接触并且惯性开始时发生。(继承自UIElement) |
4 | 操纵开始 当输入设备开始对 UIElement 进行操作时发生。(继承自UIElement) |
5 | 操纵启动 首次创建操纵处理器时发生。(继承自UIElement) |
6 | 值改变 当范围值更改时发生。(继承自RangeBase) |
下面给出了Slider 类中常用的方法。
先生。没有。 | 方法及说明 |
---|---|
1 | 操作完成时 在 ManipulationCompleted 事件发生之前调用。(继承自Control) |
2 | 关于操纵Delta 在 ManipulationDelta 事件发生之前调用。(继承自Control) |
3 | 关于操纵惯性启动 在 ManipulationInertiaStarting 事件发生之前调用。(继承自Control) |
4 | 操作开始时 在 ManipulationStarted 事件发生之前调用。(继承自Control) |
5 | 操作启动时 在 ManipulationStarting 事件发生之前调用。(继承自Control) |
6 | 最大更改时 当 Maximum 属性更改时调用。(继承自RangeBase) |
7 | 最小变化时 当Minimum 属性更改时调用。(继承自RangeBase) |
8 | 值改变时 触发 ValueChanged 路由事件。(继承自RangeBase) |
9 | 设置绑定 使用提供的绑定对象将绑定附加到 FrameworkElement。(继承自FrameworkElement) |
10 | 设定值 设置 DependencyObject 上依赖项属性的本地值。(继承自DependencyObject) |
例子
让我们看一个简单的例子,其中添加了滑块和椭圆,滑块控制椭圆的宽度。
<UserControl x:Class = "SliderExample.MainPage" xmlns = "http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x = "http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d = "http://schemas.microsoft.com/expression/blend/2008" xmlns:mc = " http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable = "d" d:DesignWidth = "640" d:DesignHeight = "480"> <Grid x:Name = "LayoutRoot"> <Grid.RowDefinitions> <RowDefinition Height = "Auto" /> <RowDefinition /> </Grid.RowDefinitions> <Slider Minimum = "1" Maximum = "400" Value = "1" ValueChanged = "Slider_ValueChanged" /> <Ellipse Grid.Row = "1" Fill = "Aqua" Width = "1" x:Name = "myEllipse" /> </Grid> </UserControl>
下面给出的是值更改事件的 C# 实现。
using System.Windows; using System.Windows.Controls; namespace SliderExample { public partial class MainPage : UserControl { public MainPage() { InitializeComponent(); } private void Slider_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e) { if (myEllipse != null) { myEllipse.Width = e.NewValue; } } } }
当上面的代码被编译并执行时,您将看到以下输出。正如您所看到的,当您从左向右移动滑块时,椭圆宽度会增加。