常言笑的家

Spring, Hibernate, Struts, Ajax, RoR

Silverlight 3.0 消息框和提示控件

1. ToolTipToolTip 

    控件用于显示页面元素的附加解释信息.就像 html 中的某些元素的alt属性

    示例代码如下:ToolTip 控件 示例:

    

<Grid x:Name="LayoutRoot" HorizontalAlignment="Left" VerticalAlignment="Center" Margin="20,0,20,0" Width="300" Height="180">
<Grid.RowDefinitions>
<RowDefinition MinHeight="30"></RowDefinition>
<RowDefinition MinHeight="30"></RowDefinition>
<RowDefinition MinHeight="30"></RowDefinition>
<RowDefinition MinHeight="30"></RowDefinition>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
</Grid.ColumnDefinitions>

<TextBlock Height="14" Grid.Row="0" Grid.Column="0">用户名:</TextBlock>
<TextBlock Height="14" Grid.Row="1" Grid.Column="0">用户密码:</TextBlock>
<TextBlock Height="14" Grid.Row="3" Grid.Column="0">密匙:</TextBlock>

<TextBox Width="120" Height="24" Grid.Row="0" Grid.Column="1" ToolTipService.ToolTip="注意区分大小写"></TextBox>
<PasswordBox Width="120" Height="24" Grid.Row="1" Grid.Column="1"></PasswordBox>

<Button Click="Button_Click" Width="120" Height="24" Grid.Row="2" Grid.Column="1" Content="获取密匙" ToolTipService.ToolTip="单击按钮将获取有效地开发授权密匙">
</Button>
</Grid>
以上是一个获取数据访问密匙的页面片段, 其中红字部分就是 ToolTip 控件的声明和使用, 当然你也可以用下面这种方式为按钮声明 ToolTip 提示控件, 其效果是一样的<Button Click="Button_Click" Width="120" Height="24" Grid.Row="2" Grid.Column="1" Content="获取密匙">

<ToolTipService.ToolTip>
<ToolTip Content="单击按钮将获取有效地开发授权密匙"></ToolTip>
</ToolTipService.ToolTip>
</Button>
效果图如下:

看了以上代码会发现都是从 ToolTipService 这个ToolTip的管理类来获取ToolTip对象, 而ToolTipService 类 还有两个附加项属性: Placement (ToolTip显示位置) 和 PlacementTarget (ToolTip依照该属性指定的元素进行定位) , 当使用代码为大量元素绑定 ToolTip 时很有用

2. Popup

    Popup 对象的作用是在现有Silverlight内容之上显示Popup.Child属性中指定的内容。继续上例,当点击按钮时为提交过程模拟一个Loading效果, 当然这个Loading你等到天荒地老也不会完成的,该Loading效果的按钮事件代码如下ToolTip 对象 
    示例:

using System.Windows.Controls.Primitives;
..

private void Button_Click(object sender, RoutedEventArgs e)
{
//创建文本
TextBlock textblock = new TextBlock();
textblock.Text 
= "Loading";
textblock.Width 
= 120;
textblock.Height 
= 24;
textblock.FontSize 
= 18;
//创建遮蔽
Grid grid = new Grid();
SolidColorBrush brushcolor 
= new SolidColorBrush();
brushcolor.Color 
= Colors.White;
grid.Background 
= brushcolor;
grid.Opacity 
= 0.8;
grid.Width 
= Application.Current.Host.Content.ActualWidth;
grid.Height 
= Application.Current.Host.Content.ActualWidth;
grid.Children.Add(textblock);

//创建Popup
Popup p = new Popup();
//为Popup指定内容
p.Child = grid;
//显示Popup
p.IsOpen = true;
}
运行后效果如下:



3. ChildWindow

    提供可在父窗口之上显示的一个窗口并且阻止与父窗口的交互, 实际上就是一个增强版的 Popup , 多了一个如上例中Loading那样的遮蔽层,我们将上例中的Loading效果,改为使用 ChildWindow 实现代码如下:ChildWindow 对象

    示例:

private void Button_Click(object sender, RoutedEventArgs e)
{
SolidColorBrush brushcolor 
= new SolidColorBrush();
brushcolor.Color 
= Colors.White;

ChildWindow cw 
= new ChildWindow();
cw.HasCloseButton 
= false;
cw.FontSize 
= 18;
cw.Opacity 
= 0.8;
cw.OverlayBrush 
= brushcolor;
cw.Content 
= "Loading";
cw.Show();
}
运行后效果如下:


实际上 ChildWindow 对象 还可以包含一个标题栏和一个关闭按钮, 只不过loading不需要, 我们禁用了而已


4. MessageBox

    MessageBox为使用 js 中的模态窗口来显示信息, 还是以上例进行扩展, 比如该功能暂时关闭时,可以如下方式显示:MessageBox 对象
    示例
private void Button_Click(object sender, RoutedEventArgs e)
{
   MessageBox.Show(
"该功能暂时关闭,请稍后再试");
}
运行后效果如下:  

    

posted on 2011-04-26 17:12 常言笑 阅读(1420) 评论(2)  编辑  收藏 所属分类: SilverLight

Feedback

# re: Silverlight 3.0 消息框和提示控件 2012-12-18 18:35 好看的小说

代码收藏了
~刚好要用到~~谢谢了  回复  更多评论   

# re: Silverlight 3.0 消息框和提示控件 2012-12-18 19:20 木鱼哥

代码好像有点问题  回复  更多评论   



只有注册用户登录后才能发表评论。


网站导航:
 

My Links

Blog Stats

常用链接

留言簿(5)

随笔分类

随笔档案

搜索

积分与排名

最新评论

阅读排行榜

评论排行榜